Performing blue-green deployments
The idea behind blue-green deployment is that, instead of updating existing instances of an application, you create a complete brand new production environment side by side with the existing one. Then, if it looks good, you switch the traffic to this new environment. If nothing breaks, you delete the old one. The new environment is called green, while the existing one is blue. As you might have guessed, the idea goes hand in hand with the immutable infrastructure concept and extends it beyond a single server to complete clusters of machines.
There are two ways to achieve this with Terraform:
- The manual approach
- The Auto Scaling groups approach
We will go with the first one. Doing things manually is not the best way to do things, but if you are in a non-AWS environment, you might not have a better choice. Elastic Load Balancer in our application module will play the role of the router in the preceding. We need to perform these steps:
- Create a new group of instances...