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.