what is canary deployment

11 months ago 27
Nature

Canary deployment is a software engineering practice that involves making staged releases of a new version of an application to a small part of the users first, so they can test it and provide feedback before rolling it out to the rest of the users. The goal is to reduce the risk of deploying a new version that impacts the workload by incrementally deploying the new version, making it visible to new users in a slow fashion. The process involves installing the update in a system and splitting users into two groups. A small percentage uses the canary version, while the rest of the users continue using the old version. After evaluating the canary version, you can migrate all users to the canary or roll back to the old version.

Canary deployments show how users interact with application changes in the real world, and offer no-downtime upgrades and easy rollbacks. They allow developers to observe errors or bugs and obtain user feedback, which helps improve the software and the user experience.

Canary deployment can be implemented using a variety of techniques and tools, and Kubernetes provides the Deployment object which lets you do a "rolling update". A canary deployment is a progressive rollout of an application that splits traffic between an already-deployed version and a new version, rolling it out to a small percentage of users at a time.