Ten years, one legacy app, four deployment generations — from CodeDeploy to blue/green to fully-baked AMIs with instance refresh, and what each rebuild taught me.
A public postmortem: four upstream repo failures in one week, an emergency AMI, and a 16-second health-check race that routed traffic to half-deployed servers.
Patching when you never patch servers: three correctness features that blocked the patch path, the repave operation they forced, and measured numbers for the weekly and emergency patch trains.