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
- [done] Automated canary analysis
- [done] Bake time and minimum detectable effect
- [todo] What canaries cannot catch
- [done] Shadow traffic
- [done] A mobile crash at 40 percent rollout
- [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
- [done] Experimentation design
- [todo] Peeking, novelty effects, interference and switchback tests
- [done] Deploy is not release
Source: §30, §39.