Delivery
Deployment strategies and safe releases
Rolling, blue-green and canary deploys, automated rollback, and zero-downtime schema changes - ship often without betting the fleet on every commit.
A green CI pipeline means the artifact is fit to try. Deployment is how that artifact replaces what is running. Release is when users actually experience the change. Teams that merge these ideas either ship rarely, because every deploy feels like a launch, or break production, because every merge reaches 100% of users at once. Safe delivery keeps the two apart, shifts traffic gradually and always keeps a way back.
The same ideas apply whether you run Kubernetes, ECS, Cloud Run or plain VMs.
The concept pages
| Step | Concept | What it answers |
|---|---|---|
| 1 | Deploy vs release | What is the difference between the bits on servers and the user's experience? |
| 2 | Rollout strategies | How do rolling, blue-green, canary and shadow deploys differ? |
| 3 | Automated canary analysis | How does a machine decide a canary is safe? |
| 4 | Rollback and roll-forward | When do you undo a release, and when do you fix forward? |
| 5 | Zero-downtime schema changes | How do you change the database while old code is still running? |
Mobile and client releases
Mobile apps and desktop clients are not rolled back with a load balancer. Users stay on old versions for weeks. Four habits help.
- Staged store rollouts catch crashes before the release reaches everyone.
- Server-side kill switches and remote config disable a bad feature without waiting for store review.
- Backwards-compatible APIs for several versions back, through versioning or tolerant readers.
- Server-driven flags for risky behaviour, so the fix does not wait for an app review.
Progressive delivery tools
| Tool | Where it runs | Role |
|---|---|---|
| Argo Rollouts | Kubernetes | Canary and blue-green resources, metric analysis, ingress and mesh integration |
| Flagger | Kubernetes | An operator that automates canaries with Prometheus or a mesh |
| Cloud provider deploy tools | Cloud Run, CodeDeploy, Cloud Deploy | Native traffic shifting and revision rollback |
Start with what your platform already offers. Add an automation tool when humans become the bottleneck for every percentage change.
Common mistakes
- A canary that shares a poisoned global cache with the baseline. The comparison then tells you nothing.
- Bake times too short for the traffic. Low-traffic services need longer bakes or bigger canaries.
- Blue-green sharing one database with incompatible writers. The flip does not migrate the schema.
- Rolling updates with
maxUnavailable: 50%on a two-pod service. Half the capacity disappears during each step. - Feature flags that default to on in production. New code reaches everyone before anyone has checked it.
Key takeaways
- Separate deploy from release. Flags and traffic splits are different levers.
- Rolling is simple, canary limits blast radius, and blue-green makes the cutover fast.
- Automate the canary gates on errors and latency, with real bake times.
- Make every binary change rollback-safe, and use expand and contract for schemas.
- Mobile and client changes need staged rollouts, kill switches and long API compatibility.
Further learning
Clare Liguori from AWS explains hands-off pipelines, one-box deploys, bake time and automatic rollback.
Steve McGhee covers safe serverless deploys on Cloud Run, including CI/CD, fast rollback and canaries.
Automating safe, hands-off deployments (Amazon Builders' Library) and Canarying Releases (Google SRE Workbook) cover the same ideas in writing.
Next, start with the distinction that makes all of this possible: deploy vs release.
Related
Continuous integration and the software supply chain
Fast, trustworthy pipelines - build, test, artifact, scan and sign - plus DORA metrics and supply-chain controls that keep trunk green.
Configuration, environments and feature flags
Twelve-factor config, environment parity, secrets injection, feature flags and the blast radius of a bad config push.
Kubernetes in production
Requests and limits, probes, autoscaling, disruption budgets, packaging and the mistakes that cause outages.