Make the deployment boring
- #infrastructure
- #process
Placeholder post — replace with your own writing.
Every team I’ve joined has had a deploy process that someone described, apologetically, as “a bit manual”. It’s rarely the technology that makes it painful. It’s that nobody has decided the process is finished.
Symptoms
You can tell a deploy is scary by how people schedule around it. Nothing ships on a Friday. Nothing ships before a holiday. The release happens when a specific person is online. Each of those is a workaround for an absence of confidence.
The fix isn’t a tool
It’s usually three things, in this order:
- Make it repeatable. One command, same inputs, same result. If a human makes a judgement call mid-deploy, that’s a bug in the process.
- Make it reversible. Rollback has to be tested on the happy path, every time. A rollback path that only runs during incidents doesn’t work during incidents.
- Make it observable. You should know within a minute whether the thing you shipped is behaving, without asking anyone.
Once all three are true, the frequency question answers itself. Nobody batches up two weeks of changes when shipping costs nothing.