Tech Talk: Developing APIs the Easy Way – Streamline your API process with an endpoint-focused approach on Dec 5 at 11 am EST! Register now

Canary Releases

Get hands-on! Canary releases on K8s with Argo Rollouts

Canary releases

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.


Hands-on! Canary releases on Kubernetes with Argo Rollouts


Read the article Argo Rollout - Kubernetes Progressive Delivery Controller Concepts

Read the article Argo Rollout - Kubernetes Progressive Delivery Controller Architecture

Read the article by Richard Li on deploying argo rollouts with Ambassador

Read

Watch the video Argo Rollouts - Canary Deployments Made Easy In Kubernetes


Tutorial prerequisites



Instructions