Problem
Pre-production testing cannot reproduce real traffic, data, and usage patterns. Releasing to all users at once means defects reach the entire customer base before anyone notices.
Expose a new version to a small slice of real traffic first so regressions are caught before they affect everyone.
Pre-production testing cannot reproduce real traffic, data, and usage patterns. Releasing to all users at once means defects reach the entire customer base before anyone notices.
A canary release limits the cost of being wrong. By sending a small, controlled fraction of production traffic to a new version, teams learn how it behaves before committing, and automation can act faster than humans.
The release pipeline deploys the candidate beside the stable version, then shifts a small percentage of requests to it, commonly one to five percent. An analysis step compares error rate, latency, saturation, and selected business metrics between canary and baseline over a fixed window. Passing the analysis triggers the next step, such as ten, twenty-five, fifty, and one hundred percent. Any failed check aborts the rollout and returns all traffic to the stable version. Sticky routing keeps individual users on one version for consistency.
# Argo Rollouts canary steps
strategy:
canary:
steps:
- setWeight: 5
- pause: { duration: 10m }
- setWeight: 25
- pause: { duration: 10m }
- setWeight: 50
- pause: { duration: 10m }
Teams adopt this approach when you have enough traffic to detect regressions statistically; reliable service level indicators already exist. It is a poor fit when traffic volume is too low for meaningful comparison, or when the change cannot coexist with the old version, such as incompatible data formats. The central tensions are rollout speed vs risk exposure; signal confidence vs time to detect; automation depth vs operational complexity. The main benefits are that it delivers: limits blast radius of defects; validates against real production behavior; enables automated promotion and rollback; builds confidence for frequent releases. The main costs to budget for are: needs mature metrics and traffic routing; two versions run simultaneously, requiring compatibility; slower rollout than a single switch; statistical noise can cause false positives or negatives. Governance typically looks like this: service team defines success criteria; automation promotes or aborts. Expect adoption cost to be medium to high: routing, metrics, and analysis tooling, and a best fit for medium to large teams with strong observability. Critics point out that small canaries may miss rare or segment-specific failures, and that metric choice is subjective and often misses business-level regressions. Treat these concerns as design inputs, and revisit the decision as traffic, team size, and failure history change.