Платформа для wheel of misfortune.
Ранее я рассказывал, зачем SRE-командам Wheel of Misfortune и как не превратить его в “поиграли и забыли”. Когда то я обещал моему лиду (привет Виталя) что верну в Додо WoM, которую вел мой ментор Ренат. Мне безумно нравилось, как он это делал. А теперь я сделал платформу, чтобы это было проще проводить руками. Репозиторий тоже открыт.
Идея простая: не хранить сценарии в разрозненных .md, табличках, Notion-страницах и “где-то у Васи”, а собрать нормальный тренажёр для incident response.
Что сейчас умеет платформа:
- создавать свои game packs;
- держать приватные и публичные наборы сценариев;
- запускать игру в режиме ведущего;
- давать игроку отдельную ссылку на сессию;
- выбирать сценарий руками или крутить колесо;
- импортировать сценарии пачкой через JSON;
- играть соло без ведущего, если хочется просто потренироваться.
Внутри сценарий — это не просто “у нас DNS сломался”. Там есть контекст, тип инцидента, сложность, примерная длительность, timeline событий, подсказки для ведущего, действия игрока и GM script: pressure-вбросы, чекпоинты, подсказки по раундам.
Мне хотелось, чтобы WoM был ближе к нормальной тренировке, а не к созвону “ну представь, что всё плохо”. Игра разбита на фазы: Detection → Investigation → Mitigation → Recovery.
Каждый раунд игрок выбирает действие: дебажить, коммуницировать, принимать IC-решение или делать ops-фикс. Выбор влияет на panic level, service health и score. Да, это условная модель. Но она хорошо подсвечивает мысль: в инциденте важно не только “угадать root cause”, но и не забыть про коммуникацию, scope, верификацию восстановления и post-mortem.
Отдельно я добавил agent skill: можно взять описание реального инцидента, runbook или заметки после разбора, сказать агенту “Сделай JSON для импорта в WOM” — и получить сценарий в формате платформы.
Вот это для меня самая вкусная часть. Постмортемы часто умирают в Confluence/Notion/GitHub после пары action items. А тут их можно превращать в тренировочные сценарии. Был больной инцидент с CoreDNS, NetworkPolicy, cert-manager, remote_write или ingress? Отлично, через месяц прогоняем команду через похожий кейс и смотрим, стало ли лучше.
Пока внутри есть Starter Pack: ConfigMap/env vars, DNS/CoreDNS/NetworkPolicy, DiskPressure из-за логов, ingress 503 и observability blackout. Можно зайти под demo или зарегаться и сразу покрутить.
Технически это Next.js + Prisma + PostgreSQL, локально поднимается через Docker Compose. UI делал через codex, ведь я натурал совсем не фронтендер. Никакого OAuth, простой логин/пароль, потому что цель сейчас не построить enterprise LMS, а сделать штуку, которую можно быстро поднять, наполнить своими сценариями и использовать с командой. Да, местами не все так гладко, а может даже слишком криво (все же фронт писала нейронка).
Короче, если раньше я говорил про “зачем вообще WoM”, то это уже попытка сделать маленький open-source инструмент вокруг этой практики.
Заходите - https://wom.fadeinflames.ru/
Буду рад, если попробуете, покрутите, загрузите свои сценарии и скажете, где неудобно. Особенно интересно, какие поля вам нужны в сценарии, чтобы игра была полезна не только SRE, но и разработчикам, тимлидам и incident commanders. Очень хочется вашей обратной связи.
#sre #oncall #incidentresponse #postmortem #wheelofmisfortune
В этом посте были ссылки, но мы их удалили по правилам Сетки
· 01.05
Надеюсь в сценариях присутствует уборщица баба Зина вырвавшая шваброй магистральный патч-корд и не сказавшая об этом никому?
ответить
коммент удалён