How do feature flags, canary releases and API versioning work?
Release engineering separates *deploying* code from *releasing* functionality, which lowers risk.
- Feature flags — ship code switched off, enable gradually by user, tenant or percentage; provide a kill switch; remove stale flags promptly
- Canary release — send a small share of traffic to the new version, compare error and latency metrics, then expand or roll back automatically
- Blue/green — run two production environments and switch traffic instantly; instant rollback, higher cost
- Rolling deployment — replace instances gradually behind health checks
- Semantic versioning (MAJOR.MINOR.PATCH) — communicate breaking changes; maintain a changelog
- API versioning and deprecation — keep old versions working during a published sunset window; use additive, backward-compatible changes by default
- Rollback design — reversible migrations (expand/contract), immutable artifacts and a rehearsed procedure
Tie promotion to automated health signals, not to confidence.