Blue/green deployment falls outside the scope of the Stabilize activity. The Stabilize activity is part of the Release on Demand aspect of the Continuous Delivery Pipeline, which is responsible for releasing new functionality to end users, either immediately or incrementally, based on business and customer needs. The Stabilize activity ensures that the solution is working well from a functional and nonfunctional perspective, and that it can be operated and supported effectively. The Stabilize activity involves the following practices:
Continuous security monitoring – Applying automated tools and processes to detect and respond to security threats and vulnerabilities in the production environment, and ensuring compliance with security policies and standards.
Failover and recovery processes – Establishing and testing backup and restore mechanisms, disaster recovery plans, and business continuity procedures, to ensure the availability and resilience of the solution in case of failures or disruptions.
Features monitoring – Collecting and analyzing data on the usage, performance, and outcomes of the released features, to measure their value and impact, and to identify any issues or defects that need to be fixed or improved.
Support and maintenance – Providing ongoing support and maintenance for the solution, such as resolving incidents, handling requests, applying patches, and performing upgrades, to ensure the reliability and quality of the solution.
Blue/green deployment, on the other hand, is a technical practice that belongs to the Continuous Deployment aspect of the Continuous Delivery Pipeline, which is responsible for deploying new functionality into the production environment, where it can be tested and validated. Blue/green deployment is a change management strategy that reduces the downtime and risk of deploying new versions of software. It involves having two identical but separate environments: one is the active environment that serves the user traffic (blue), and the other is the inactive environment that hosts the new version of the software (green). The deployment process consists of switching a small portion of the user traffic from the blue environment to the green environment, after verifying that the new version is working properly. The portion of users who receive the new version are called canaries, as they serve as early indicators of the quality and performance of the new version. If the canary release is successful, the entire user traffic is gradually switched to the green environment, which becomes the new active environment. If the canary release fails, the user traffic is switched back to the blue environment, which remains the active environment. Blue/green deployment has several benefits, such as:
It allows for fast and reliable rollback, in case of any issues or errors in the new version, by simply switching back to the active environment.
It eliminates the need for complex and error-prone migration scripts, as the inactive environment can be prepared and tested in advance, without affecting the active environment.
It enables testing and experimentation of the new version with a subset of users, by directing some user traffic to the inactive environment, before switching completely.
It facilitates continuous delivery and deployment, by automating the switching process and reducing the transaction cost and risk of moving changes to production