Начиная с 11:17 21 января в течение 30 минут наблюдалась недоступность синхронных сервисов, механик и транзакционных коммуникаций для 15% клиентов. Для некоторых клиентов недоступность продлилась в течение часа.
Этот инцидент связан с ошибкой при инициализации приложения новой версии. Ошибка была внесена в код после завершения ручного тестирования нового функционала и не была обнаружена автоматическими тестами: из-за некорректной конфигурации функционал был выключен на тестовых окружениях. Проблема усугубилась тем, что некоторые приложения перешли в некорректное состояние из-за чего не удалось быстро вернуть предыдущую версию приложения.
Версия приложения обновляется для наших клиентов постепенно, поэтому недоступность затронула только 15% клиентов Mindbox: обновление было остановлено.
Таймлайн:
- 11:17 новая версия начала выкладываться на боевое окружение, приложения перешли в некорректное состояние
- 11:24 сработал мониторинг доступности сервисов, выкладка была остановлена
- 11:30 дежурный запустил выкладку предыдущей версии
- 11:45 у большинства клиентов полностью восстановлена работа сервиса, но у части клиентов откат прошел неуспешно из-за некорректного состояния приложений
- 12:15 полностью восстановлена работа синхронных сервисов
- 12:32 полностью восстановлена работа всех механик и транзакционных коммуникаций
Что мы уже улучшили и улучшим в ближайшее время:
- изменили схему обновления приложения: версии будут выкладываться последовательно на меньшее количество клиентов.
- добавим проверку успешной инициализации приложения до выкладки на боевое окружение каждого клиента, чтобы отлавливать ошибки связанные с конфигурацией. Ожидаем изменений до конца февраля.
Что мы планируем улучшить системно:
- введем постепенное переключение запросов каждого клиента во время выкладки. Выкладка ошибочной версии будет ограничиваться потерей 10-20% трафика в течение нескольких минут и автоматически откатываться. Ожидаем изменений в рамках планового обновления инфраструктуры в этом году.