Как правильно реагировать на инциденты (основано на реальных событиях)

Даже кратковременные сбои — большая проблема для онлайн-платформы, особенно если она представляет собой основное рабочее пространство для целых команд специалистов. В статье расскажем, как реагировать в случаях, если ваш сайт внезапно упал или отказали некоторые его сервисы.

Как правильно реагировать на инциденты (основано на реальных событиях)

На связи Топвизор его директор по продукту Юля Федотова. Мы делаем платформу поисковой аналитики для сеошников и маркетологов, и от нас зависит ежедневная рутина специалистов и их отчётность. В связи с этим мы огромное внимание удаляем отказоустойчивости сервиса и поддержанию его работоспособности.

На этом хотелось бы сказать, что наш сайт никогда не падал и все сервисы всегда работали безотказно. Но не в моих правилах врать, поэтому честно скажу: это не так. Мы постоянно занимаемся обновлением сайта, а также у нас можно работать с целой кучей сторонних сервисов, например, выдачей поисковых систем и их кабинетами аналитики, которые тоже очень любят меняться и обновляться. Веселья добавили блокировки всего и вся, начавшиеся с 2022 года, и о борьбе с ними мы даже написали статью на Хабре.

Но, несмотря на то что горького опыта работы со сбоями у нас много, наш сервис остаётся одним из самых популярных на российском рынке SEO-сервисов, а CSAT нашей службы поддержки не падает ниже 90%. Как так получилось? Об этом и пойдёт речь в статье. А ещё я разберу по шагам, как правильно реагировать на инциденты, чтобы репутация бизнеса не пострадала. Сначала вкратце:

А теперь полностью.

#1. Будьте всегда на стрёме (автоматика может и не сработать)

Обвешивать сервис автоматикой — это хорошо, но любой алерт — это всего лишь бездушный код, который проверяет тот участок системы, на который он настроен и по тем правилам, которые в него прописали. Если вы дочитали до этого места, у вас наверняка случались сбои, которые не смогли поймать автоматические алерты. К тому же, сам алерт может сломаться или по какой-то причине не сработать.

Поэтому нужно всегда помнить, что в любой момент что-то может пойти не так. Все штатные ситуации похожи друг на друга, а каждая внештатная ситуация внештатная по-своему. Не всегда можно сделать четкие инструкции или написать алерты так, чтобы они определяли все-все внештатные ситуации — надо подключать людей и мозг, а иногда просто... чувствовать. Говорят же, что интуиция — это бессознательный опыт? Не ленитесь смотреть логи вручную, прислушивайтесь к обратной связи от пользователей.

Обычно моё утро начинается с проверки пары-тройки показателей сайта 
Обычно моё утро начинается с проверки пары-тройки показателей сайта 

Расскажу на примере нашего недавнего инцидента. У нас высоконагруженный сервис, особенно по понедельникам, когда специалисты делают отчеты. И мы упустили момент, где закончилась обычная повышенная нагрузка, которую мы испытываем каждый понедельник, и началась нагрузка, вызванная сбоем. В тот раз мы сработали не очень — заметили сбой только спустя час, а для сервиса, который предоставляет данные в реальном времени, это очень много; по сути — час простоя. Но это был тот случай, когда причина сбоя встретилась нам впервые. Расслабляться нельзя никогда.

#2. Соберите логи

Тут важно то, что это надо сделать быстро. Нет, не так. ВОТПРЯМЩАС. Правда в том, что делать надо это было, скорее всего, ещё час назад, и вы по умолчанию опоздали. А сейчас надо уже чинить, и у вас начинается паника.

На этом этапе надо построить такую культуру, где всем будет важно восстановить работу сервиса, а не выяснять отношения: кто виноват, кто что должен был заметить и так далее. Оставьте это для постмортема. Сейчас все усилия должны быть направлены на спасение ситуации, а голова — оставаться холодной, чтобы быстро и четко провести анализ.

Вместо того чтобы грызться, нужно решать проблему
Вместо того чтобы грызться, нужно решать проблему

Как я недавно обосралась в одном инциденте: мы заметили неладное, я посмотрела не тот лог, скинула в чат для инцидентов и побежала к техдиру в кабинет лично убедиться в том, что сообщение было прочитано.

У меня уже давно отсутствует стыд показаться глупой: что я провела недостаточный анализ, что посмотрела не тот лог и всё такое. Окей, потом разберемся, что, где и как я не то посмотрела. Починить можно? К ошибкам тоже можно относиться продуктово!

Техдир по тексту ошибки и другим данным понял, что она не относится к текущей проблеме, и сказал, где и что надо посмотреть, что я и сделала. Скорость важна!

💡 Сделайте для супер-мега-критичных инцидентов отдельный чат и добавьте туда всех причастных: тех, кто может о них сообщать, и тех, кто может их исправить. Скажите всем, что уведомления в этом чате отключать нельзя и реагировать на них надо мгновенно. Естественно, в этот чат нельзя отправлять некритичные баги, только потому что вам лень заводить задачу в баг-трекере.

