Both Google Play and Apple’s App Store support staged rollouts. Canary releases: as long as we have some way of remotely updating software, we can do canary releases.Today, cloud technologies make things less wildlife-endangering and much more practical: Predictably, as technology progressed, things got better.
When these little birds-more susceptible than humans to the odorless fumes-checked out, it was time to get out of the mine.
Long before Google or Netflix used them, coal miners carried real canaries along to find gas leaks. The idea of using a canary as an early warning system has a long history. Easy rollback: if something goes wrong, we can easily roll back to the previous version.No downtime: like blue-green deployments, a canary deployment doesn’t generate downtime.Canary deployments slowly build up momentum to prevent cold-start slowness. No cold-starts: new systems can take a while to start up.Feedback: we get invaluable input from real users.Any performance issues we have in our system will begin to crop up as we slowly migrate the users to the canary. With canary deployments, capacity tests are built-in. Capacity test: it’s impossible to test the capacity of a large production environment.In other words, we present two alternatives to the users and see which gets better reception. A/B testing: we can use the canary to do A/B testing.Why go to the trouble of implementing a canary strategy? The benefits are many: Examples of companies canarying their applications are Mozilla and their nightly and beta versions of Firefox, and Google, with its canary release channel for Chrome.Ĭanary deployment complete Benefits of Canary Deployments
Often companies publish canary versions of their products, hoping that tech-savvy or power users want to download and try them out. Many projects use an odd/even numbering scheme to separate stable from the non-stable version. Splitting stable and development branches is a widespread strategy in the open-source world. DeploymentsĪ canary release is an early build of an application. Unlike blue-green, canary deployments are smoother, and failures have limited impact. As in blue-green deployments, the canary strategy offers no-downtime upgrades and easy rollbacks.
Once the change is accepted, the update is rolled out to the rest of the users.Ĭanary deployments show us how users interact with application changes in the real world.
We roll out a software update to a small part of the users first, so they may test it and provide feedback. In software engineering, canary deployment is the practice of making staged releases. Canary deployments allow us to test the waters before jumping in. Some issues only appear when they hit production, and by that time, the damage is already done.
But a CI environment is different from production, and synthetic tests are not always enough to reveal problems. In this one, we’ll learn about another deployment strategy, which shares the same advantages but is less risky and often leads to better insights.Ĭontinuous integration has changed the way we develop software. In another post, we talked about blue-green deployments.