Unfortunately the promise doesn’t always match reality.
That used to be the case when it came to deploying apps to Amazon EC2 instances, which has been largely a manual process.
The recently announced AWS CodeDeploy service is meant to change all that. “CodeDeploy fully automates your application deployments eliminating the need for manual operations. CodeDeploy protects your application from downtime during deployments through rolling updates and deployment health tracking,” Amazon said. “CodeDeploy gives you centralized control of your deployments through the AWS Management Console, CLI, SDKs, or APIs allowing you to launch, control, and monitor your deployments. You can view the deployment progress down to individual setup events running on each EC2 instance. CodeDeploy tracks and stores the recent history of your deployments, so you can investigate the timeline and change history of past deployments.”
CodeDeploy might be good for one time installs, but it is more designed for repeatability, such as supporting regular updates. Updates are often for new features, but just as often for fixes. And with agile development and visual development, applications these days are iterated far more frequently. “You can easily repeat an application deployment across different groups of Amazon EC2 instances with AWS CodeDeploy. CodeDeploy uses a file and command-based install model, which enables it to deploy any application and reuse existing setup code,” Amazon said. “The same setup code you use to deploy a revision to your development instance for debugging is used to deploy to staging instances for tests and then used to deploy to production for release to customers. Eliminating manual steps from deployments increases both the speed and reliability of your software delivery process.”
Insync with Cloud
One massive advantage of the cloud is its ability to scale. Instead of IT adding server, network and storage capacity as loads, the cloud vendor does it for you. AWS CodeDeploy handles this through Auto Scaling that changes the underlying infrastructure as your application needs grow or shrink. “Auto Scaling allows you to scale Amazon EC2 capacity up or down automatically according to conditions you define such as spikes in traffic. CodeDeploy is notified whenever a new instance launches into an Auto Scaling group and will automatically perform an application deployment on the new instance before it is added to a Balancer,”the company said.
Since CodeDeploy is designed for regular and frequent updates, it must have some means of monitoring, managing and control these updates. Current AWS customers may be pleased to know that this management is supported through the existing AWS Management Console. For more fine-tuned control, you can use an SDK, API or command line interface.