У нас такой чат есть, и мы пишем туда, когда решить вопрос надо так быстро, что даже создавать задачу в таск-трекере некогда: массовая ошибка на сайте, он лег или не идут проверки. Собирайте и туда логи для анализа, но не увлекайтесь. Если вы будете в них копаться полчаса, ситуация станет только хуже.

#3. Убедитесь, что ваши сообщения увидели и начали заниматься проблемой

Да-да, это отдельный этап и отдельный скилл. Не так сложно заметить проблему, посмотреть логи и как-то об этом сообщить. Даже скинуть в чат. Куда сложнее убедиться, что тебя услышали, что проблему решают или хотя бы анализируют, в чем проблема.

Ну что, ребята? Ошибку увидели? Чините?
Ну что, ребята? Ошибку увидели? Чините?

Люди часто стесняются кого-то потеребить, особенно программистов; боятся, что они что-то не так посмотрели, и им за это надают по шапке. Легко сказать: «Постройте культуру, где можно ошибаться», особенно в таких моментах, но на самом деле это действительно нужно делать. А ещё пропишите инструкции по анализу разного рода ошибок и учите людей сохранять холодную голову в любой ситуации.

💡 Для быстроты реакции в наш чат для инцидентов можно не отвечать текстом. Мы используем Slack, и там можно ставить на сообщения реакции. Если разработчик поставил зеленую галочку, значит, он увидел сообщение и начал разбираться в проблеме.

#4. Добейтесь информации о том, что случилось и что предпринимается для починки

Бывает так, что проблему нашли и сразу начали исправлять, а что она найдена, не сообщили. От лица пользователя, который попадал в такую ситуацию, говорю: «Мы проверяем, в чем дело» и «Мы нашли проблему, исправляем ее» — это два кардинально разных статуса.

Выясните, на чьей стороне проблема: у вас или у партнёров. Если на вашей, то хорошо, исправляйте. Если нет, то хуже: надо будет с ними связаться и ждать исправления с их стороны.

Агрессивно ждём, пока специалисты с той или с другой стороны исправят проблему
Агрессивно ждём, пока специалисты с той или с другой стороны исправят проблему

Однако даже если в проблеме виноваты не вы, попробуйте сделать что-нибудь, чтобы решить её уже сейчас. Как однажды было у нас: оказалось, что мы упёрлись в дневной лимит от партнерского API, и сразу связались с ними, чтобы они нам его увеличили. Но параллельно пустили проверки по обходному алгоритму. И хотя лимит нам увеличили в тот же день, мы справились ещё быстрее и разгребли всю накопившуюся очередь задолго до этого.

#5. Дайте апдейт пользователям

Напишите, что вы делаете для исправления проблемы. Не бойтесь поспамить в тикет. Некоторые диалоги у нас выглядят как сообщение пользователя и 2-3 сообщения админов. Это нормально! Действуйте проактивно и не ждите, пока люди начнут беситься. В нашем случае моно... диалог выглядел как-то так:

— Сообщение от пользователя о том, что его проекты долго проверяются.

— Сообщение от админа (здесь и далее) о том, что мы повысили приоритет его проверок.

— Видим, что проверка долго не начинается. Проверяем, в чём проблема.

— Обнаружили сбой. Он связан с... Пока лимит не увеличен, мы делаем следующее... Альтернативный алгоритм медленнее, но скоро данные будут получены. Извините за неполадки.

— Ваши проекты проверены. Если ситуация повторится, обращайтесь.

Обычный почти что монолог агента из тикета
Лицо пользователя, которого плотно держат в курсе. И это хорошо!
Лицо пользователя, которого плотно держат в курсе. И это хорошо!

#6. Проведите анализ ситуации, когда всё закончилось

Когда всё успокоилось, проведите анализ того, что случилось и почему, и подумайте, как не допустить такого в дальнейшем. Можно выписать по минутам, когда случился сбой, когда его заметили и так далее, но мы пока такое не практикуем.

Главное — не превращать всё это в поиск виноватых и публичные порки. Помните, что мы стараемся создать такую атмосферу, где люди не будут бояться сообщать об инцидентах? А они у вас будут ещё не раз и не два.

Как проходит обычный постмортем
Как проходит обычный постмортем

В результате инцидентов даже с не самым лучшим временем первичного реагирования и несколькими десятками обращений мы, как правило, получаем всего пару средних оценок, и, я считаю, достойно разбираемся с такими ситуациями и отрабатываем негатив. Хотя, конечно, хотелось бы поменьше поводов демонстрировать эти навыки 🙂

А чтобы больше узнать об управлении цифровыми продуктами, читайте мой канал Продакт тётя Юля. В нём я без прикрас пишу о процессах в Топвизоре.

1515
22
1 комментарий

Интересная статья👍

2