Клиент позвонил в понедельник в 9 утра. Голос спокойный, но в нём чувствуется железо: «У нас сайт не работает уже двое суток. В пятницу после вашего деплоя всё сломалось, мы пытались чинить — не получилось. Что делать?»

Ситуация: малый бизнес, команда из четырёх человек, один разработчик, который «сам разберётся». CI/CD не настроен. Деплой — вручную, по FTP, как в 2015 году. Стейджинга нет. Бэкапы — раз в неделю, в пятницу вечером.

В пятницу в 18:00 разработчик запушил три изменения сразу. Одно из них зацепило модуль обработки заказов. Ошибка в коде. Деплой упал на полпути. Разработчик откатил коммит — сайт вернулся. Но что-то внутри осталось сломанным — и никто не заметил, потому что «вроде работает».

Что произошло за выходные

Суббота: клиенты звонят, пишут — заказы не проходят, форма обратной связи выдаёт ошибку. В воскресенье владелец бизнеса попробовал зайти в админку — пустой экран. CRM перестала принимать новые заявки. Команда вызвала разработчика. Три часа удалённой отладки. В понедельник утром всё заработало — но часть данных за субботу-воскресенье была потеряна.

Цена вопроса: два дня простоя, ночная работа разработчика (двойной тариф), потерянные заявки, нервы всей команды и репутационный ущерб. Клиент не сказал ни слова про CI/CD — он просто спросил: «Когда это повторится?»

Почему это случилось: три системные ошибки

Ошибка 1: деплой без стейджинга. Тестировать на production — это как прыгать с парашютом без проверки снаряжения. «У нас всегда так делали» — не аргумент, когда один сбой стоит двух дней.

Ошибка 2: нет бэкапа перед деплоем. Автоматический бекап базы до каждого релиза — это не роскошь. Это базовая дисциплина. Когда данные теряются — вопрос цены уже не стоит.

Ошибка 3: один разработчик без ревью. Три изменения в одном коммите, без тестов, без код-ревью. Если бы перед деплоем кто-то посмотрел код — ошибка бы всплыла за пять минут.

Сколько стоит отказ от CI/CD

Посчитаем реальные потери от ручного деплоя без автоматики:

  • Один инцидент = от 2 до 8 часов простоя. Почасовая стоимость для малого бизнеса — от 3 000 до 15 000 ₽/час. Итого: 6 000 – 120 000 ₽ за один сбой.
  • Ночной деплой в пятницу = двойной тариф разработчика. Если вызов в 23:00 — это не менее 5 000 ₽ сверху.
  • Потерянные клиенты за два дня = невозможно посчитать, но каждый ушедший клиент — это минимум 10 000–30 000 ₽ потерянного контракта.
  • Время команды на «а давайте проверим» перед каждым релизом — 30–60 минут. За год — 15–30 часов. Это 10 000–30 000 ₽ чистого времени.

Итого: один крупный сбой может стоить 30 000–150 000 ₽. Отказ от CI/CD — это не экономия. Это накопление технического долга, который в какой-то момент конвертируется в реальные деньги.

Что делать: быстрый старт за два дня

GitHub Actions — бесплатен для открытых проектов, 2000 минут/месяц бесплатно для приватных. Минимальный пайплайн: тесты → бэкап базы → деплой на стейджинг → деплой на прод. Стоимость настройки: 1 рабочий день разработчика (8–15 часов).

GitLab CI/CD — бесплатный план: 400 минут/месяц. Для малого бизнеса хватает. Настройка: 1–2 дня.

Итоговая стоимость настройки полноценного CI/CD: 1–2 дня работы = 10 000–30 000 ₽. Один единственный сбой без автоматизации стоит столько же или дороже. Окупаемость — первый же деплой.

Чек-лист: проверьте свой деплой

Ответьте честно:

  • У вас есть стейджинг-сервер, идентичный production?
  • База данных бэкапится автоматически перед каждым релизом?
  • CI/CD настроен и работает?
  • Откат на предыдущую версию занимает не более 5 минут?
  • Есть мониторинг, который сообщит о падении в течение 5 минут?

Если хотя бы на один вопрос ответ «нет» — вы в зоне риска. Статистика жестока: команды, которые откладывают CI/CD, тратят в среднем на 30% больше времени на деплой и реагируют на сбои в три раза медленнее.

Ручной деплой — это не «дешевле». Это просто отложенный счёт.