QuestionQ23

Resilient Cloud Solutions

A retail company plans to use AWS Elastic Beanstalk to host its Java-based online sales website. Because this will be the production website, the CTO has these deployment-strategy requirements:

  • Zero downtime. During the deployment, the Amazon EC2 instances currently in service must stay in service. No deployment or other action may be performed on those EC2 instances because they handle production traffic.
  • A new fleet of instances must be provisioned to deploy the new application version.
  • After the new application version is successfully deployed to the new fleet, the new instances must be put into service and the old instances removed.
  • Rollback must be as simple as possible. If deployment of the new application version to the new fleet fails, those instances must be terminated and the current instances must continue serving traffic normally.
  • Resources in the environment (the EC2 Auto Scaling group, Elastic Load Balancing, and Elastic Beanstalk DNS CNAME) must remain unchanged, and no DNS change can be made.

Which deployment strategy meets these requirements?

Explanation

An immutable deployment launches a fresh instance fleet in a temporary Auto Scaling group behind the existing environment load balancer while the original fleet continues serving traffic. After the new instances pass health checks, Elastic Beanstalk replaces the old instances; if deployment fails, it terminates the new Auto Scaling group and leaves the original instances untouched. The environment’s existing load balancer and CNAME remain in use, so no DNS swap is required.

Learn more

Community Discussion

No comments yet. Be the first to start the discussion!