Статья

CI/CD для небольшой команды: что даёт и сколько стоит настроить

Автоматическая сборка и выкладка — не роскошь для больших компаний. Что это даёт команде из трёх человек.

3 минуты чтенияЦТБ Центр, Разработка и консалтинг

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

Что происходит без автоматизации

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

Отсюда четыре типичные беды:

  • Забытый шаг. Не применили миграции — сайт лёг с ошибкой базы.
  • «У меня работало». Выложили без проверки, на сервере другая версия языка — не запускается.
  • Выкладка только с одного компьютера. Знает и умеет один человек, он в отпуске.
  • Откат вручную. Сломалось — а как вернуть, никто не помнит.

Что даёт автоматизация

Последовательность превращается в одно действие. Отправили изменения в репозиторий — дальше система сама.

Проверка до выкладки. Прогоняются тесты, проверяется стиль кода, собирается сборка. Не собралось — на боевой сервер ничего не поехало.

Одинаковая выкладка каждый раз. Шаги записаны в файл. Не «мы обычно делаем так», а точный список.

Выкладывать может любой. Знание перестаёт быть в голове одного человека.

Быстрый откат. Предыдущая версия рядом, возврат — минуты.

История. Видно, что выложено, когда и кем. При разборе аварии это первый вопрос.

Сколько стоит настроить

Ориентиры для типового проекта:

  • Простая схема — сборка, тесты, выкладка на один сервер: 40 000–80 000 ₽, 2–4 дня.
  • С тестовым стендом — отдельная площадка для проверки перед боем: 80 000–150 000 ₽, неделя.
  • С контейнерами и откатом на предыдущую версию: от 150 000 ₽, 1–2 недели.

Считается это просто. Ручная выкладка занимает 20–40 минут и делается пару раз в неделю — около трёх часов в месяц. Плюс один-два инцидента в квартал по несколько часов на разбор. Настройка окупается примерно за полгода, а нервы не считаются вовсе.

С чего начать, если бюджета нет

Внедрять всё сразу необязательно. Порядок по отдаче:

  1. Скрипт выкладки. Даже без автоматики: те же семь шагов, записанные в один файл. День работы, а забытые шаги исчезают сразу.
  2. Автоматическая проверка кода. При отправке изменений запускается линтер и сборка. Ловит опечатки до того, как они доедут до сервера.
  3. Автоматическая выкладка на тестовый стенд. Заказчик смотрит результат на живом стенде, а не на скриншотах.
  4. Автоматическая выкладка на бой — по кнопке, а не по каждому изменению. Контроль остаётся у человека, рутина уходит.

Частая ошибка

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

Порядок обратный: сначала проверки, потом автоматизация выкладки. Даже минимальный набор — сборка проходит, линтер молчит, приложение запускается — отсекает большую часть аварий.

Про тесты

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

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

DevOpsИнфраструктураУправление проектом

Следующий шаг

Нужна такая же работа?