AWS CodeDeploy
AWS CodeDeploy is a deployment automation service within Amazon Web Services that helps automate application deployments to a variety of compute services such as Amazon EC2, AWS Fargate, Amazon Elastic Container Service (ECS), and on-premises instances.
Key points
- In-place deployment: all instances in the deployment group are stopped, updated with the new revision, and started again once the deployment completes; suited to the EC2/on-premises compute platform.
- Blue/green deployment: instances in the original environment’s deployment group are replaced by a new set of instances in a replacement environment; traffic is rerouted from the original to the replacement environment via Elastic Load Balancing (ELB), and original instances are terminated once the deployment completes; suited to EC2/on-premises, AWS Lambda, and Amazon Elastic Container Service (ECS) compute platforms. All Lambda and ECS deployments are blue/green (shifted via canary, linear, or all-at-once traffic configurations); only the EC2/on-premises platform can choose in-place instead.
- Using Amazon Elastic Kubernetes Service (EKS), Kubernetes clusters and applications can be managed across hybrid environments without altering the code.
- ECS blue/green deployments can also be modeled and triggered directly through an AWS CloudFormation stack update, without creating a separate CodeDeploy application or deployment group.
- Can fetch deployment content from Amazon S3 buckets, Bitbucket, or GitHub repositories.
- Can deploy varied content types: code, Lambda functions, configuration files, scripts, and even multimedia files.
- Scales with the infrastructure to deploy across development, test, and production environments.
- Integrates with existing continuous delivery workflows such as AWS CodePipeline, GitHub, and Jenkins.
- Sits at the Deploy stage of the five-stage pipeline model (Code, Build, Test, Deploy, Provision).