Dive into progressive delivery and canary releases
Progressive delivery is a practice that builds on CI/CD principles but adds processes and techniques for gradually rolling out new features with good observability and tight feedback loops. Progressive delivery provides a fast-moving but risk-sensitive way to exert more fine-grained control over delivery.
Progressive delivery makes the rollout of new features and testing them in a production environment possible without introducing significant disruption. Testing cloud applications in a staging environment cannot provide a realistic facsimile of the true production experience, which is why experiment-based progressive rollout techniques, such as canary releases, facilitate proactive risk mitigation with:
- Realistic test environments
- The ability to apply fine-grained control of traffic and introduce automated rollbacks
- The ability to see and measure what's happening, i.e. good observability
A canary release is so-called because, like sending a canary into a coal mine, only a small amount of traffic, for example, 1% or 5%, will be routed to the new version of a service at a time. Meanwhile, the majority of traffic continues to go to the original version. This incremental rollout creates an opportunity for observing how changes work in practice and enables easy rollback at the first sign of trouble, all while preventing too much disruption to users.