03:17. Телефон вибрирует так, будто у него личная тревожная кнопка. На экране — алерт из Grafana: «Checkout error rate > 12%». На столе остывший эспрессо, за окном мартовская слякоть, в чате дежурных два сообщения: «502 на /pay» и «кто катил в ночь?». Спойлер: никто не катил. Просто закончился сертификат на промежуточном узле в CDN, а алерт сработал уже по бизнес-метрике — конверсии с 1,6% до 0,3% за 11 минут. В один крупный ритейлер тогда улетело примерно 1,2 млн руб потенциальной выручки, пока мы докручивали цепочку сертификатов. Я больше не герой. Я просто научился не быть тем, кто «гордо тушит пожар», вместо того чтобы не допускать возгораний.
Почему сайты валятся ночью, хотя днём всё зелёное
Ночь — идеальное время для того, чтобы проявились все забытые зависимости. Крон в 02:00, чья задача «на пять минут» обновляет прайс и незаметно убивает кэш на шесть миллионов ключей. Провайдер меняет IP подсети, а ваш allowlist составили в 2021‑м и больше не трогали. Кто-то купил новый домен и не включил DNSSEC. Список скучный, но статистика упрямая: за 2025 год у нас 27% инцидентов были про SSL/сертификаты, 19% — про медленные внешние API (платёжки, карты), 14% — про «невинные» настройки CDN. Код тоже падает, но куда реже, чем инфраструктура, которую просят «настроить один раз и забыть».
Ещё один популярный сценарий — ложная уверенность в «зелёном» мониторинге. Ping проходит, HTTP 200 возвращается, а синтетическая покупка ломается на шаге «применить промокод». Вы счастливо спите, потому что у вас аптайм 99,99%, и очень удивляетесь утром метрике «завершённые оплаты — 0 за 47 попыток».
Это не баг кармы, это дизайн. Если техподдержка — это «девопс Вася на телефоне», вы будете ловить 502 на проде. Если это система из метрик, процедур и людей, вы поймаете проблему на уровне «латентность SQL выросла до 210 мс» и вырубите источник за минуту до каскада.
Техподдержка 24/7 как продукт, а не обязанность
В 2026‑м мы перестали «дежурить по расписанию из Excel». Есть ротация: L1 (оператор NOC), L2 (инженер приложений), L3 (девелопер on-call и SRE). У каждого — чёткая зона ответственности и SLO на реакцию: 5 минут для критов, 15 для high, 60 для medium. Эскалация — через PagerDuty и родной бот в Telegram. Ночью звонок идёт сначала L1, через 5 минут — L2, через 12 — L3. За квартал мы пропустили два звонка из 196. Их стоимость мы знаем до рубля.
Ещё одна мелкая, но дорогая деталь — «чёрная полоса» для релизов. После 22:00 — только hotfix по процедуре. Хотите катить миграции БД? Делайте это в 11:00, когда все в офисе/онлайне и коллега может подстраховать. С тех пор, как мы убрали «героические ночные выкаты», количество ночных инцидентов рухнуло на 38% за полгода.
Мониторинг, который видит бизнес-процессы, а не только железо
Мы перестали спорить «какие три метрики — самые главные». Их 18. Да, неровное число. Туда входит четыре бизнесовых синтетики: регистрация, поиск, добавление в корзину, оплата. Каждая — как сценарий в Playwright: браузер проходит цикл, пишет HAR, логирует тайминги и скриншоты. Плюс чёрные пробы API (blackbox), латентность БД (p95), ошибки в nginx по кодам, saturations на воркерах, очередь задач и, что критично — внешние зависимости (латентность платёжек и push‑провайдера). Алёрты завязаны на деривативы: «рост ошибок за 3 минуты в 4 раза от медианы за 90 минут».
Дэшборды мы делаем не ради красоты. На верхнем — три числа: конверсия сейчас, TTI главной, доля 5xx. Всё. Остальное — по вкладкам. Это позволяет L1 на телефоне за 30 секунд понять, с кем идти в бой: сеть, бэкенд или фронт.
Из любимых трюков — бюджет аптайма в часах, не процентах. 99,9% звучит как мантра, но когда ты видишь «ежемесячный бюджет простоя — 43 минуты», рука сама тянется не трогать прод ночью.
История с медицинским справочником, или зачем инженеру читать то, что обычно читают врачи
В 2024‑м ко мне пришёл проект: сайт-справочник симптомов и диагнозов для сети частных клиник. Не медтех-единорог, а честный контентный портал с трафиком 120–140 тысяч в день и особенно злыми пиками по понедельникам к 09:00. Мы перевезли его с самописного хостинга на Kubernetes, починили кеши, настроили синтетику «от статьи до записи к врачу». Самая нервная ночь случилась через неделю: бэкенд обновился, и разделы с длинными статьями начали отдавать 500‑е ровно после 13 секунд — упирались в старый лимит прокси. Пока катили фикс и дожидались прогрева, я поймал себя на странном: листаю статьи, чтобы проверить, как они выглядят без картинок и таблиц, и залипаю. Открываю раздел по сердечно-сосудистой тематике — и понимаю, что простая, понятная структура спасает не только читателя, но и инженера, который решает, какой кусок текста должен грузиться первым. Тогда у меня на экране была ссылка на вполне обыденный для врачей раздел — болезни системы кровообращения МКБ 10 — и я, честно, впервые подумал о том, что «критический рендеринг-путь» у человека и у сайта иногда совпадают: сначала главная мысль, потом детали, потом картинки.
Забавно, но после той ночи мы добавили для длинных статей ленивую загрузку иллюстраций и агрессивный prefetch для первых двух экранов текста. Время до первого контента на 3G упало с 2,8 до 1,6 секунды, а количество прерываний чтения — минус 22% по scroll-depth. Техподдержка — это не только «чинить», это ещё и «не мешать дочитывать до конца».
Инциденты — это спектакль с ролями, а не балаган в общем чате
Мы не обсуждаем «кто виноват» в процессе. Есть Incident Commander (тот же L2), есть Scribe (фиксирует таймлайн), есть Communicator (пишет статус клиенту и команде). Роли раздаются за минуту. Командир не чинит, он принимает решения «отключаем платёжку А, переводим трафик на Б», «ставим заглушку без личного кабинета», «откатываемся на релиз N‑1». Впервые мы ввели это в мае 2025‑го, когда один знакомый из логистической компании спутал staging с prod и уронил расчёт маршрутов по всей Центральной России на 27 минут. Тогда я увидел, как чёткая дикция и одна голова отвечающая за приоритет творят чудеса. С тех пор — только так.
Коммуникации — дисциплина. У нас есть статус-страница, где обновления каждые 7 минут шаблонными блоками: «идёт диагностика», «выполняется миграция», «ждём прогрева кэша 5–7 минут». Те же сообщения уезжают в публичный канал клиента. Парадокс: чем прозрачнее говоришь во время фейла, тем меньше истерики «вы там вообще что делаете?»
И да, мы репетируем. Раз в квартал у нас GameDay. Выдёргиваем доступ к S3, лочим таблицу в БД, утапливаем один регион в облаке. В это время один член команды «играет клиента» и задаёт некомфортные вопросы: «почему вы не предупредили заранее?», «какой план Б?» Это 2–3 часа «ненастоящей» боли, которая экономит настоящие деньги.
Резервирование и бэкапы, которые действительно откатываются
Бэкап, который ни разу не восстановили, — это не бэкап. Мы восстановили продовую базу на тестовом окружении 11 раз за 2025 год. Среднее время до первой успешной выборки — 19 минут. Храним копии с разной ретенцией: инкрементальные за сутки, полные — раз в неделю, форензик-снепшоты — раз в месяц вне облака. У статики — дубликат в другом объектном хранилище и контрольная сумма в манифесте.
Фичефлаги — ещё одна штука, про которую «слышали все, пользуются мало». У нас есть аварийный флаг «без картинок», «без отзывов», «без рекомендаций». В декабре 2025‑го это спасло чекаут от падения фронта из-за деградации CDN: выключили рекомендации — минус 600 запросов на пользователя на главной, система дожила до дауншифта без паники.
И последнее в этом блоке — статическая заглушка. Если всё совсем плохо, у вас должен быть HTML в S3 и правило в CDN, которое за 30 секунд отдаёт «мы на профилактике, запись по телефону такая-то». У одного медицинского клиента конверсия звонков в этот час была 31% — выше, чем онлайн-запись в обычный день. Не шучу, люди любят говорить с людьми.
Сколько стоит не спать ночами и почему дешевле купить мозги
Сухая математика из живых проектов. Дежурства: 4 инженера по 6 ночей в месяц, доплата 1500–2500 руб/ночь, выходит 48–60 тыс. руб/мес сверху зарплат. Инструменты: мониторинг и алёртинг — 18–25 тыс. руб/мес, лог-менеджмент — 22–40 тыс. руб/мес при среднем трафике, APM — 35–60 тыс. руб/мес. Обучение и GameDay — 8–12 часов/квартал, это около 120–180 тыс. руб человеческого времени. Итого — до 300–400 тыс. руб/мес на команду, которая держит ваш онлайн-магазин, медпортал или маркетплейс в строю.
Теперь другая сторона: час простоя у ритейла в прайм-тайм — от 1,1 до 2,7 млн руб недополученной выручки. У B2B SaaS это «всего» 140–350 тыс. руб, но потом уезжают клиенты. У медпорталов больнее социально: трафик утекает в поиске, возвращается медленно, а доверие — ещё медленнее. Считать уметь полезно, особенно когда бухгалтерия спрашивает «зачем вы купили второй регион?»
Маленькие решения, которые почему-то редко делают
— Хард-стопы на домены и сертификаты: бот в бухгалтерии, который напоминает об оплате доменов и SSL, а не «вот этот молодой человек из айти». Сработало в ноябре, когда один клиент забыл про .clinic-домен, заметили за 9 дней до дедлайна.
— Персональные плейбуки на «первые 10 минут» по системам. Не 30‑страничный Word, а одна страница в Wiki: алёрты, куда смотреть, как откатить. Новичок L1 за месяц начал закрывать 40% «простых» аварий без эскалации.
— Инвентаризация внешних зависимостей с метками «критично/некритично». Когда падает «некритичный» сервис, и у вас есть заранее подготовленный режим деградации, вы вдруг выглядите взрослыми.
— Синтетика для SEO‑страниц с длинными статьями и AMP-версиями. Мы нашли 3 редкие, но повторяющиеся дыры, где AMP отдавал старые версии из-за опечатки в ETag. Лечится одной строчкой, а шуму в поддержке было полно.
— Договорённость с контент-редакцией: публикации, которые тянут тяжёлые вставки, выходят не в понедельник в 10:00, а в 12:30. График нагрузки — вещь наблюдаемая, не магия.
Люди, ритуалы и немного бытовой магии
Мы перестали изображать «супергероев» и ввели банальные человеческие штуки. После ночной смены — никакой работы, только «handover» на 15 минут и спать. Каждую среду в 11:15 — разбор одного инцидента по схеме «что увидели поздно, какой сигнал проигнорировали, что автоматизируем». Раз в месяц — технический долг в приоритете прямо в задачнике, минимум 12 часов инженера на «закрыть старые хвосты». Да, всегда хочется «сделать фичу», но падение прода в выходные — дороже любого спринта.
И ещё одна мелочь, над которой обычно смеются: мы складываем все артефакты «ночей» в отдельную папку — скриншоты, выписки из логов, решение. Через полгода это превращается в коллективную память. Новенький идёт и читает, как в декабре в 03:51 мы вытащили из пике чекаут «поставили заглушку, переключили регион, включили фичефлаг без отзывов». И когда в следующий раз мир снова решит посмеяться и отключить промежуточный сертификат, у нас уже есть сценарий и даже заготовленный текст для статус-страницы.
Когда на рассвете тихо гудит кофемашина и телефон молчит, это не значит, что «ничего не происходит». Это значит, что где-то крутится синтетическая покупка, раз в минуту подмигивает чёрный ящик проверки платежей, а в дежурном календаре кто-то поставил зелёную галочку «спал». Техподдержка живёт тогда, когда про неё забывают. И это, поверьте, лучшая похвала в 2026 году.