Недоступность исходящих коммуникаций (email, sms, мобильные пуши) для 100% клиентов в течение 43 минут

Incident Report for Mindbox

Postmortem

12 сентября в промежутке с 18:35 до 19:18 (мск) у 100% клиентов не работали исходящие коммуникации

Корневая причина недоступности — отказ брокера очередей, обрабатывающего исходящие email и транзакционные коммуникации

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

Для 100% клиентов не работали исходящие коммуникации:

  • массовые и транзакционные email рассылки
  • транзакционные sms
  • транзакционные мобильные пуши

Статусы доставки писем не обрабатывались и по итогу были обработаны с задержкой

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

18:36 - система мониторинга обнаружила, что брокер сообщений RabbitMQ стал недоступен

18:41 - дежурный инженер начал диагностику проблемы

18:47 - дежурная команда выявила возможную причину проблемы: утечку памяти в процессе, обслуживающем виртуальные машины на гипервизоре Hyper-V. Это привело к сбою в работе виртуальной машины с RabbitMQ. Поскольку такая ситуация произошла впервые, инженеры эскалировали ее до архитектора

18:57 - дежурная команда попыталась восстановить работоспособность виртуальной машины с RabbitMQ отключив одну из низкоприоритетных виртуальных машин, чтобы освободить ресурсы

19:09 - освобождение ресурсов не решило проблему и команда приняла решение перезагрузить гипервизор

19:13 - после перезагрузки гипервизора работоспособность брокера сообщений RabbitMQ была полностью восстановлена.

Отчёт

Мы используем Apache Kafka в качестве основной системы для передачи сообщений между сервисами. Некоторые части этой системы используют устаревшую технологию RabbitMQ, которая ранее была основным инструментом. На момент внедрения RabbitMQ не предоставлял надежных механизмов отказоустойчивости, поэтому мы обеспечили её через репликацию виртуальных машин на уровне гипервизора Hyper-V.

Со временем объем данных, подлежащих репликации, превысил возможности механизма. Это привело к утечке памяти в процессе, отвечающем за репликацию и, в конечном итоге, к сбою всей системы гипервизора.

Что улучшили и улучшим

  • обнаружение проблем с памятью на Hyper-V (потребление виртуальной памяти), дополнили инструкции для дежурных инженеров
  • проверим альтернативный вариант обеспечения отказоустойчивости RabbitMQ для дальнейшей миграции наиболее нагруженных брокеров на новый механизм — в 4-м квартале 2023
  • заменим брокер сообщений на отправку у всех типов каналов на Kafka — в 4-м квартале 2023
  • заменим брокер сообщений статусов мобильных пушей на Kafka — в 1-м квартале 2024
  • заменим брокер сообщений статусов email рассылок на Kafka — в 1-м квартале 2024
Posted Oct 13, 2023 - 11:39 UTC

Resolved

С 19:18 (MSK) система работает в штатном режиме. Запланированные отправки массовых и транзакционных коммуникаций не потерялись и рассылаются с учетом срока актуальности.

Недоступность компонентов была связана с отказом брокера очередей, обрабатывающего исходящие email и транзакционные коммуникации. С детальным разбором инцидента и следующими шагами вернемся через две недели.
Posted Sep 12, 2023 - 16:34 UTC

Identified

С 18:35 (MSK) наблюдается недоступность исходящих коммуникаций, не работают:
- массовые и транзакционные email рассылки
- транзакционные смс
- транзакционные мобильные пуши

Дежурная команда определила источник отказа и готовит исправление.

Вернемся с обновленным статусом через час.
Posted Sep 12, 2023 - 16:18 UTC