This practice is part of: Product Ownership.
What is it?
Blue Green Deployment is a technique in software development which relies on two productive environments being available to the team. One of them, let’s call it “green” is operational and takes load from the reverse proxy (load balancer/router). The other environment, let’s call it “blue” is a copy upgraded to a new version.
The team can perform all required task for an upgrade of the product version on the “blue” environment without the rush of downtime. Once the “blue” environment is ready, past all kind of smoke tests and checks, the team simply redirects the reverse proxy (load balancer/router) to point to the “blue” environment.
If everything works fine with the “blue” environment, the now outdated “green” can be used to serve as the “blue” for the next release. If things go bad the team can switch back to a stable environment instantly using the reverse proxy/load balancer/router.
Why use it?
This is a feedback loop practice, which allows the team to get prompt feedback from real life use of their changes. It enables Continuous Delivery.
The practice provides safety for performing complex releases. It removes the time pressure and reduces the downtime to practically zero. This is beneficial for both technical team as for the customers, who will not notice glitches or unavailability of the service/product, provided that the new version is performing at par. In case of adverse effects, it allows the teams to have an instant roll back alternative and limit the negative impact on customers.
Blue-green Deployments, A/B Testing, and Canary Releases by Christian Posta
BlueGreen Deployments by Martin Fowler