Deploying New Version of Stock Trading Application on AWS with Elastic Beanstalk

Deploying New Version

Question

A leading Financial firm has deployed its stock trading application on Amazon EC2 instance in an Auto Scaling Group behind Application Load Balancer.

The software Team has developed a new version of this application & are seeking your support to deploy this new version to production.

The Operations head has instructed for a deployment using Elastic Beanstalk which should not have any service impact on the application & should be able to quickly rollback in case of failure during deployment.

Also post-deployment, initially only 10% of traffic should be diverted to the new version. Which of the deployment policies can be used to meet the requirement?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer: A.

In the Traffic splitting deployment policy, AWS Elastic Beanstalk launches a full set of EC2 Instance in a new Auto Scaling group for the new version of the application.

Post deployment, a certain percentage of traffic can be diverted to a new setup.

This policy is easy for rollback.

As in case of any failure, traffic can be diverted to the old version which is not modified during deployment of the new version.

In the above case, the firm is looking for a new application version to be deployed without any service impact & with 10% traffic to the new version with quick rollback.

For this requirement, a traffic splitting deployment policy is best suited.

Option B is incorrect as although this deployment is suitable for deployment without any service impact to the existing application.

Still, it's not suitable for a quick rollback in case of deployment failure.

Option C is incorrect as with this deployment option, traffic splitting between old & new versions is not possible.

Option D is incorrect as this deployment option is not suitable for quick rollback.

For more information on deploying applications with deployment policies with AWS Elastic Beanstalk, refer to the following URLs,

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.rolling-version-deploy.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deploy-existing-version.html

Based on the given scenario, the following deployment policies can be considered for deploying the new version of the stock trading application on Amazon EC2 instances in an Auto Scaling Group behind an Application Load Balancer:

A. Traffic splitting deployment policy: This policy can be used to divert a certain percentage of traffic to the new version of the application while keeping the rest of the traffic on the old version. This policy meets the requirement of diverting only 10% of traffic initially and can be used to minimize the impact of any potential issues with the new version. Elastic Beanstalk supports this deployment policy.

B. Rolling deployment policy: This policy deploys new instances with the updated application version in small batches while keeping the old instances running. This allows for quick and easy rollback in case of issues during deployment. However, this policy may cause some service impact during deployment since some instances will be replaced with new instances.

C. Immutable deployment policy: This policy deploys new instances with the updated application version in parallel with the old instances. This allows for quick rollback by terminating the new instances and using the old instances. However, this policy requires a new set of instances to be launched, which can lead to increased costs.

D. Rolling with an additional batch deployment policy: This policy is similar to the rolling deployment policy, but it deploys a small additional batch of instances with the updated application version before rolling out to the rest of the instances. This allows for quick and easy rollback in case of issues during deployment. However, this policy may cause some service impact during deployment since some instances will be replaced with new instances.

Therefore, the best deployment policy to use in this scenario is the Traffic splitting deployment policy since it meets all the requirements of the operations head for deploying the new version of the application without causing any service impact and providing the ability to quickly rollback in case of issues during deployment.