A/B deployment, as you know, reduces downtime and risk of your new releases. CloudMunch is developing a template that brings together various technologies to achieve A/B deployment of your application.
Technologies used by this template,
Using this template you can configure to deploy your application using Cloudformation stacks, S3 bucket for build promotion and Chef for configuration management.
The image below describes how a build is deployed and promoted across various stages and gets released into production.
User can configure to retrieve Cloudformation templates from GitHub, Use it to launch the stacks. The pipelines created by this template implements automation of A/B deployment in various stages. Build versions will be downloaded and uploaded to S3 buckets corresponding to each stage as part of build promotion.
Let us get into technical details of the pipelines created for deployment.
Below are the steps executed as part of deployment pipeline.
- Select the build version from S3 bucket.
- Checkout Cloudformation template from repository.
- Update Chef databag with new build version.
- Find the status of stacks and determine A(currently running) and B stacks.
- Launch Stack B.
- Verify the status of Stack B instances in AWS Elastic Load Balancer.
- On success, delete Stack A.
In the above scenario, the Cloudformation template is assumed to use Chef for configuring application in instances launched and also to register instances to ELB, preferably using auto scaling groups. The Elastic Load Balancer health check of instances will determine the status of B deployment. On success the Stack A will be deleted, which will deregister the Stack A auto scaling group thereby removing all instances running the older version of the application.
CloudMunch will maintain and display the details of your application environment in each stage. The environments page will display the current active stack , the build version deployed etc. In CloudMunch dashboard you can see the status of the build and environments along with key metrics of your application build statistics. Below is the image of an application dashboard,
CloudMunch along with the automation of continuous delivery, brings in lot of insights data on the deployments. This will help you keep track of the statistics of your build release activities.