Как у нас отрубился важный сервис на продакшене на 36 часов, а мы даже не заметили
Вы, конечно, можете сразу возразить, что если сервис важный, мы не могли не заметить его падение. Но нет, могли) А самое неприятное, что узнали об этом от пользователя (это значит, что до него еще десятки пользователей столкнулись с похожей ошибкой, и такого нужно максимально избегать в любом IT продукте).
Так вот, недавно мы столкнулись с супер неприятной ошибкой в
Солвите. У нас перестали отправляться email письма пользователям. И ладно бы это были только маркетинговые сообщения, но
недавно мы подключили регистрацию и вход через почту, и часть пользователей тупо не могла залогиниться. Причем сам сервис для отправки писем (не буду его рекламить после такого инцидента) не уведомил меня об инциденте.
Суть инцидента: на стороне провайдера, через которого мы делаем email рассылки, посчитали, что наш API ключ якобы кто-то стащил и решили тупо его деактивировать. Мне позже сообщили, что "ну мы вам отправляли письмо об этом", хотя, конечно, никакого письма не приходило, хотя ситуация с отключением email'ов — критическая для большинства бизнесов.
Вы спросите: "
а че ж вы Артём алерты не включили, а, а?" А я отвечу: мы облажались... Нет... не так!... Мы жестко 💩 обосрались 💩. Дело в том, что у нас давно включены алерты и на любую 500-ку на бэке мы тут же реагируем и идем чинить или разбираться, но как вы можете догадаться, письма отправляются не внутри эндпоинтов — их отправляет фоновый воркер (у нас celery), который запущен в отдельном процессе, никаких 500-ок у него быть не может. А мы, в свою очередь, забыли сделать алерты на
logger.error и
logger.exception. Если бы такие алерты были настроены, то мы бы смогли отловить и исправить ситуацию в течение нескольких минут после инцидента, и не разочаровывать пользователей. Несмотря на то, что я пишу "мы", имею в первую очередь себя, так как я тимлид и решаю, что мы делаем, а что — нет.
Кстати, все логи и алерты настроены у нас на стеке Grafana + Loki, я снимал
отдельный ролик, как все это настроить и поднять для своего проекта.
Что хочу еще сказать. Не хочу казаться идеальным, что у нас все идеально и стартап растет каждый месяц. Это не так. Вообще, тяжело писать о своих ошибках, факапах, тяжело их признавать особенно в реалиях, когда за любой промах ловишь хейт в соц. сетях. Но я все равно попробую. Я, как и все вы, учусь на своих ошибках, и постараюсь не повторять их в будущем.
О прошлом большом факапе с микросервисами
писал отдельный пост.
Обсуждение 10
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram