Blue-Green Deployments
External
- Blue-Green Deployment by Martin Fowler
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley
Internal
Overview
The idea behind blue-green deployment technique is that at any time there are two identical instances of the application in operation. One instance takes production load, while the other is being upgraded to the next version of the application, tested, and prepared for production. Then, the traffic is switched from the current instance to the other. The process is repeated indefinitely.
An instance of an application my comprise a large multi-node cluster. We avoid naming it "environment", because we reserve the word environment for a different logical abstraction, a multi-application structure that provides complex business functionality to its users. While we can certainly design a workflow that relies on blue-green switch at environment level, we want to make sure that components of an environment - the applications - can undergo a blue-green switch in isolation.