What is Canary Deployment?

OpsMx
2 min readFeb 25, 2021

This a two-part blog series about Canary Deployment and Canary Analysis. In the first part, we have discussed canary as a release strategy, canary deployment stages, benefits of using canary, and constraints with implementation. In the second part, we discussed how canary analysis is performed after canary deployments are done, selection and evaluation criteria for choosing different metrics and smoke tests to perform the analysis, and canary hypothesis testing performed with incremental traffic to canary instances. Here we will discuss Canary Deployment.

Just as the canary birds notified miners about any problems in the air they breathed, DevOps engineers use a canary deployment analysis as a release management strategy in their Continuous Delivery process to gauge and control if the new software release causes any catastrophic change to the ongoing business in the live production environment.

Canary deployment stages include:

  1. Planning and creating a canary infrastructure where the new software updates (software updates for new features or bug fixes) are deployed and a small amount of traffic (a subset of users) is sent to this canary instance, while most users continue to use the baseline instance.
  2. The next stage involves analyzing the metrics, logs, network traffic data and compared with baseline data to see if the deployment is going fine as expected.
  3. On completion of the canary analysis, the DevOps team decides either to roll it out the release for the rest of the users or roll back completely to the previous baseline state.

Benefits of canary Deployment Strategy include:

  • Zero production downtime with faster Rollback
  • Less Costly with Small Infrastructure
  • Flexibility for businesses to experiment with new features like carry out A/B testing, gradual load stress tests for stability
  • Canary works for all deployment sizes

Constraints to Implement Canary Deployments include:

  • Time-consuming, Not scalable, and error-prone without automation
  • On-Premise/thick client applications are difficult to update
  • Tricky to implement as different database schema needs to be used

Canary deployment strategy is widely used because it lowers the risk of moving changes into production while reducing the need for additional infrastructure and organizations can test the new release in a live production environment without simultaneously exposing all users to the latest release. To know more about Canary Deployment please read our blogs — “What is Canary Deployment ?” and What is Canary Analysis?

--

--

OpsMx

OpsMx transforms software delivery, enabling you to deploy changes at unequaled scale and speed.