<story><title>AWS CodeDeploy</title><url>http://aws.amazon.com/codedeploy/</url></story><parent_chain></parent_chain><comment><author>STRML</author><text>While this looks nice, part of me can&amp;#x27;t help but be annoyed by yet &lt;i&gt;another&lt;/i&gt; deployment option on AWS. We now have CloudFormation, Elastic Beanstalk (which can take many forms, including Docker), CodeDeploy, and Opsworks.&lt;p&gt;I can imagine how, for a new user, it&amp;#x27;s utterly baffling which of these options is the best for the longterm, with the least friction. I use OpsWorks quite a bit but have found it very challenging, and the feedback cycle when attempting to develop new cookbooks is excruciatingly slow.&lt;p&gt;All I want, personally, is a system that uses a set of interchangeable scripts that represent dependencies, so my server configs can live in version control. It doesn&amp;#x27;t even need to run on multiple OSs (which seems to be a central tenet of Chef). It just needs to deploy&amp;#x2F;rollback with zero downtime, and ideally autoscale as quickly as possible. Is this it? Is there any way to know without spending weeks fleshing out how it works?</text></comment>
<story><title>AWS CodeDeploy</title><url>http://aws.amazon.com/codedeploy/</url></story><parent_chain></parent_chain><comment><author>ryanfitz</author><text>I&amp;#x27;ve only briefly read over the documentation, but this service seems to not follow deployment best practices that aws and others such as netflix have been talking about for years. Specifically the pattern of pre-baking an ami with your current version of the app you are deploying and any other needed software completely installed on the ami and then having an autoscale group be able to boot that ami up in a few seconds and start working. This greatly helps with scaling up, doing rolling upgrades and also very easy rollbacks.&lt;p&gt;The CodeDeploy service seems to operate by you manually launching base ec2 instance with a code deploy agent and then this agent will checkout your git code on the live instance, run any provisioning steps and then if things break somehow rollback all that work, still on the live instance.&lt;p&gt;I&amp;#x27;m sure this is still a big improvement to companies who are manually sshing into servers and running deployments by hand, but as someone who pre-bakes ami&amp;#x27;s and does rolling upgrades with autoscaling groups this service seems like a step backwards.</text></comment>