Проблемы с доступностью ELMA365 28.07.2022

Хронология событий

  • 14:59 Падение 1 Хоста БД PostgreSQL
  • 16:10 Падение 2 резервного хоста БД PostgreSQL
  • 16:16 Эскалация проблемы в экспертную команду Яндекс Cloud
  • Совместная диагностика проблемы, определение причин и подбор вариантов устранения
  • 17:20 Локализована причина возникновения ошибки и выработана стратегия по восстановлению кластера
  • 17:44 Рестарт Базы Данных
  • 18:20 Восстановлена работоспособность кластера postgresql с 1 узлом
  • 20:30 2 узел кластера не восстанавливается
  • 00:10 Принудительная попытка стартовать второй узел кластера
  • 6:55 Инцидент устранен. Работоспособность платформы восстановлена

Резюме по инциденту

28.07.2022 с 14:31 до 21:40 МСК пользователи SaaS версии ELMA365 испытывали сложности с доступом к платформе ELMA365.
Мы приносим свои извинения всем пользователям, кого затронул данный инцидент, и хотим рассказать подробнее о случившемся и мерах предотвращения повторения подобной ситуации в будущем.

Что произошло?

28 июля произошёл всплеск нагрузки на один из Кластеров ELMA365 SaaS.
Постоянно возрастающий объем данных пользователей и непрерывная нагрузка со стороны клиентов привела в этот момент к тому, что кластер PostgreSQL потерял контроль над использованием памяти, не смотря на то, что вычислительная мощность была занята лишь наполовину, это привело к падению.

Причины:

Для обеспечения доступности цен SaaS решения клиенты SaaS Standard размещаются по несколько компаний в одном кластере. Это позволяет оптимизировать стоимость «разделяемых» мощностей, поддержки БД, а также удерживать цены на SaaS лицензии ELMA365 несмотря на повышение стоимости IaaS решений у всех облачных провайдеров в России.
ELMA365 — это Low-code платформа с широким функционалом и постоянно растущими возможностями кастомизации.
Каждый клиент ELMA365 имеет уникальные процессы и управляет ими по-своему. Нагрузка на платформу нелинейна и зависит от активности клиента. В архитектуру кластера заложены колебания нагрузки на основе статистики по средне-максимальным значениям. В случае инцидента 28.07 крайнее допустимое значение было значительно превышено.

Меры для предотвращения повторения подобной ситуации в будущем:

  • 1. Ретроспектива инцидента с экcпертами Яндекс.Cloud, формирование постмортем отчета
  • 2 Рефакторинг системы мониторинга и уведомлений, сигнализирующих о приближении проблем, в частности о деградации кластера
  • 3 Доработка регламента по отработке инцидентов на основании новых уведомлений
    • 3.1 Процедуры быстрого восстановления работоспособности кластера
    • 3.2 Локализация причины возникновения инцидента
    • 3.3 Постмортем отчет и принятие решений по исключению возникновения подобной ситуации
  • 4 Постепенное перераспределение нагрузки между кластерами путем разнесения наиболее активных компаний между подключенными кластерами PostgreSQL.