Когда отлетает сертификат.
16:45: выкатываем изменение на один из проектов, добавился новый компонент. Автотесты видят нормальные 200-е ответы страниц, компонент проверяется вручную на страницах сайта.
17:41: QA сообщают, что часть автотестов главной страницы не отработана. На главной какой-то другой контент, а не главная.
17:42: аварийный слак-бот Валентин маршрутизирует инцидент, определяет команду, которая релизила новое обновление, создаёт конференц-кол и вызванивает каждого.
17:47: команда принимает решение откатывать релиз, на главной показывается одна из внутренних страниц.
18:16: у команды недостаточно прав на запуск отката, призывается команда С0.
18:22: запуск отката.
18:35: успешный откат.
Постмортем: с 16:45 до 18:35 пользователи видели не главную страницу, а одну из внутренних. Визуально разница между ними не очень большая, но на новой главной можно было только записаться на первый бесплатный урок, никакого дополнительного контента нет. Статистическая разница в динамике заявок говорит, что потери небольшие, примерно 20 тысяч рублей. Корневая причина: через ревью и первичное тестирование прошло изменение, которое заменяет главную:
В модуле был импортирован модуль FreeLessonModule. А внутри FreeLessonModule прописываются роуты:
Прошёл импорт модуля вне описания корневых роутов, что привело к дописыванию нового правила роута, которое подменило главную. Избежать этого можно, не импортируя модули из shared-папки. Рассказали на ретро командам, как и что делать.