Четыре часа. Столько у нас занимал один деплой. Зайти по SSH на первый сервер, стянуть код, вручную прогнать миграции. Потом второй сервер. Потом третий. Потом четвёртый. Тесты? "Да я прогнал их у себя локально." Аппрув? Цепочка писем, которая сама по себе съедала два часа, прежде чем кто-то вообще касался прода.
Это не деплой. Это молитва.
Когда меня спрашивают, что на самом деле даёт быстрый deployment pipeline, я начинаю не с цифр. Я начинаю со страха — потому что именно он был настоящей ценой старого процесса, и именно про это никто не пишет в презентациях.
Старый процесс был фильмом ужасов
Вот всё как есть, честно. SSH на первый сервер, код, миграции руками. Повторить для второго, третьего, четвёртого. Чек-лист из 47 шагов, где одна человеческая ошибка кладёт прод. А деплой в пятницу? Категорически запрещён. Правило это нигде не было записано — просто все тихо боялись.
Ручной деплой не только жрёт время. Он вшивает страх в процесс, а потом и в команду. Ты начинаешь избегать изменений. Копишь релизы, потому что каждый — это боль, отчего следующий становится ещё крупнее и страшнее. Замкнутый круг, и в каждой компании, куда я приходил, была своя версия этого круга.
Что мы в итоге собрали
Новая архитектура срезала время деплоя на 96%. Не потому что мы купили волшебный инструмент, а потому что убрали человека из каждого шага, где не нужно принимать решение. Вот её каркас:
- GitOps как точка входа. Мёрж в
main— и деплой стартует сам. Никому не нужно помнить шаги, потому что шагов, которые надо помнить, просто нет. - CI валидирует каждый push. Без исключений. Без "ну один разок можно." Пайплайну всё равно, насколько срочным тебе кажется твой хотфикс.
- Аппрув по правилам. Гейты — это код, а не ожидание, пока кто-то откроет почту.
- Blue-green deployment. Ноль даунтайма на переключении, а откат — в один клик, а не пять скриптов в правильном порядке под давлением.
- Автоматические smoke-тесты. Прод проверяется секунд за 60, ещё до того как на него переведут трафик.
Единственное, что осталось от человека, — ревью PR. И всё. Дальше мёржа — работа машины.
Эффект вышел далеко за пределы часов
Экономия времени — это заголовок, но не самое интересное. Интереснее то, что поменялось под капотом:
- На 96% меньше времени на деплой — с четырёх часов до десяти минут.
- В 10 раз больше деплоев в неделю. Фичи выкатываются, когда готовы, а не когда у кого-то хватило смелости.
- Инциденты упали с 15 в квартал до 3. Это многих удивило, но логика простая: маленькие изменения легко дебажить. Если что-то сломалось, ты точно знаешь, какой коммит виноват, потому что в релиз ушла одна вещь, а не тридцать.
- Откат в один клик, поэтому плохой деплой — это неудобство, а не авария.
Если ты до сих пор запрещаешь пятницы — у тебя не проблема с расписанием. У тебя проблема с пайплайном.
Первый деплой в пятницу был жутким
Хочу быть честным про этот момент, потому что рассказ про инструменты звучит куда глаже, чем это ощущалось.
Когда мы в первый раз деплоили в пятницу, я сидел, смотрел, как крутится пайплайн, и обновлял дашборд мониторинга каждые десять секунд, ожидая, что хоть что-нибудь сломается. Ничего не сломалось. Smoke-тесты прошли. Трафик переключился чисто. Мы разошлись на выходные, как нормальные люди.
Вторая пятница была легче. К третьей об этом уже никто не вспоминал.
Вот в этом и урок. Инструменты — простая часть: выходные за чтением доков и пара недель на обвязку. А вот убедить людей, что деплой в пятницу — это нормально, когда пайплайну можно доверять, заняло месяцы. Каждый зелёный деплой добавлял капельку доверия. Команду нельзя переспорить и вытащить из страха — её можно только перевесить фактами, по одному чистому релизу за раз.
Что я сказал бы тебе, если ты всё ещё на четырёхчасовой версии
Ручной деплой — это баг в твоём процессе, а не черта характера твоей команды. Если откат не в один клик, ты играешь с огнём и называешь это стратегией.
Начни там, где страх громче всего. Автоматизируй сначала скучные шаги, где легко ошибиться, — те самые "зайди по SSH и молись", — и пусть каждый успех покупает тебе доверие на следующий шаг. Не нужно переписывать всё за выходные. Нужна одна пятница, в которую ничего не сломалось. А потом ещё одна.
Быстрый deployment pipeline — это на самом деле не про скорость. Скорость — побочный эффект. Ты строишь процесс, которого команда перестаёт бояться. Именно он выкатывает фичи, режет инциденты и позволяет всем расходиться по домам в пятницу, как нормальным людям.
Так что честно: твоя команда деплоит по пятницам? А если нет — что должно измениться, прежде чем ты этому доверишься?