Недоступность сервиса api.mindbox.ru для 100% клиентов в течение 118 минут
Incident Report for Mindbox
Postmortem

17 января с 21:07 до 23:05 (мск) наблюдалась недоступность сервиса api.mindbox.ru для 100% клиентов.

Корневая причина проблемы — ошибка в конфигурации сетевого оборудования.

Влияние на клиента‌

Во время инцидента клиенты не могли пользоваться административными панелями. Все синхронные входящие запросы в api завершались с ошибкой. Скапливалась очередь обработки асинхронных запросов. После восстановления доступности очередь обработалась в соответствии с квотами и периодом актуальности

Как выявляли и устраняли инцидент

  • В 21:06 система мониторинга зафиксировала недоступность синхронных сервисов api.mindbox.ru, инженеры приступили к диагностике
  • В 21:45 установили корневую причину отказа - выключенный сетевой интерфейс в стойке
  • В 22:06 наш инженер выехал в ЦОД
  • В 22:56 наш инженер прибыл в ЦОД и включил сетевой интерфейс
  • В 23:05 полностью восстановлена доступность синхронных сервисов

‌Отчет

Чтобы обеспечить высокую точность и согласованность при управлении сетевым оборудованием, мы используем NetBox как централизованную систему документирования сети и Ansible для автоматического развертывания изменений.‌

В ходе ночных работ по замене неисправного основного коммутатора (core switch) возникли изменения конфигурации, которые, не были своевременно отражены в NetBox. На следующий день при добавлении нового сервера эти изменения были отражены в NetBox, но без учета предыдущих ночных корректировок.

В процессе развертывания изменений мы используем Octopus Deploy, который представляет различия (diff) в конфигурациях перед их настройкой и требует внимательности от инженеров. В этот раз произошло упущение, и подготовленный к развертыванию дифф не был уточнен, что привело к ошибочному отключению сетевого интерфейса.

Расследование инцидента заняло большое количество времени, поскольку балансировщик нагрузки запросов для Octopus Deploy находился именно в той стойке, которая была отключена, в результате чего мы не могли оперативно проверить, было ли применено какое-либо обновление. После исключения проблем с DNS и Windows Server Active Directory, команда инженеров повторно проанализировала NetBox и обнаружила отключенный интерфейс. Восстановление сетевого соединения потребовало физического присутствия инженера в дата-центре, который после прибытия подключился к сетевому оборудованию и включил обратно сетевой интерфейс.

Для маршрутизации административных панелей и синхронизации сервисов мы используем Ingress Controller Traefik, развернутый на виртуальных машинах с размещением на разных физических серверах. Все физические серверы были установлены в одной стойке, что повлекло недоступность ключевых компонентов инфраструктуры при её недоступности. Таким образом при отказе стойки вся инфраструктура работала, но ключевой компонент, ингресс, оказался недоступен.

Что улучшим

  • Сделаем обязательное подтверждение критичных изменений архитекторами при выкладке новой конфигурации – 1е полугодие 2024.
  • Обеспечим обязательное разделение рабочих нагрузок (anti-affinity) по разным стойкам:

    • Критические сервисы, например ингресс – 1е полугодие 2024;
    • Для новых стоек будем гарантировать при вводе стойки в работу;
    • Для уже введенных в эксплуатацию стоек начнем постепенную миграцию нагрузок - полностью рассчитываем отбалансировать по разным стойкам – в 2025 году.
  • Настроим автоматический откат изменений на сетевом оборудовании, если в процессе настройки была утеряна связность с настраиваемым устройством – 1е полугодие 2024.

  • Исправим баг с переполнением очереди асинхронных запросов, чтобы они не терялись во время недоступности – февраль 2024.

  • Добавим в конвейер поставки обновлений конфигурации предварительное тестирование полного слепка сети и связности внутри сети, на виртуальных машинах – 1е полугодие 2024.

  • Сделаем OOB Management - изолированную сеть для управления устройствами, чтобы обновление конфигурации устройств не могло привести к потере доступа к устройствам – 2е полугодие 2024.

  • После полного Anti-affinity всех рабочих нагрузок по стойкам будем двигаться к хаос-тестированию полного отключения стойки – в 2025 году.

Posted Feb 07, 2024 - 14:42 UTC

Resolved
UPD от 31.01.24

Мы закончили детальный разбор инцидента, однако нам нужно больше времени чтобы определить сильные следующие шаги. Мы хотим быть уверены, что они полностью закроют возможность отказов в инфраструктуре сети.

Вернёмся с полным отчетом до 7 февраля

---------------------------------------------------------------------------------------------------------------------------------


С 21:07 до 23:05 (мск) наблюдалась недоступность сервиса api.mindbox.ru для 100% клиентов.

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

Проблема была определена и устранена в нарушении соединения с одной из стоек в ЦОД. В настоящий момент сервис работает в штатном режиме. Вернемся с детальным разбором и следующими шагами через 2 недели.
Posted Jan 17, 2024 - 20:45 UTC
Monitoring
С 23:05 (мск) все сервисы работают в штатном режиме.

Дежурная команда осуществляет мониторинг работы. Вернёмся с обновлением статуса в течение 30 минут
Posted Jan 17, 2024 - 20:13 UTC
Identified
Проблема локализована в зоне соединения с одной из стоек ЦОД.

В настоящий момент специалисты восстанавливают доступ. Вернёмся с обновлением статуса в течение часа
Posted Jan 17, 2024 - 19:49 UTC
Update
С 21:07 (мск) наблюдается недоступность сервиса api.mindbox.ru для 100% клиентов. Синхронные вызовы завершаются с ошибкой, копится очередь асинхронных запросов.

Дежурная команда продолжает локализацию и устранение инцидента, вернемся со статусом в течение часа.
Posted Jan 17, 2024 - 18:51 UTC
Investigating
С 21:07 (мск) наблюдается недоступность административной панели Mindbox для 100% клиентов. Не работает вход в личный кабинет проектов, скапливается очередь в сценариях. Частично недоступен процессинг

Инцидент находится в работе у дежурной команды, вернемся со статусом в течение часа.
Posted Jan 17, 2024 - 18:32 UTC
This incident affected: Процессинг, Javascript API, Административная панель, Рекомендации на сайте, Персонализация сайта, and Сценарии.