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.