RunToolz iconRunToolz
Welcome to RunToolz!
ДеплойDevOpsЛучшие практики

Что я проверяю перед каждым деплоем

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

RunToolz Team11 февраля 2026 г.3 min read

Однажды я уронил прод в пятницу после обеда. Запушил изменение конфига, которое выглядело нормально на стейджинге, но ссылалось на URL базы разработки в одной переменной окружения.

Положил весь сайт на 40 минут. В пятницу. В 4 часа дня. Телефон не переставал жужжать.

С тех пор у меня есть чеклист. Он не длинный. Но я следую ему каждый раз. Без исключений. Даже если «это всего лишь маленький CSS-фикс».

Чеклист

1. Сделай diff изменений

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

git diff main...HEAD

Я сравниваю diff с тем, что собирался менять. Если в diff есть что-то неожиданное, я останавливаюсь и выясняю почему.

Это ловило случайное дебаг-логирование, забытые тестовые данные и изменения конфигов окружения, которые я не заметил в стейджинге.

Хотите попробовать сами?Сравнить изменения

2. Проверь конфиг-файлы

JSON-конфиги — хрупкие штуки. Одна пропущенная запятая ломает всё, а сообщение об ошибке обычно выдаёт что-нибудь бесполезное типа «Unexpected token».

Я вставляю каждый изменённый конфиг-файл в JSON-валидатор перед деплоем. Ловит синтаксические ошибки, которые глаза пропустят в 4 часа дня в пятницу.

Хотите попробовать сами?Валидировать JSON

3. Проверь переменные окружения

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

У меня есть список переменных окружения, которые отличаются между средами, и я проверяю каждую. Нудно? Да. Лучше, чем положить прод? Тоже да.

4. Протестируй критический путь

Я не прогоняю весь тест-сьют перед каждым деплоем (для этого есть CI). Но я вручную тестирую критический путь пользователя:

  • Может пользователь зарегистрироваться?
  • Может залогиниться?
  • Может сделать главное, для чего наш продукт?
  • Может нам заплатить?

Если что-то из этого ломается, всё остальное неважно.

5. Проверь размеры ассетов

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

Быстрые проверки:

  • Ни одно изображение не больше 200KB (если нет веской причины)
  • CSS и JS минифицированы
  • Новые шрифты не добавились случайно

6. Убедись в плане отката

Могу ли я быстро откатить этот деплой, если что-то пойдёт не так?

Для большинства проектов это git revert и передеплой. Но если деплой включает миграции базы, откат сложнее. Узнай это до деплоя, а не во время инцидента.

Чего нет в моём списке

Заметь, чего нет:

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

Чеклист деплоя — конкретно про «сломает ли это прод?» Не про качество кода, документацию или процесс. Это тоже важно, но происходит раньше.

Правило пятницы

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

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


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