Zero Downtime Deploys Made Easy
summary
Yammer deploys Rails to hundreds of servers many times a week and avoids downtime by changing schemas in phases: allow null then backfill with a background task that updates rows in small locks, then add the NOT NULL constraint; use Postgres concurrent index or tools to avoid table locks; handle ActiveRecord schema caching by overriding columns when removing fields; assume queues are never empty and support both old and new job formats; version services and roll out to 5%/10%/20%/50%, flip features off, and keep DB migrations separate from fast push‑button app deploys.
AI-written summary · about
chapters (9)
- 0:00Zero downtime deploys intro
- 1:50Database migrations cause downtime
- 6:21Safe migration techniques
- 9:11Schema sync errors
- 13:28Background worker changes
- 14:52External service versioning
- 17:37Deploy services without downtime
- 20:49Simplify deployment
- 23:19Q&A
related talks
39mZero downtime deploys for Rails apps
29mParticular Particulars about "Zero Downtime Deploys"
34mZero Downtime Database Migrations and Deployments
40mStrategies for Zero Down Time, Frequent Deployments
32mZero downtime Rails upgrades
45mZero-downtime Upgrades
36mContinuous Deployment with Rails
37mDatabase Schema Migrations with Zero Downtime
