Runbooks the key ingredient to making any job unbearable. Sorta /s
Keep calm and use the runbook
11–20 of 51 posts
Re: Keep calm and use the runbook
#12It is obvious to me that keeping the runbook up to date is really important. But how do you foster a culture in which everyone keeps it up to date? Many people don't even read the readme, let alone correct it. Is it cultural? If you are so privileged that your books are updated, please share with us your ways!
Every service has a runbook. To ensure that they're kept up to date, teams are required to do twice-yearly Disaster Recovery (DR) drills where they fail their service out of one region or data center and into another. (This is for each service. They can be rescheduled - modulo some nagging - if absolutely necessary, but you still need to do them eventually as a part of OKRs / KTLO.)
DR exercises by necessity require that the runbook is up to date and that capacity measures and load testing are recent and accurate. By doing these semi-regularly, your team retains full familiarity with the operational characteristics of the system. Your service, your data stores, your dependencies, and your dependents. Hopefully you (or adjacent teams) won't discover any unknowns, but if you do, they also belong in a runbook or postmortem with action items set to address the issues.
Furthermore, every team keeps a weekly "oncall log", which is essentially a human aggregated and summarized log of pages received. The oncall engineer logs anything that crops up, including new failure classes, and triages fixing them (or gets assistance if they're junior). Novel happenings can easily be discussed during oncall handoff or briefly during standup. Some of these items will naturally find their way into the relevant runbooks.
And as another commenter suggested, use Google Docs. These should be super easy to edit with zero friction. The requirement of creating a PR increases the odds that something will get skipped.
FWIW, several of my previous teams required more than five nines of uptime as we'd lose millions for outages. We had a very mature process.
Re: Keep calm and use the runbook
#13This reminds me of the book The Checklist Manifesto and the show Air Crash Investigation.
Re: Keep calm and use the runbook
#14This reminds me of the book The Checklist Manifesto and the show Air Crash Investigation.
I was also about to come here and say "this sounds a lot like a checklist". The Checklist Manifesto is one of those books that should be really boring but is both valuable and well written and I recommend to everyone.
Fortunately there is a better version with not just all the meat, but also the best anecdotes included: Gawande's original article in The New Yorker.
Re: Keep calm and use the runbook
#15Runbooks the key ingredient to making any job unbearable. Sorta /s
No /s from me. If you want a chore that will never pay off, write a runbook.
Re: Keep calm and use the runbook
#16Earlier quoted context omitted.
No /s from me. If you want a chore that will never pay off, write a runbook.
Can you explain more about this? Most of the runbooks at my current job exist because it was too painful to leave them unwritten, and get used frequently.
Re: Keep calm and use the runbook
#17https://blog.danslimmon.com/2019/07/15/do-nothing-scripting-...
Re: Keep calm and use the runbook
#18Re: Keep calm and use the runbook
#19It reminded me of a simple but not so obvious concept - do nothing scripts. https://blog.danslimmon.com/2019/07/15/do-nothing-scripting-...
Basically, you define a process, do it manually, then slowly automate bits of it.
Re: Keep calm and use the runbook
#20There are a few useful properties with checklists:
- They stop you from having to improvise actions when time is too short for that. People under stress take bad decisions. It's better for them to stick to a pre-defined plan.
- They stop you from making preventable mistakes. People forget stuff. Even trained people. Especially routine stuff.
- They ensure some level of uniformity to people's actions. So, they can check each other's work and do some cross-checking.
For IT operations, run books are great. Especially if you can automate them. CI/CD is basically an automated run book. It simplifies the decision process for humans: do I want to put this live: yes/no?
But what do you do when the database goes down or there is some major hardware failure and you have to restore from a backup? In a lot of organizations, this is still a major crisis. There might be a run book but chances are nobody has practiced this in production in ages. Thinking through ahead of time what you would do is more than half of the success. It doesn't matter if it involves some manual steps as long as you know what they are. In aviation, a lot of stuff is not automated at all. And they still use run books and checklists. These are a great substitute for automation. Newer planes self-check a lot of stuff that you used to have to do manually.
Ideally you have both automation and run books. And automation can fail of course. What do you do when your cloudformation stack is corrupted or when your terraform is out of sync with what remains of your production environment? It happens and it's a bad time for experimentation. Usually such events lead to runbook updates. You learn some new stuff about exciting failure modes you did not consider before.
Having the practice of documenting non obvious things is what separates a good from an excellent engineer. I actually do it to help my future self as well. Because I know I'll go down a rabbit hole of reinventing things I already figured out a few months down the line.