Better Programming

Advice for programmers.

Follow publication

5 Popular Deployment Strategies Explained Simply

Understand the basics of Canary, Blue/Green, and more deployments

Kirshi Yin
Better Programming
Published in
4 min readJan 24, 2023

--

A macbook on a table
Photo by Christopher Gower on Unsplash

A deployment strategy focuses on releasing the software application to the end users. Organizations use a strategy to efficiently manage their software solutions and ensure they are released as intended.

Various rollout strategies are available, but the five most popular are Blue-Green deployment, Canary release, A/B testing, Recreate deployment, and Shadow deployment. Each deployment strategy has advantages and disadvantages and can be used depending on your needs.

In this article, you’ll learn more about these rollout types.

Let’s get started!

Blue/Green Deployment

In this rollout pattern, the old, stable code version runs in a blue environment. The new code runs in parallel in a green one. Once you’ve thoroughly tested the new code to ensure it meets all the requirements, the load balancer switches the traffic from blue to green.

One of the advantages of this strategy is that you don’t have downtime in production. If you need to roll back the new code, you can flip the traffic back to the old environment.

The main drawback is that it comes with higher costs because you must operate two parallel environments.

Canary Release

Canary release is a deployment strategy that enables incremental rollout to a production environment. The idea is to release the new version to a subset of users slowly. For example, 10% of the production traffic can be sent to the canary. We can test the stability and performance and receive user feedback. If everything works as expected, we can gradually shift the traffic from the older version to the newer version.

Canary deployment basics overview

This deployment reduces the risk of introducing bugs in the new software version. It also has a simple rollback strategy.

One drawback is that the development cycle is more complex and takes longer to finish. For instance, the…

--

--

Kirshi Yin
Kirshi Yin

Written by Kirshi Yin

Self-taught Java Developer. Explores topics about Spring Boot, NLP, Linux, low-coding, and more. Interested in foreign languages, investment, personal growth.

No responses yet