Taking the site down for deploys is a relic. Modern strategies route traffic so users never see an error during a release. Here are the three you'll actually use.
Blue-Green
Run two identical environments. 'Blue' serves live traffic while you deploy and test 'green'. Flip the load balancer to green instantly — and flip back just as fast if something's wrong.
Rolling
Replace instances a few at a time. Kubernetes does this by default: it brings up new pods, waits for them to pass health checks, then retires old ones. No spare environment needed.
Canary
Send a small slice of traffic (say 5%) to the new version, watch error and latency metrics, then ramp up. The safest way to ship risky changes.
Health Checks Make or Break It
All three rely on accurate readiness probes. If your health check returns OK before the app can actually serve requests, you'll route traffic into a broken instance.
