Что делать если все сломалось?
К предыдущему посту было написано достаточно много полезных комментариев и один из них представляет собой очень достойный чек-лист от Андрея. Вся годнота внутри 👇
Часть 1. Организационная.
1. Без паники и суеты.
Потому что Все уже упало и главное не сделать хуже
Сообщи начальнику: "Упал прод. Разбираюсь в проблеме. Займет Х мин"
Потому что в компании не только ты и прод, но ещё:
- Начальник к которому скоро придут с вопросом: "Какого ... не работает?!"
- Саппорт у которого оборвется телефон
- Менеджеры по работе с клиентами, которых тоже достанут вопросом: "Какого ... ?! + До вашего суппорта не дозвониться"
Про указание времени на починку:
- "Наверху" обязательно назовут какую-то цифру из головы, поэтому лучше, когда эта информация идёт от тог, кто хоть что-то понимает в системе.
- Если со временем ошибся - ничего страшного, потом сообщишь, что займет больше времени.
- С опытом придет понимание сколько времени требуется на устранение проблем.
2. Сообщи коллегам в рабочий чат
Потому что самое плохое, когда 2 человека что-то меняют на проде не сговариваясь(да ещё и руками, потому что надо быстро)
- Один откатывает изменения
- Другой смотрит половина CICD не отработала и катит обратно
3. Переходи к решению проблемы
Часть 2. Техническая.
Открываем текстовый редактор
Записываем ключевую информацию по проблеме: время, куски логов, какими командами дебажили, ссылки на pipeline и т.д.
Потому что потом надо будет разобраться почему так произошло, а из-за стресса ты забудешь половину действий и будешь путаться в деталях
1. Пойми проблему. Воспроизведи проблему. Локализуй проблему.
С опытом это делаешь на автомате, но для джунов надо объяснить на примерах:
-
Если сайт упал - это не значит, что надо сразу надо бежать перезагружать nginx, даже если в предыдущие 100 раз это было так.
-
Надо сначала проверит открывается ли сайт от тебя? А с сервера?
-
Может проблема на компе сообщившего о проблеме?
-
Может недоступен один файл на сайте?
-
Может проблема в только в московском филиале, а в Новосибирске работает?
-
Может проблема в интернете, DNS или просто пользователь забыл включить VPN для доступа к корпоративной сети? И т.д.
2. Собери информацию.
Помни, что у тебя открыт твой любимый тестовый редактор. Внеси туда что и как проверяешь.
3. Сформируй гипотезу.
Если ничего не понятно:
- Загляни в корпоративную wiki(или в git), потому что только там описано, как система работает.
- Посмотри документацию разработчиков. Например: тикеты на GitHub, если это что-то open source.
- Гугли.
- Спрашивай у коллег в общем чате. Все заинтересованы быстрее починить, потому что от этого зависит доход компании и ваша премия.
- Подумай про восстановление из бэкапа.
- Если зашёл в тупик собери всех в видео чате, пошарь экран.
4. Проверь свою гипотезу.
Не забудь записать результаты.
Потому что потом пригодится на "разборе полетов".
5. Повторяй шаги 3 и 4 пока не решишь проблему.
6. Убедись, что проблема решена.
Свяжись с сообщивщем о проблеме. Убедись, что у него тоже проблема решена.
Часть 3. Разбор полетов.
Если упал прод, то тебе зададут эти вопросы(или часть из них). Лучше подготовить ответы заранее.
-
Не переходи на личности. Обсуждай только техническую часть проблемы.
-
Где произошла проблема?
-
Когда возникла проблема?
- Сколько времени прошло на определение проблемы?
- Сколько времени прошло на локализацию проблемы?
- Когда проблему передали инженеру?
-
Отработал ли мониторинг?
-
Когда исправили?
-
Что произошло?
-
Как исправили?
-
Можно ли было восстановить из бэкапа?
- Почему не восстановили из бэкапа?
-
Причина аварии?
-
Что было сделано неправильно?
-
Последствия отказа?
-
Количество жалоб абонентов?
-
Что надо сделать, чтобы авария не повторилась?
-
Что надо сделать для уменьшения последствий аналогичных отказов?
-
Составь план по устранению последствий и причин аварии
- Укажи ответственных за каждый пункт