Progressive Delivery
Progressive delivery is a modern software development lifecycle practice that builds upon continuous delivery. It aims to deploy updates in a controlled, gradual manner to limit the blast radius of potential failures.
Blue/Green Deployments
In a Blue/Green deployment, two identical environments exist (Blue and Green). At any time, only one environment is live and serving production traffic.
- Deploy: The new version is deployed to the inactive environment.
- Test: The new environment is tested thoroughly.
- Switch: Traffic is routed from the old environment to the new one seamlessly.
- Rollback: If issues occur, traffic can be instantly switched back to the old environment.
Canary Releases
Canary releases slowly roll out a change to a small subset of users before making it available to everyone.
- Phase 1: Route 5% of traffic to the new version.
- Monitor: Observe error rates, latency, and system health.
- Phase 2: If stable, increase traffic to 25%, 50%, and eventually 100%.
Tools like Argo Rollouts or Flagger natively support these strategies in Kubernetes environments.