Про надежность

Обычно работа над стабильностью сервиса выглядит следующим образом: все «на берегу» договариваются писать код без багов.

Шутка. Так не бывает. Баги бывают всегда и это штатный процесс любой разработки. Вопрос в том, как команда проводит работу над ошибками.

Нормальный процесс выглядит так:

Горячая фаза: в приложении что-то идет не так -> срабатывают мониторинги и алерты -> заводится SPI -> призывается дежурный/ответственный/кто-то ещё -> чиним -> проблема ушла, все счастливы.

Холодная фаза: по горячим следам вся информация, связанная с инцидентом, заносится в описание тикета SPI. Затем, по своим стандартам надежности происходит встреча «разбор инцидента», где команда анализирует, что произошло, обсуждает причины, заводит тикеты на дополнительные исправления (например, добавить тесты, пересмотреть процесс реагирования, переписать какое-то архитектурно-неудачное решение и тд). Дальше эти тикеты делятся на MUST (команда берет в ближайший спринт и делает asap) и NICE (складывается в бэклог техлолга, когда-нибудь дойдут руки у кого-нибудь).

Если сбой был локальный, то тут работа с инцидентом формально заканчивается.

У нас недавно был сбой, который задел соседнюю команду аналитиков, поэтому руководство предложило вынести его на LSR, но с приставкой “mini”. Я впервые сталкиваюсь с таким мероприятием - пошла изучать и готовиться.

LSR или live site review. По сути это тот же разбор инцидентов, только уже с несколькими заинтересованными сторонами. У нас это позиционируется как площадка для обмена экспертизой - докладчик публично рассказывает о факапе и коммьюнити совместно брейнштормит как не допустить таких факапов в будущем.

План встречи:

  1. Погружение в контекст - немного про сервис, схема архитектуры
  2. Хронология событий - выявить проблемы в процессе, точки роста, узкие места
  3. Диагностика и потери - понять есть ли "узкие горлышки" или "точки роста" в процессе, если есть занести в AI инцидента или глобальных процессов
  4. Обсуждение и фиксация AI (action items) - явно зафиксировать и отлить в тикете(-ах) все шаги для улучшений.

Я сильно волновалась. Накануне ко мне подходило несколько человек и ехидно спрашивали "готовишься?"😅 Пришлось готовить презентацию, пытаться самой придумать какие-то уроки, ходить к аналитикам и обсуждать возможные варианты решений. Было интересно. Но прошло всё гораздо легче чем ожидалось - нас сильно "не валили" и не докапывались. Даже подготовленные "выученные уроки" пришлось самой напомнить и проговорить идеи.