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).

Sources