- Compare standard, blue-green, and canary strategies.
- Explain when to use each strategy.
- Show how Argo Rollouts enables metric-driven progressive delivery on Kubernetes.

Why progressive delivery matters — a real-world example
A social-media platform used the default Kubernetes rolling update to push a new recommendation algorithm. The rollout reached 100% of users in ~90 seconds. The algorithm contained a memory leak that only manifested under production load. Latencies rose from ~50 ms to ~800 ms, and the degradation persisted for 15 minutes while the team detected and rolled back the change — impacting every user.
- 100% blast radius if the deployment is faulty.
- No native traffic control for staged exposure.
- Rollbacks can be slow because pods must terminate, be rescheduled, and become ready.
- No built-in automated checks tied to production metrics.

Blue-green deployments
Blue-green is the simplest progressive-delivery pattern: maintain two identical environments. Blue is the active environment, and green is the new version running in parallel but receiving no production traffic. Deploy to green, run smoke tests and validations, and when confident, flip the router/load-balancer or Service selector from blue to green. Rollback is an instant switch back to blue. Strengths- Instant rollback by switching routing to the previous environment.
- Zero-downtime deployments for stateless services when readiness and routing are handled correctly.
- Full testing of the new version before exposing users.
- Requires roughly double the resources during deployment.
- The cutover is all-or-nothing; traffic moves 100% at the switch.
- Database migrations can be complicated because both versions may need compatibility.


Canary deployments
Canary deployments gradually shift traffic to the new version while continuously monitoring production metrics. This lets you validate the new release against real user traffic and abort early if something goes wrong. A typical canary flow:- Route a small percentage (e.g., 5%) to the canary.
- Run automated analysis on latency, error rates, and business metrics.
- If checks pass, promote to larger percentages (e.g., 25%, 50%).
- If any analysis step fails, roll the canary back to 0%.
- Gradual exposure reduces blast radius.
- Promotions can be automated and metric-driven.
- Real user traffic provides meaningful validation.
- Requires traffic splitting support (ingress, service mesh, or load balancer).
- More operational complexity to set up and maintain.
- Requires an observability stack (Prometheus, tracing, logs) to drive decisions.


Argo Rollouts — Kubernetes-native progressive delivery
Argo Rollouts is a custom controller that replaces the Deployment resource with a Rollout CRD. It supports both blue-green and canary strategies and provides first-class analysis and traffic management integrations. Key behaviors for canary rollouts:- Sequential steps: adjust weight, pause, or run analysis.
setWeight: change the percentage of traffic sent to the canary.pause: wait for a duration or for manual approval.analysis: run automated checks (Prometheus queries, webhooks) to decide promotion or rollback.
Argo Rollouts requires its CRDs and controller to be installed in the cluster. It integrates with traffic control solutions (e.g., Istio, Gateway API (
https://gateway-api.sigs.k8s.io/), and cloud load balancers) to implement traffic splitting, and pairs well with Argo CD for visualizing rollouts in the UI.
- Native support for canary and blue-green strategies.
- Integrations with Istio, Gateway API, and cloud load balancers for traffic split.
- AnalysisTemplates to automate checks using Prometheus, webhooks, or custom providers.
- Integration with Argo CD for visibility and GitOps workflows.
Strategy comparison
Summary
- Standard Kubernetes rollouts expose all users at once and have a 100% blast radius.
- Blue-green provides an instant switch and rollback at the cost of running duplicate environments and complex migrations.
- Canary provides gradual exposure with metric-driven promotions and safe automatic rollbacks, but requires traffic splitting and observability.
- Argo Rollouts is a Kubernetes-native controller that implements both patterns and adds analysis templates for automated promotion and rollback.

Links and references
- Argo Rollouts: https://argoproj.github.io/argo-rollouts/
- Argo CD: https://learn.kodekloud.com/user/courses/gitops-with-argocd
- Flagger: https://flagger.app/
- Istio: https://istio.io
- Gateway API: https://gateway-api.sigs.k8s.io/
- Prometheus: https://prometheus.io