AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances and on-premises instances. It helps us to deploy application content such as code, serverless AWS Lambda functions, web and configuration files, packages, scripts, multimedia files, etc. After deploying the application content on a server it is stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories.
It works with various systems for configuration management, source control, continuous integration, continuous delivery, and continuous deployment.
With AWS CodeDeploy, the following processes become easier.
- Rapidly release new features.
- Avoid downtime during application deployment.
- Update AWS Lambda function versions.
- Handle the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.
BENEFITS OF AWS CODEDEPLOY
AWS CodeDeploy offers different types of benefits which are mentioned below.
1.Server and serverless applications
It deploys both applications on servers and applications that deploy a serverless AWS Lambda function version.
2. Minimize downtime
It maximizes your application availability. It performs a rolling update across Amazon EC2 instances during an in-place deployment. You can specify the number of instances to be taken offline at a time for updates.
3. Automated deployments
It automates application deployment across the development, test, and production environments.
4. Centralized control
You can launch and track the status of your deployments through the AWS CodeDeploy console or the AWS CLI.
5. Easy to adopt
Easily reuse your setup code. AWS CodeDeploy can also integrate with the software release process or continuous delivery toolchain.
6. Stop and rollback
If there are any errors, you can automatically or manually stop and roll back deployments.
AWS CODEDEPLOY COMPUTE PLATFORMS
It’s possible to deploy applications to two compute platforms in AWS CodeDeploy:
1) EC2/On-Premises: It describes Amazon EC2 cloud instances and on-premises servers.
2) AWS Lambda: Used to deploy applications of updated versions of Lambda functions.
AWS CodeDeploy Component | EC2/On-Premises | AWS Lambda |
Deployment group | Deploys a set of instances to which a new revision is deployed. | Deploys a Lambda function version on a high-availability compute infrastructure. |
Deployment configuration | Settings that determine the deployment speed and the minimum number of instances that must be healthy at any point during deployment. | Settings that determine how traffic is shifted to the updated Lambda function versions. |
Deployment | Deploys a new revision that consists of an application and AppSpec file. The AppSpec specifies how to deploy the application to the instances in a deployment group. | Deploys a new revision that consists of an AppSpec file. The AppSpec specifies which Lambda function version to deploy. |
Application | A collection of deployment groups and revisions. An EC2/On-Premises application uses the EC2/On-Premises compute platform. | A collection of revisions. A Lambda application uses the AWS Lambda compute platform. |
Revision | A combination of an AppSpec file and application files, such as executables, configuration files, and so on. | An AppSpec file that specifies which Lambda functions to deploy and update. |
AWS CODEDEPLOY DEPLOYMENT TYPES
AWS CodeDeploy provides two deployment type options:
- In-place deployment
- Blue/green deployment
In-place deployment
Using the AWS CodeDeploy agent, you can perform deployment on an instance you are logged on to without the need for an application, deployment group, or even an AWS account.
The following diagram shows the flow of a typical AWS CodeDeploy in-place deployment.
Working
- Create deployable content
- Add an application specification file (AppSpec file) which is unique to AWS CodeDeploy.
- Bundle the deployable content and the AppSpec file into an archive file.
- Upload it to an Amazon S3 bucket or a GitHub repository.
- Provide AWS CodeDeploy with information about the deployment so as to deploy its contents.
- Next, the AWS CodeDeploy agent on each instance polls AWS CodeDeploy.
- AWS CodeDeploy agent on each instance pulls the target revision from the specified Amazon S3 bucket or GitHub repository.
Blue/green deployment
A blue/green deployment reroute the traffic from one set of instances to a different set. An application can be installed and tested on the new instances. It even helps to switch back to the most recent version of an application faster and also traffic can be routed back to the original instances if they have not been terminated. It helps us to control how traffic is shifted from the original AWS Lambda function versions to the new AWS Lambda function versions.
If you require any help with setting up your cloud servers or managing the, contact SupportPRO Cloud Management experts