tgoop.com/tarmolov_work/60
Last Update:
Неожиданная связь
Я рассказывал об инциденте с неправильным ключом или о Кассандре. Сегодня пойдет речь о более серьезном инциденте — LSR с нашим внешним сервисом.
Начало "традиционное": сработали мониторинги → увеличились тайминги → сервис перестал обрабатывать нагрузку.
Проблема видна как внутренним, так и внешним пользователям. SRE кричит на опенспейс "ФАКАП!".
Девопсы включились в работу:
- трафик не изменился
- подозрительные запросы отсутствуют
- в логах нет ничего подозрительного
Вдруг проблема исчезает так же неожиданно, как и появилась. Сидим в непонимании и пытаемся локализовать проблему.
Заходит коллега из соседней команды:
— Слушайте, я тут отключаю минорный бекенд. Там трафика — “слёзы”. Отключил, но сразу откатил, т.к. увидел у вас проблему. Это я вас задел?
— Нет. Это точно не связано. Можно вырубать.
— Ага. Тогда я через минут 10 опять его вырублю.
Коллега ушел, а мы продолжили расследование инцидента. Проходят 10 мин.
Срабатывают мониторинги → увеличиваются тайминги → сервис через пару минут перестанет обрабатывать нагрузку.
Таких совпадений не бывает! Пишем коллеге, чтобы вернул свой бекенд в строй. Проблема исчезает.
Оказалось, что наш сервис использовал отключаемый бекенд глубоко в “кишках” сервиса. Этот фрагмент кода написан много лет назад и жил по принципу “работает — не трогай”. Вызов бекенда был без таймаута, т.е. если бекенд не отвечал, то сервис ждал неразумное время. Также не было никакого логирования, что сильно усложнило диагностику.
В рамках LSR исправили проблему и настроили правильную деградацию сервиса.
Мораль: Bus factor — безумно важен! Если вам достался сервис в наследство, то разберите его на кирпичики. Это поможет вовремя наложить заплатку и не допустить инцидента в будущем.
#байки #инциденты
BY Тармолов про работу
Share with your friend now:
tgoop.com/tarmolov_work/60