AWS CodeDeploy is a service that automates code deployments to Elastic Compute Cloud (EC2) and on-premises servers. Accelerating how fast a developer can release code allows him to release new features for an application faster and avoid deployment errors in complex applications. End users can also run software updates or scripts on their cloud instances. Because CodeDeploy is typically used to push out and configure new application versions, it plays a key role in application or development lifecycle management strategies.
AWS (Amazon Web Services) CodeDeploy scales with the cloud infrastructure to allow application deployments to thousands of instances. To complete a deployment, a developer defines three criteria: the revision, deployment group and deployment configuration.
The revision is the specific content that is deployed on an instance or instances, such as source code, webpages and executable files. A developer also includes an AppSpec file for revisions; an AppSpec is a YAML-formatted file used to map source files in the revision, specify permissions for deployed files and specify scripts to run on each instance during app deployment. AWS CodeDeploy only runs scripts specified in a file, saving the other scripts for other events.
A developer specifies sets of instances called deployment groups, which are associated with a particular application. A deployment group usually includes selected EC2 instances. To add instances to a deployment group, a developer then specifies an Auto Scaling group name or a tag that helps to identify the purpose of an instance.
CodeDeploy also enables a developer to specify a deployment configuration, which determines the steps taken in a deployment process to ensure that specific content is placed into appropriate instances and that necessary instances are updated as needed. If no deployment configuration is defined, the service deploys to one instance at a time.
AWS CodeDeploy is programming language- and architecture-agnostic, allowing a developer to use whatever code is preferred. The service also allows a developer to deploy applications and revisions to EC2 instances running within an Amazon Virtual Private Cloud. Identity and Access Management can also be used to manage permissions.
AWS CodeDeploy can be accessed through the AWS Management Console, AWS Command Line Interface, AWS SDKs and the AWS CodeDeploy APIs.