Статья
CI/CD для небольшой команды: что даёт и сколько стоит настроить
Автоматическая сборка и выкладка — не роскошь для больших компаний. Что это даёт команде из трёх человек.
Считается, что автоматизация выкладки нужна большим командам, а троим проще выложить руками. На практике наоборот: чем меньше команда, тем дороже обходится вечер, потраченный на разбор упавшего сайта.
Что происходит без автоматизации
Знакомая последовательность: подключиться к серверу, забрать изменения, установить зависимости, применить миграции, собрать фронтенд, перезапустить сервисы, почистить кеш. Семь шагов, каждый по памяти.
Отсюда четыре типичные беды:
- Забытый шаг. Не применили миграции — сайт лёг с ошибкой базы.
- «У меня работало». Выложили без проверки, на сервере другая версия языка — не запускается.
- Выкладка только с одного компьютера. Знает и умеет один человек, он в отпуске.
- Откат вручную. Сломалось — а как вернуть, никто не помнит.
Что даёт автоматизация
Последовательность превращается в одно действие. Отправили изменения в репозиторий — дальше система сама.
Проверка до выкладки. Прогоняются тесты, проверяется стиль кода, собирается сборка. Не собралось — на боевой сервер ничего не поехало.
Одинаковая выкладка каждый раз. Шаги записаны в файл. Не «мы обычно делаем так», а точный список.
Выкладывать может любой. Знание перестаёт быть в голове одного человека.
Быстрый откат. Предыдущая версия рядом, возврат — минуты.
История. Видно, что выложено, когда и кем. При разборе аварии это первый вопрос.
Сколько стоит настроить
Ориентиры для типового проекта:
- Простая схема — сборка, тесты, выкладка на один сервер: 40 000–80 000 ₽, 2–4 дня.
- С тестовым стендом — отдельная площадка для проверки перед боем: 80 000–150 000 ₽, неделя.
- С контейнерами и откатом на предыдущую версию: от 150 000 ₽, 1–2 недели.
Считается это просто. Ручная выкладка занимает 20–40 минут и делается пару раз в неделю — около трёх часов в месяц. Плюс один-два инцидента в квартал по несколько часов на разбор. Настройка окупается примерно за полгода, а нервы не считаются вовсе.
С чего начать, если бюджета нет
Внедрять всё сразу необязательно. Порядок по отдаче:
- Скрипт выкладки. Даже без автоматики: те же семь шагов, записанные в один файл. День работы, а забытые шаги исчезают сразу.
- Автоматическая проверка кода. При отправке изменений запускается линтер и сборка. Ловит опечатки до того, как они доедут до сервера.
- Автоматическая выкладка на тестовый стенд. Заказчик смотрит результат на живом стенде, а не на скриншотах.
- Автоматическая выкладка на бой — по кнопке, а не по каждому изменению. Контроль остаётся у человека, рутина уходит.
Частая ошибка
Настроить автоматическую выкладку на боевой сервер без тестов. Тогда автоматика начинает быстро и надёжно выкладывать сломанное — и вредит больше, чем ручной процесс, где человек хотя бы посмотрит.
Порядок обратный: сначала проверки, потом автоматизация выкладки. Даже минимальный набор — сборка проходит, линтер молчит, приложение запускается — отсекает большую часть аварий.
Про тесты
Полное покрытие тестами корпоративного сайта — избыточно. Но несколько проверок ключевых сценариев окупаются на любом проекте: главная открывается, форма заявки отправляется и заявка сохраняется, вход в админку работает.
Три таких теста ловят большинство аварий, которые действительно случаются, и пишутся за день.
Следующий шаг