Tech

What Does It Mean to Have a Canary Deployment?

A previous piece focused on blue-green deployments. A new deployment method is discussed here; it provides the same advantages as the first, but with far lower risk and, in many cases, better insights.

Continuous integration has revolutionised the software development process. While synthetic tests may help, they may not be able to fully expose all problems as the CI environment differs from the production environment. Unfortunately, the effects of certain issues aren’t felt until they begin to negatively impact production. Canary deployment allows us to take a cautious first step before committing fully.

What Does Canary Deployment Mean?

Canary deployment describes a method used in software engineering for rolling out code in increments. At first, we roll out a software update to a small subset of users so that we can get their input. Once the change has been evaluated and accepted, the update is broadcast to the remaining users.

Using canary deployments, we can see how users react to application changes in the “real world.” The canary method, which is comparable to blue-green deployments, allows for easy rollbacks and upgrades with minimum disruption. Canary deployments are less disruptive and failures have less of an impact than blue-green deployments.

Examining Releases and Implementations Side by Side

A “canary release” is an early version of a software product. One typical practise in open-source software is to divide the code base into two branches: the stable branch and the development branch. Many projects use an odd/even numbering scheme to distinguish between the stable and development versions.

Companies often provide “canary” versions of their products for power users and other technically skilled consumers to download and evaluate. Companies that canary their applications include Mozilla with its nightly and beta versions of Firefox and Google with its canary release channel for Chrome.

Placing the Canary in the Mine

In contrast, canary deployments include rolling out the update to a subset of users before making it generally available to everyone. While the canary is sent out to a small subset of users, the vast majority will stay on the old build as a control.

Canaries in the Mines

Once we’ve had time to analyse the canary version, we can decide whether to roll everyone back to the prior version or migrate the remaining users to the canary version.

How Canary Deployments Work

As we saw in the preceding section, canary deployments require running two versions of the application in parallel. The old one will be dubbed “the stable,” while the new one will be “the canary.” We may release the update in one of two ways: either gradually, as with a rolling deployment, or all at once, with a side-by-side deployment.

Conclusion

In order to minimise disruptions to users, updates are sent out in stages, or waves, to individual PCs. The tried-and-true version is still being used by the other instances. This is the most straightforward approach of canary deployment.