Software Release Glossary
Most commonly used terms and acronyms by product managers, engineers and devops, regarding deployment strategies
BCDFKPRSTV

Blue-Green Deployment

What is blue-green deployment?

Blue-green deployment is a software development technique that uses two production environments, blue and green, to make the deployment process simpler and less risky. 

The two production environments are meant to stay as identical as possible where new code is deployed into the inactive environment, the green environment. 

Once changes are completed and ready to be released, the load balancer or traffic router switches all traffic from the blue to the green environment where users will be able to see your updated application.

The blue environment is maintained as backup until you are able to verify that your new active environment is bug-free. If any issues are discovered, the router can switch back to the original environment, the blue one in this case, which has the previous version of the code.

Easy rollbacks

Therefore, one of the most obvious benefits of blue-green deployment is rollbacks. Because you have two separate but identical production environments, you can easily make the shift between the two environments, switching all traffic immediately to the original (for example, blue) environment if issues arise.

The old version would be ready at any point to redirect traffic to it giving developers ample time to investigate the issue in the green environment then redeploy as soon as it’s ready. 

However, if you do need to roll back, when it comes to blue-green deployment, you would need to roll back the entire deployment. This is because while blue-green deployment can be considered a method of progressive delivery, you are still doing a sort of big-bang release when you route all users to the new environment.

In other words, blue-green deployments don’t give you control on a feature level so if you want to turn off one feature, you’d have to roll back the entire release.

Blue-green deployment through canary testing

There are other deployment strategies that can help you implement blue-green deployment and enable you to launch releases more gradually on a feature level rather than doing an entire deployment. 

Canary deployments are one way you can carry out blue-green deployments where canary tests allow you to gain more control over your features by gradually releasing these features to a small percentage of users first.

Using canary deployments means that you will not need to route all users to one environment. Instead, you move a percentage of these users to the new version.

News
Flagship by AB Tasty recognized as a leader in The Forrester New Wave: Feature Management And Experimentation, Q2 2021

So, for example, you can start with 10% being directed to the green environment while the remaining users remain in the blue environment. Afterwards, you can gradually increase this percentage to eventually encompass all your users. This would limit the blast radius and lessen the potential negative impact of a full release.

Canary deployments, much like blue-green deployments, still have the issue of not being able to roll out and roll back at a feature level.

Release at a feature level

To be able to release at a feature level, you will need to harness the power of feature flags.

With feature flags, each feature has a flag which can be toggled on or off, meaning you can roll out each feature individually in place of a full release. This way you can safely and quickly test your features and validate your changes.

This means that if you notice any bugs in any of your features, you can just roll back that particular feature by toggling it off instead of rolling back the entire release and without needing to maintain two production environments. 

Conclusion 

Blue-green deployment is one of the deployment strategies you can use to mitigate risk and minimize downtime during releases.

If you want even more control over your releases then consider opting for feature flag deployments instead. 

This is essentially what a feature flagging platform such as Flagship by AB Tasty does, which is wrap each individual feature in a flag allowing you to continuously deploy to user segments and measure their impact on the user experience.

Keep reading: The Pros and Cons of Blue-Green Deployments

More terms from the glossary
Smoke Testing

Smoke testing is a rapid regression test of major functionality to detect early errors and indicate whether the product is ready for further testing.

Read description
Version Control

Version control, or source control, is the practice of managing and tracking changes to software code.

Read description
Software Development Life Cycle

Software development life cycle (SDLC) refers to the different stages that a software goes through from planning to completion.

Read description
crossmenu
Copy link