feature “git flow” is overkill, but you need a process If it’s not per-patch-push, tag what you push Open source needs ESRs even if you’re high velocity 18
be hard to maintain Development databases are hard: fake data, minidbs Development API sandbox Lightweight set up and tear down VMs “Development” staging server (unstable) “Try” servers for branches 19
run against browser (Selenium, humans) Load test: how does it perform under prod load? Smoke test: what’s the maximum load we can support with this build? 23
it Do it the same way in staging and production Use configuration management to deploy config changes and manage your platform...the same way in staging and production 24
of steps, with the smallest number of people and the smallest amount of ceremony required to get new code running on your servers?” http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/, 30
decision points If it passes this test/performance criteria we’ll ship it If these things go wrong we’ll roll back Make these rules beforehand, while heads are calm 36
on for a subset of users: beta users, developers, n% of users Turn it on for everybody Turn things off if you’re having problems or unexpected load: “load shedding” 37
and a good feel for the holes in coverage A staging environment that reflects production Managed configuration Scripted single button deployment to a large number of machines 40