Week 11: Advanced GitOps — Progressive Delivery
Theme: Canary deployments, blue-green, feature flags with Argo Rollouts.
Learning Objectives
- Explain progressive delivery concepts (canary, blue-green, A/B)
- Install and configure Argo Rollouts
- Write a canary rollout strategy with traffic shifting (Istio or nginx)
- Integrate with Prometheus metrics for automated promotion/rollback
Reading Materials
- Argo Rollouts Documentation
- Argo Rollouts Concepts
- Istio Traffic Management
- Canary Deployments with Argo Rollouts and Istio
- Flagger Documentation
- Progressive Delivery (RedHat)
Finger Exercises (choose 2)
- Install Argo Rollouts in kind. Deploy a sample Rollout resource with a canary strategy.
- Create a canary step: 20% traffic for 5 minutes, then 50% for 5 minutes, then 100%. Use manual promotion.
- Configure a metric analysis template that checks p99 latency. If p99 > 500ms, abort the rollout.
Project
- Replace the Go app's Deployment with an Argo Rollout
- Configure a canary strategy:
- Step 1: 10% for 2 minutes (with manual promotion gate)
- Step 2: 50% for 2 minutes (with automated analysis)
- Step 3: 100% (full promotion)
- Set up Prometheus metric analysis:
http_request_duration_seconds{p99}must stay below 500ms- Error rate must stay below 1%
- Demonstrate:
- Deploy v1.0.0 → v1.1.0 of the Go app
- Watch the canary progress in the Argo Rollouts UI (
kubectl argo rollouts dashboard) - Force a rollback by introducing a high-latency endpoint
- (Optional) Integrate with Istio for traffic splitting at the mesh level
Time Budget
| Activity | Time |
|---|---|
| Reading | 1.5 hrs |
| Finger exercises | 2 hrs |
| Project | 2.5 hrs |
| Total | 6 hrs |