Automated Deployments

Repeatable Deployments

You can easily repeat an application deployment across different groups of 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. 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.

Auto Scaling Integration

AWS CodeDeploy integrates with Auto Scaling to help keep your application software up-to-date in dynamically changing infrastructure. 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 an Elastic Load Balancer.

On-Premises Deployments

You can use AWS CodeDeploy to automate code deployments across your development, test, and production environments running on any instance including instances in your own data centers (your instances will need to be able to connect to AWS public endpoints). This enables you to use a single service to consistently deploy applications across hybrid architectures.

Minimize Downtime

Rolling and Blue/Green Updates

Applications do not require downtime when they’re being upgraded to a new revision with AWS CodeDeploy. CodeDeploy can perform a rolling update across a group of instances where only a fraction of the instances are taken offline at any one time. CodeDeploy progressively works its way across the instances allowing applications to remain available and continue serving traffic. CodeDeploy can also perform blue/green deployments, where a new set of instances is provisioned and installed with the newest revision. Once the new revision is installed on the new instances, CodeDeploy reroutes traffic from your production instances to the new instances.

Deployment Health Tracking

Deployment Health Tracking works in conjunction with rolling updates to keep applications highly available during deployments. Unexpected downtime can occur if bad updates are deployed. AWS CodeDeploy monitors the success of each instance update in a multi-instance deployment. You can specify the minimum number of instances that need to remain healthy, and CodeDeploy will stop a deployment if there are too many failed instance updates.

Stop and Rollback

You can stop an application deployment that is in process at any time using the AWS Management Console, the AWS CLI, or any of the AWS SDKs. You can simply re-deploy that revision if you want to continue the stopped deployment at a later time. You can also immediately rollback by redeploying the previous revision.

Centralized Control

Monitoring and Control

You can launch, control, and monitor deployments of all your applications to target instances directly from the AWS Management Console or by using the AWS CLI, SDKs, or APIs. You can view the deployment progress down to individual setup events running on each instance. In the case of a failure, you can pinpoint the exact instance and script experiencing failure without having to login to an individual instance. You can also set push notifications that allow you to monitor the status of your deployments via SMS or email messages through Amazon Simple Notification Service.

Deployment Groups

Applications can be deployed to multiple deployment groups. A deployment group is a set of instances, such as a staging or production environment. You can test a revision in staging and then deploy that same revision to production once you are satisfied. AWS CodeDeploy uses tags or Auto Scaling group names to define deployment groups. You simply tag an instance to add it to a deployment group, and AWS CodeDeploy will automatically deploy the latest revision of your application to it the next time you deploy.

Deployment History

AWS CodeDeploy tracks and stores the recent history of your deployments. You can view which application versions are currently deployed to each of your target deployment groups. You can inspect the change history and success rates of past deployments to specific deployment groups. You can also investigate the instance-level events and timeline of past deployments for a detailed view of your deployment successes and errors.

Easy To Adopt

Language and Architecture Agnostic

AWS CodeDeploy uses a file and command-based install model, which enables it to deploy any application and reuse existing setup code. CodeDeploy uses a single AppSpec configuration file to map files in your application to their host destination and specify the commands to run at each lifecycle event (phase of deployment) such as “install dependencies” or “stop server.” The commands can be any code, such as a shell script, a custom program, or even a configuration management tool.

Tool Chain Integration

It is easy to integrate application deployments with your existing software delivery toolchain by using the AWS CodeDeploy APIs. Some AWS partners provide pre-built CodeDeploy integrations with their continuous integration and continuous delivery services, making it simple to automatically deploy your latest application builds to your instances.

Learn more about AWS CodeDeploy pricing

Visit the pricing page