Deployment and progressive delivery
"How do you ship safely" is a guaranteed question at lead level, and the answer is a system, not a technique. The composite answer that sounds like practice: rolling as the mechanism, canary as the policy, flags as the exposure control, rings for the blast-radius sequencing. They compose; they are not competitors.
One sentence resolves half the process questions in this area: deploy is not release. Deployment moves bits, release exposes users, and a feature flag is what decouples them.
What this chapter covers
- [done] Canary vs A/B testing
- [todo] The strategy matrix: recreate, rolling, blue/green, canary, shadow, rings
- [todo] Traffic shifting: LB weights, mesh routing, DNS, and consistent cohorting
- [todo] Automated canary analysis, with a worked scoring example
- [todo] Bake time, minimum detectable effect, and when a canary is a ritual
- [todo] What canaries cannot catch
- [todo] Shadow traffic and side-effect containment
- [todo] Mobile and client-side rollout: N-2 support and the kill switch
- [done] Expand and contract
- [todo] Cache and message compatibility across versions
- [todo] Draining long-lived connections during a deploy
- [todo] Rolling stateful services with quorum awareness and PDBs
- [todo] Trunk-based development and the merge queue
- [todo] Feature flag types, lifecycles and flag debt policy
- [todo] Testing strategy: pyramid vs trophy, and a committed position
- [done] Testing 40 microservices without a full environment
- [todo] Property-based and mutation testing
- [todo] Experimentation: randomisation unit, power analysis, guardrails
- [todo] Peeking, novelty effects, interference and switchback tests
- [done] Deploy is not release
Source: §30, §39.