Признак, по которому это узнают: «по пятницам мы не релизим». Разумное правило для небезопасного процесса и странное — навсегда. На самом деле оно говорит: никто не знает, что будет после кнопки.

Что входит в нормальную настройку

  • Пайплайн, который собирает, проверяет и выкатывает на каждый пуш — в вашем репозитории, а не у подрядчика.
  • Тестовое и боевое окружения, которые действительно разделены. Проверка на бою, потому что больше негде, — корень большинства пятничных происшествий.
  • Сборка в контейнере, чтобы то, что проверили, и было тем, что поедет.
  • Откат одной командой, проверенный при вас. Непроверенный откат — это план, а не возможность.
  • Мониторинг, который доходит до человека, а не в лог, который никто не открывает.
  • Бэкапы с одним выполненным восстановлением. Поставка — это восстановление.

Если в предложении нет двух последних пунктов, вам продают половину работы.

Сколько это стоит и занимает

Для одного приложения и одного боевого окружения — две недели и от 100 000 ₽. Дороже становится, когда приложений несколько, окружений больше двух или инфраструктуру сначала нужно распутать: это видно за час разговора и должно быть названо до счёта.

Мы держим эту цену низкой намеренно: это дверь, за которой начинается разговор о поддержке, а не самое дорогое, что мы продаём.

Что НЕ нужно покупать

Kubernetes, если у вас нет масштаба, который его требует. Он решает задачи, которых у большинства продуктов нет, и приносит постоянную сложность, которую кто-то должен обслуживать. Мы его не эксплуатируем и не продаём.

Выкатку без простоя до того, как тридцать секунд паузы начнут стоить денег. Сначала посчитайте, сколько стоит эта пауза ночью.

Круглосуточное дежурство в довесок. Либо это отдельный договор с людьми в ночную смену, либо это обещание, которое не выполнят.

Что происходит без выкатки по кнопке

Пока релиз делается руками, вы платите за это каждый раз, просто не строкой в

бюджете.

Релиз становится событием. Его назначают, к нему готовятся, его боятся

делать в пятницу. Продукт из-за этого выпускается реже, а чем реже выпускают,

тем больше изменений в каждом релизе и тем страшнее следующий. Это замкнутый

круг, и разрывается он именно автоматизацией.

Выкатывает один человек. Тот, у кого есть доступы и в голове порядок шагов.

Пока он в отпуске, продукт не меняется, а когда он уходит из компании, у вас

остаётся система, которую никто не умеет обновлять.

Откат — импровизация. Спрашивать «как откатиться» посреди инцидента поздно:

в этот момент нужен не план, а команда, которую уже кто-то выполнял.

Стенды расходятся с боевым. «У меня локально работает» — это не шутка, а

описание того, что окружения собраны по-разному, и разница вылезает в самый

неудобный момент.

Ни один из этих пунктов не выглядит как счёт. Все вместе они дороже настройки в

первый же квартал.

Что делать, если продукт уже живёт на сервере руками

Частая ситуация: система работает, обновляется по SSH, инструкции нет.

Разумный порядок — не «переделать всё», а три шага.

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

должен появиться файл, по которому окружение поднимается с нуля. Это же и есть

инструкция, только исполняемая.

Второй: собрать образ. С этого момента у вас есть повторяемая сборка вместо

«скопировали папку», и любую версию можно поднять заново.

Третий: подключить выкатку и откат. И один раз откатиться нарочно, при вас,

до того как это понадобится всерьёз. Мы это [делаем частью

передачи](/ru/services/deployment-and-support): бэкап, который никто не

восстанавливал, — это не бэкап, а надежда.

Как понять, что работа сделана

Один простой признак: изменение выкатывает не «Саша», а любой разработчик пушем в ветку. Второй: вы сами, при подрядчике, откатили релиз и увидели, что сайт вернулся к предыдущей версии.

Третий, самый важный: релиз перестал быть событием, о котором предупреждают заранее.

Этот сайт живёт ровно на такой схеме, и три наших продукта тоже. Если хотите посмотреть, как это устроено, прежде чем заказывать, — спросите, покажем на своём.