Хроники Облачного княжества: как я приручал монолит‑дракона: Ночной алерт и инквизиция безопасности

от автора

Часть 2.

Если вам кажется, что инцидент — это про баги, вы просто ещё не видели, как баги превращаются в совещания.

Первый ночной алерт приходит в момент, когда организм ещё верит, что сон — это базовая потребность, а не роскошь уровня «enterprise».

Пейджер‑амулет (теперь уже и на моём поясе) запел так, будто ему лично не понравилось моё решение спать.

Текст был коротким:

«PROD: всё красное».

Я приехал в Башню релизов быстрее, чем когда‑либо ездил на работу. По дороге я повторял в голове мантру SRE: «Сначала стабилизируй. Потом разбирайся. Потом пишешь постмортем так, будто завтра судебный процесс».

В зале инцидентов уже собрались все.

Артур стоял у доски и рисовал мелом круг, как маг, которому нужно держать демона внутри границ.

— Боевой канал создан, — сказал он. — Марфа, ты коммуникации. Гаврила, база. Я — координация. Ты… — он посмотрел на меня, — ты сегодня глаза и уши. Метрики, логи, следы. Всё, что поможет найти «иглу».

— Почему «иглу»? — спросил я.

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

Марфа уже печатала сообщения стейкхолдерам так быстро, будто играла на клавесине.

— «Сервис недоступен. Команда работает. Следующее обновление через пятнадцать минут», — продекламировала она. — Пятнадцать — потому что звучит уверенно. Никто не верит «когда будет».

Гаврила сидел у своего котла и шептал на древнем языке:

— select… select… кто тебя так индексировал…

Экран мониторинга напоминал рождественскую ёлку, которую повесили на кардиограмму: всё мигало, всё было красным, и где‑то наверху горела одна маленькая зелёная точка, как насмешка.

— Что упало первым? — спросил я.

— Вопрос философский, — ответил Артур. — Упало сначала доверие. Потом уже сервис.

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

На одном сервисе повторялось:

«timeout talking to dragon».

— Дракон, — буркнул Некромант Легаси, появившийся из тени так, как появляются архитекторы, когда горит прод. — Я же говорил.

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

Некромант вздохнул. Это был вздох человека, который в 2012 писал монолит, а теперь слушает про микросервисы и «сервис‑меш».

— Карта? — сказал он. — У дракона нет карты. У дракона есть привычки. Он любит состояние. Он любит транзакции. Он не любит, когда его пытаются разделить на «нано‑сервисы ради гибкости».

Марфа подняла голову:

— Вот, кстати, про гибкость. Пока всё горит, давайте обсудим: может, нам нужно срочно внедрить кубер? Тогда же будет стабильнее.

Я почувствовал, как внутри меня кто‑то кричит: «Нет!»

— Кубер — это не заклинание лечения, — сказал я осторожно. — Это… другое измерение проблем.

Марфа улыбнулась как человек, который слышал слово «измерение» и увидел в нём KPI.

— Но у всех же так, — сказала она. — Мы отстаём. Нам нужен большой проект. Иначе как объяснить совету старейшин, что мы что‑то делаем?

Артур посмотрел на меня так, как смотрят на инженера, которому предлагают «проект ради проекта».

— Позже, — отрезал он. — Сейчас — стабилизация.

Я нашёл метрику, которая падала раньше остальных: очередь сообщений. Она росла, как грибы после дождя, и в какой‑то момент превратилась в лавину.

— Очередь забилась, — сказал я.

— Почему? — спросил Артур.

— Потому что потребители умирают, — ответил я. — А умирают они потому что… — я ткнул в график, — база отвечает медленно.

Гаврила поднял глаза — и в них было человеческое страдание.

— Не база отвечает медленно, — сказал он. — Люди спрашивают у базы глупости.

Он показал мне запрос. Запрос был прекрасен, как демонстрация того, что «работает на тесте» — это культурный миф.

— Кто написал? — спросил Артур.

Все посмотрели на Некроманта Легаси. Некромант молчал.

— Не я, — сказал он наконец. — Я бы так не сделал. Это… — он замялся, будто слово обжигало, — это новый сервис.

Марфа вздохнула:

— Ну хоть что‑то новое.

И тут дверь распахнулась.

Вошла Инквизиторша Безопасности.

— Что происходит? — спросила она.

— Инцидент, — сказал Артур. — Нам нужен доступ, чтобы быстро ограничить трафик и откатить часть функционала.

Инквизиторша подняла бровь.

— Быстро? — переспросила она. — Слово «быстро» не проходит проверку threat model.

Артур сжал челюсть.

— Если мы сейчас не ограничим трафик, пользователи уйдут. Это риск.

— Если вы сейчас дадите доступ без печатей, вы создадите дыру. Это риск, — сказала Инквизиторша. — Риски должны быть согласованы.

Я поднял руку:

— Можно компромисс? Мы делаем временную печать: ограниченный доступ на один час, под конкретное действие, с логированием. Потом закрываем.

Инквизиторша посмотрела на меня так, будто я предложил здравый смысл.

— Ты новый, — сказала она.

— Да.

— Поэтому ты ещё думаешь, что компромиссы возможны, — ответила она. И всё же — кивнула. — Ладно. Один час. Один доступ. Потом отчёт.

Артур выдохнул так, будто его выпустили из контейнера.

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

Система начала оживать.

Красное на графиках стало розовым. Розовое — серым. Серое — почти нормальным.

Марфа написала стейкхолдерам:

— «Стабилизировали. Идём в анализ. Следующее обновление через тридцать минут».

— Почему тридцать? — спросил я.

— Потому что пятнадцать уже использовали, — сказала она. — Нельзя повторяться, аудитория заметит.

Инцидент был локализован. Не решён — но локализован. Это как посадить дракона на цепь: он всё ещё дракон, но уже не бегает по городу.

Тогда в зал вошёл человек, которого я раньше не видел. В руках он держал толстую книгу. На обложке золотом было выбито:

«OKR».

— Доброе утро, команда, — сказал он. — Я Архимаг OKR. Слышал, у вас тут были сложности. Отлично — значит, есть рост. Мы удвоим скорость релизов и сократим инциденты вдвое.

Артур посмотрел на него так, как смотрят на человека, который обещает «вдвое» в системе, где всё связано.

— Каким образом? — спросил Артур.

Архимаг улыбнулся.

— Мы начнём с важного. С инициативы «Всё переписать». И, конечно, «Всё в кубер». Я уже назначил кик‑офф.

Марфа сияла. Некромант Легаси исчез в тень. Гаврила тихо прошептал:

— Господи, дай мне силы не убить никого транзакцией.

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

Продолжение следует…

ссылка на оригинал статьи https://habr.com/ru/articles/1022760/