Runbook vs Playbook: в чем разница и почему это критично в 3 часа ночи?

Привет, %username%! Очень часто в рабочих чатах и инцидент-каналах слова runbook и playbook используют как синонимы. И это частая ошибка, которая может стоить драгоценных минут во время ночных дежурств, когда система лежит, а думать нужно быстро.

Давай разберем, почему это совершенно разные инструменты и зачем тебе нужны оба:

  • Runbook — это конкретный рецепт. Пошаговая инструкция с четкими командами для конкретной проблемы. Например: "если Redis не отвечает, сделай redis-cli ping, затем проверь процесс, а если OOM — перезагрузи сервис".
  • Playbook — это общая стратегия. Он описывает класс проблем, возможные сценарии и порядок эскалации. Он не дает команд в терминал, но говорит: "Если отвалился весь узел — зови инфру и готовь failover, а если проблема с сетью — проверяй routing и зови сетевых инженеров".

Почему эта разница становится критичной во время инцидента в 3 часа ночи?

Если у тебя есть только runbook, то сонный on-call инженер начнет механически выполнять шаги, которые могут вообще не подходить к его конкретной ситуации. Например, он будет пытаться перезагрузить здоровую БД, хотя проблема кроется в сети. В итоге потрачено 15 минут впустую, критерии для действия не продуманы, а что делать дальше — непонятно.

Когда у тебя настроена связка Playbook + Runbooks, картина меняется:

  • Playbook помогает быстро сориентироваться и направляет: «Это похоже на Сценарий 2».
  • Runbook для нужного сценария дает точные команды.
  • Если команды не помогли, playbook сразу объясняет, к кому обращаться дальше и почему.

Кстати, чек-лист хорошего runbook'а:

  • Максимум 15–20 пунктов, чтобы инструкция помещалась на один экран.
  • Реальный копируемый код, а не абстрактные советы вроде "проверь логи".
  • Есть четкие предусловия и ветвления на каждом шаге («если результат не тот, переходи на шаг X»).
  • Обязательно указана дата последней проверки и пометки об изменениях в инфраструктуре.

Делись опытом в комментариях — есть ли у вас в проекте разделение на runbooks и playbooks? Сталкивался ли ты с ситуацией, когда runbook был неправильным или абстрактным, а выяснилось это только во время реального ночного инцидента? Какие практики помогают вам поддерживать доки в актуальном состоянии?

#SRE #DevOps #Observability #incidents #OnCall #SiteReliabilityEngineering #Runbook #Playbook