Canary birds and Continuous Delivery pipeline – Is there a relation ?

Canary birds and Continuous Delivery pipeline – Is there a relation ?

Canary birds or simply canaries were once used in coal mines to detect carbon monoxide and other toxic gases before they hurt humans. The use of canaries is now stopped as there are better sensors available and we do not want to sacrifice the birds.

In the continuous delivery / DevOps world there is new found love between canaries and releases. Not the real canary birds but a simile is being used called as canary releases.

Canary Release

In the DevOps world, Canary releases is a technique used to implement selective roll outs. By selecting limited release the risk of the new software version for the entire user base is reduced. Just like canaries getting affected first by carbon monoxide and saving miners, the issues and problems are uncovered in this limited release thus saving most of the user base population.

Canary release in other words is used to reduce the risk of introducing a new software version in production by slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody. (Ref:https://martinfowler.com/bliki/CanaryRelease.html)

Canary release is also described very nicely by Jez Humble and Dave Farley in the book Continuous Delivery.

By separating out or decoupling the deployment and releases there is a huge advantage that many organizations are currently using. Facebook releases its new version to its internal users first, then to a selected user base either randomly or through geographic regions. If the new version works well, then more user base is added. Whatsapp, Amazon and many many newage organizations are using some form of phased out roll out, in the process using canary releases or similar techniques from the DevOps world.