Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Use Canary Deployments to Test in Production

Use Canary Deployments to Test in Production

Leia em Português

This item in japanese

Companies use "Canary Deployments" to test software in production by routing a subset of users to new functionality as part of continuous delivery according to Nolio in their 1st video in a series about DevOps Best Practices. A "Canary Deployment" is a type of incremental release performed by deploying a new version of software side by side with its production version counterpart. Running multiple versions of a software product side by side requires the software to be specifically designed for that configuration and flawless deployment automation.

Overcoming the technical challenges involved in "Canary Deployments" will reduce the risk in the deployment process, allow for A/B testing and pre-emptive performance testing. A/B testing allows for new features to be tested without changing the user experience for the majority of users. The performance testing likewise would have a negligible affect on the user base as a whole.

According to Nolio "Canary Deployments" consist of the following steps:
  1. Stage artifacts for deployments, including: build artifacts, test scripts, config files, and deployment manifests.
  2. Remove "Canary" servers from load balancing.
  3. Upgrade "Canary" application (drain and deploy).
  4. Automated testing of application.
  5. Restore "Canary" servers to load balancing (connectivity and sanity checks).
  6. Upgrade the rest of the servers if the "Canary" testing with live usage is successful. (Otherwise rollback)
Nolio includes in the presentation an overview of using their product for high level orchestration of "Canary Deployments". They use an application model that can be reused in multiple processes by driving the usage of it from data. Administration and reporting are done adjacent to the "Canary Deployment".

Rate this Article