A blue/green deployment is a software deployment strategy that relies on two identical production configurations that alternate between active and inactive. One environment is referred to as blue, and the duplicate environment is dubbed green.
By submitting your personal information, you agree that TechTarget and its partners may contact you regarding relevant content, products and special offers.
The two environments, blue and green, can each handle the entire production workload and are used in an alternating manner rather than as a primary and secondary space. One environment is live and the other is idle at any given time. When a new software release is ready, the team deploys this release to the idle environment, where it is thoroughly tested. Once the new release has been vetted, the team will make the idle environment active, typically by adjusting a router configuration to redirect application traffic. This leaves the alternate environment idle.
A blue/green deployment avoids interruptions to service or performance degradation during roll out of a patch or upgrade. The deployment scheme can eliminate application downtime because the update process does not impinge on the production workload. The current application version continues to operate normally until the new version is completely tested and then switched over. An IT organization may choose to follow this advanced software deployment pattern for consumer-facing applications or applications with critical uptime requirements.
Blue-green deployment is touted as one of the most foolproof deployment strategies. If unforeseen problems arise during testing, the team can prevent the new version from cutting over to production until additional development work is performed. If problems are discovered once a cutover occurs, the rollback simply requires redirecting traffic to the alternate, idle configuration that still runs the original version. Once the new version is proven in production, the organization can choose to update its idle configuration environment to the newer code. This provides an added measure of disaster recovery capability.
Blue/green deployment demands the largest IT hardware commitment of the various software deployment techniques, because an enterprise must provide twice the hardware found in a conventional production setting, yet only half of that hardware is actually running a production workload at any one time. A company could use dynamic cloud resources to run any number of identical production environments -- green, blue, purple and so on -- concurrently during deployment times. Once the deployment is verified as good, the additional environments collapse, freeing resources.
Blue and green hardware sets must generally match to minimize performance or compatibility differences between blue and green configurations. Organizations that cannot commit to duplicate hardware configurations may opt for other deployment strategies, such as rolling deployments. A software developer should also pay close attention to the potential effect that a blue/green deployment has on relational databases. Different software versions may cause discrepancies in blue and green databases, so it is usually considered best practice to use a single database to ensure forward and backward compatibility.
A blue/green deployment is sometimes called A/B, but should not be confused with A/B split testing, wherein two distinct options are presented to a sample group of target users to gauge which option is more effective.