EDITORIAL 28.10.202628 мин

Настройка CI/CD: пайплайн от коммита до продакшена и приёмка работы в
2026

Настройка CI/CD: пять слоёв пайплайна, режимы выпуска, окружения и откат, секреты и OIDC, тарифы платформ, цены в Украине и чек-лист приёмки.

2026

EDITORIAL

Настройка CI/CD — это сборка конвейера, который на каждый коммит сам собирает код, прогоняет тесты, формирует артефакт и доставляет его в нужное окружение без ручных действий разработчика. Короткий ответ: работа состоит из пяти решений — где живёт код и чем запускается пайплайн, что считается артефактом, какие проверки блокируют слияние в основную ветку, как разделены окружения и как выдаются доступы к серверам и облаку. Всё остальное (кэш, матрицы сборки, параллельные задачи) — оптимизация уже после того, как эти пять решений приняты. Ниже — как устроен пайплайн в GitLab CI и GitHub Actions, что меняется в 2026 году в тарифах платформ, сколько стоит работа в Украине, какими метриками измерять результат и по какому чек-листу принимать её у подрядчика.

Настройка CI/CD: короткий ответ

Если свести к практическому минимуму, заказывать нужно не «внедрение DevOps», а конкретный результат: изменение в репозитории доезжает до продакшена предсказуемо, а сломанное изменение не доезжает вовсе. Проверяемый минимум выглядит так:

  • Пайплайн запускается автоматически на пуш и на merge request, а не по просьбе разработчика в чате.
  • Сборка воспроизводима: один и тот же коммит даёт один и тот же артефакт — контейнер, архив или бандл со статикой.
  • Тесты и линтеры — обязательное условие слияния; упавшая проверка физически не пускает код в основную ветку.
  • Деплой идёт в отдельные окружения (тестовое и боевое), а доступ к боевому выдаётся отдельно и не лежит в репозитории.
  • Откат — это переключение на предыдущий артефакт за минуты, а не повторная сборка старого коммита.

Дальше разберём каждый пункт по отдельности — и то, что обычно остаётся за рамками договора: кто отвечает за падение пайплайна ночью, сколько стоит минута сборки и что считается браком при приёмке. Общая картина услуги и её границы с администрированием серверов разобраны в отдельном материале про DevOps-услуги — это первая часть серии, здесь речь только о конвейере.

Пять слоёв, из которых состоит пайплайн

Пайплайн почти всегда собирается из одних и тех же слоёв. Разница между проектами — в том, какие из них настраивают по-настоящему, а какие имитируют. Настройка CI/CD как услуга в каталоге DevOps-направления обычно покрывает все пять, но проверять надо каждый.

  1. Триггер и оркестратор. Событие (пуш, merge request, тег, расписание) запускает задачу на раннере. Здесь же решается, какие ветки вообще имеют право запускать деплой.
  2. Сборка. Установка зависимостей, компиляция, сборка контейнерного образа. Ключевой признак качества — сборка идёт в чистом окружении и не тянет ничего с машины разработчика.
  3. Проверки. Модульные и интеграционные тесты, линтеры, сканер уязвимостей зависимостей, проверка миграций. Это слой, который чаще всего сокращают «чтобы быстрее», и именно он потом стоит дороже всего.
  4. Доставка. Публикация артефакта в реестр и развёртывание в окружения. Хорошая практика — собирать артефакт один раз и продвигать его между стендами, а не пересобирать на каждом шаге.
  5. Наблюдаемость. Статус пайплайна, время стадий, уведомления, следы деплоя в логах и привязка релиза к коммиту. Без этого слоя разбор инцидента превращается в археологию.

CI и CD: три режима, которые путают в договоре

Аббревиатура одна, а режимов три, и они означают разный объём работы и разный уровень риска. Continuous integration — код автоматически собирается и проверяется при каждом изменении. Continuous delivery — к этому добавляется автоматическая доставка в тестовое окружение, но выпуск на прод остаётся ручным решением человека. Continuous deployment — на прод уходит всё, что прошло проверки, без участия человека. Подрядчик может написать в предложении «настроим CI/CD», имея в виду только первый режим, поэтому в договоре фиксировать надо именно режим, а не аббревиатуру.

  • CI без CD — разумный старт для проекта, где продакшен пока один и обновляется редко.
  • Continuous delivery — рабочий вариант для большинства украинских команд: автоматика доводит до тестового стенда, на боевой выпускает ответственный.
  • Continuous deployment — оправдан, когда есть быстрый откат, хорошее покрытие тестами и наблюдаемость. Без этих трёх условий он превращает мелкую ошибку в инцидент для всех пользователей сразу.

Как это выглядит в GitLab CI и GitHub Actions

Этапы пайплайна CI/CD: коммит, сборка, тесты, артефакт, деплой, мониторинг

Два самых распространённых инструмента устроены похоже, но по-разному описывают работу. В GitLab конвейер задаётся файлом в корне репозитория: стадии идут последовательно, задачи внутри стадии выполняются параллельно, а ключевое слово для зависимостей между задачами позволяет запускать часть работы раньше, не дожидаясь конца стадии. Условия запуска задаются правилами на уровне задачи — так деплой на прод привязывают к тегу или к защищённой ветке. Раннеры могут быть общими или своими, в том числе внутри вашей инфраструктуры.

В GitHub Actions конвейер называется workflow и лежит отдельным файлом в каталоге служебных описаний. Внутри — задачи и шаги, шаг может быть готовым действием из маркетплейса или обычной командой оболочки. Плюс такого подхода — низкий порог входа и огромная библиотека готовых шагов; минус — тот же маркетплейс: чужое действие получает доступ к вашему коду и секретам. Практическое правило: сторонние действия закреплять по конкретному коммиту, а не по плавающему тегу, и держать их минимальный набор.

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

Окружения и стратегии выпуска

Отдельные окружения — не формальность, а способ поймать ошибку до пользователей. Рабочая схема для среднего проекта: локальная среда разработчика, общий тестовый стенд, предпродакшен, максимально похожий на боевой, и продакшен. Чем ближе предпродакшен к бою по версиям языка, базе и конфигурации, тем меньше сюрпризов в момент выпуска — но и тем дороже его содержать, поэтому для небольших проектов стенд часто совмещают с тестовым.

Окружения CI/CD: разработка, тестовый стенд, предпродакшен и продакшен
  • Blue-green: два одинаковых окружения, трафик переключается между ними. Откат — обратное переключение, почти мгновенно.
  • Canary: новая версия получает небольшую долю трафика, остальное идёт на старую. Требует маршрутизации и метрик по версиям.
  • Feature flags: код выкладывается, но функция включается флагом. Позволяет отделить выпуск от включения и тестировать на реальных пользователях.
  • Миграции баз данных по схеме «сначала расширить, потом переключить, потом удалить»: изменения, ломающие старую версию приложения, выкладываются в два-три релиза, иначе откат кода без отката схемы невозможен.

Стратегию выбирают не по моде, а по цене ошибки. Для внутреннего сервиса достаточно обычного деплоя с быстрым откатом; для платёжного контура или системы, где простой стоит денег, blue-green и canary перестают быть избыточными. В договоре это стоит зафиксировать отдельной строкой: иначе подрядчик сделает простой деплой, а заказчик будет ждать переключения трафика.

Секреты, доступы и цепочка поставки

Самая частая проблема после внедрения — не сломанная сборка, а ключи. Долгоживущий токен облака, положенный в переменные репозитория, живёт там годами, доступен всем, у кого есть права на запись, и попадает в форки при неаккуратной настройке. Правильное решение для 2026 года — федерация удостоверений: GitHub Actions умеет получать доступ к облачным ресурсам по OpenID Connect без хранения долгоживущих секретов, а провайдер выдаёт короткоживущий токен только для конкретного репозитория, ветки и окружения.

  • Секреты хранятся в хранилище платформы по окружениям, а не в файлах репозитория; у боевых — отдельный доступ и журнал использования.
  • Права деплой-ключа минимальны: только то, что нужно для выкладки, без административных ролей в облаке.
  • Основная ветка защищена: слияние только через merge request с обязательными проверками, прямой пуш запрещён.
  • Сторонние действия и образы закреплены по хешу коммита; обновление — отдельной задачей, а не «само подтянется».
  • Включён скан зависимостей и секретов в самом пайплайне: утёкший токен должен ловиться до попадания в основную ветку.

Отдельный вопрос — цепочка поставки. Если продукт продаётся корпоративным клиентам или работает с персональными данными, заказчику всё чаще нужны подтверждения происхождения артефакта (уровни SLSA) и перечень зависимостей сборки. Это не обязательный минимум для небольшого проекта, но если такие требования появятся позже, переделывать пайплайн дороже, чем сразу предусмотреть подпись и хранение сведений о сборке.

Кэш, раннеры и счёт за минуты

Секреты и доступы в CI/CD: короткоживущие токены, хранилище секретов, защита ветки

Пайплайн стоит денег двумя способами: временем разработчика и оплатой минут сборки. На бесплатном плане GitHub приватные репозитории получают 2 000 минут в месяц, на Pro и Team — 3 000, на Enterprise Cloud — 50 000. Публичные репозитории на стандартных раннерах остаются бесплатными. Кэш зависимостей и артефакты имеют отдельные лимиты хранения — 10 ГБ кэша на репозиторий. С 1 января 2026 года GitHub снизил цены hosted-раннеров до 39 % в зависимости от типа машины. Анонсированную плату за использование собственных раннеров компания отложила после обратной связи сообщества. Значит, при выборе «свои или облачные» считать надо по актуальному тарифу, а не по прошлогодним статьям.

В GitLab на бесплатном плане — 400 минут вычислений в месяц и до пяти пользователей в группе, на Premium ($29 за пользователя в месяц при годовой оплате) — 10 000 минут. Для команды из пяти человек с активными мержами бесплатной квоты обычно хватает на две-три недели, дальше начинается доплата за минуты.

Свои раннеры на сервере экономят минуты при больших объёмах, но добавляют обслуживание: обновления, чистка диска, изоляция задач друг от друга. Если сборки тяжёлые, а инфраструктура уже есть, свои раннеры на серверах под проект окупаются; если инфраструктуры нет, дешевле начать с облачных, а собственные развернуть на Google Cloud, когда счёт за минуты станет заметной строкой бюджета.

Кэш — второй по важности рычаг. Кэширование зависимостей и слоёв контейнерной сборки сокращает типичный прогон с десятков минут до нескольких; но кэш надо правильно инвалидировать, иначе он начнёт отдавать устаревшие пакеты и «зелёные» тесты на старом коде. Признак грамотной настройки — пайплайн не длиннее 10–15 минут на типовой коммит и предсказуемое время у самых тяжёлых задач.

Откат, миграции и восстановление после сбоя

Настройка CI/CD без продуманного отката — это автоматизация риска. Правильная схема: артефакт собирается один раз, получает неизменяемый тег и продвигается между окружениями; откат — переключение на предыдущий тег. Пересборка старого коммита «на месте» опасна: зависимости могли обновиться, и вы получите не ту версию, которая работала вчера. Если в проекте есть база данных, к этому добавляется правило обратной совместимости миграций: код старой версии должен работать со схемой новой версии хотя бы один релиз.

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

Стратегии выпуска и откат CI/CD: blue-green, canary и возврат версии

Метрики: пять показателей DORA

Спорить о результате «на ощущениях» бессмысленно — есть набор показателей, который DORA использует в исследованиях. В обновлении от 5 января 2026 года их пять: три показывают пропускную способность, две — стабильность. Важно, что показатель MTTR из старых материалов заменён на время восстановления после неудачного деплоя, а пятым стала доля незапланированных выпусков. Считать их удобно там, где данные о выпусках и инцидентах уже сведены в одну отчётность — так же, как устроена сквозная аналитика по рекламе и продажам.

  • Время от коммита до продакшена (change lead time) — сколько проходит от слияния до работающей версии.
  • Частота деплоя (deployment frequency) — сколько выпусков в неделю или день и какой между ними интервал.
  • Время восстановления после неудачного деплоя (failed deployment recovery time) — от сбоя до возврата к рабочему состоянию.
  • Доля неудачных деплоев (change fail rate) — какая часть выпусков требует немедленного вмешательства: откат или горячая правка.
  • Доля переделок (deployment rework rate) — какая часть выпусков не планировалась, а была реакцией на инцидент в продакшене.

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

Сколько стоит настройка CI/CD в Украине в 2026 году

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

Стоимость настройки CI/CD в Украине 2026: состав сметы и ориентиры цен
  • Managed-сервис с готовым CI/CD: у украинского провайдера Tucha в пакете TuchaKube первичная настройка процессов сборки, тестирования, контейнеризации и публикации — 100 € разово, дополнительные настройки — 100 € в час, инфраструктурная часть — 602 € в месяц.
  • Команда в штате: по летнему зарплатному отчёту DOU 2026 медиана DevOps Middle — 2 900 $, Senior — 5 100 $, Team Lead — 5 500 $, SRE — 3 500 $ в месяц до налогов.
  • Платформы: GitHub — от 0 до 50 000 включённых минут в зависимости от плана, GitLab Premium — 29 $ за пользователя в месяц при годовой оплате.
  • Сопровождение пайплайна после сдачи — обычно 10–20 % стоимости внедрения в месяц; точная смета зависит от сложности проекта и числа окружений.

Из чего складывается стоимость работы: число репозиториев и сервисов, наличие контейнеров, количество окружений, сложность тестов (модульные дешевле, end-to-end с браузером дороже и медленнее), требования к безопасности и наличие Kubernetes. Проект на одном репозитории с тестами и двумя окружениями и продукт из шести микросервисов с GitOps — это разная работа, хотя в обоих случаях в договоре будет написано «CI/CD».

Экономия, которую обычно обещают, тоже требует проверки. Автоматизация не уменьшает объём работы, а переносит её: вместо ручного деплоя команда тратит время на поддержку пайплайна, разбор упавших тестов и обновление зависимостей. Выигрыш появляется там, где выпусков много и каждое ручное действие повторялось десятки раз в месяц.

Этапы работы и сроки

Адекватный подрядчик начинает не с YAML, а с инвентаризации. Порядок, который снижает риск переделок:

  1. Аудит текущего состояния: репозитории, ветки, ручные шаги, окружения, существующие секреты и доступы. Обычно 2–4 дня.
  2. Проектирование: схема стадий, что блокирует слияние, где хранятся артефакты и секреты, кто имеет доступ к продакшену. 1–3 дня.
  3. Пилот на одном сервисе: полный пайплайн от пуша до тестового стенда, с прогоном на реальном коде. 3–7 дней.
  4. Тиражирование на остальные репозитории и добавление деплоя на прод. 1–3 недели в зависимости от числа сервисов.
  5. Передача: документация, схема пайплайна, инструкция по откату, обучение команды на живом примере.
  6. Стабилизация: первые две недели после сдачи подрядчик разбирает падения и правит ложные срабатывания — этот этап стоит прописать в договоре.

Типичный срок для одного сервиса — от двух до четырёх недель, для продукта из нескольких репозиториев — полтора-два месяца. Если в предложении стоит «настроим за два дня», уточняйте, что именно войдёт: за два дня делается сборка и тесты, но не деплой с откатом и не разделение доступов.

Типичные ошибки заказчиков

  • Покупать «CI/CD» без указания режима: в итоге настраивают только сборку и тесты, а деплой остаётся ручным.
  • Не давать доступ к репозиторию и инфраструктуре на время работ — подрядчик строит пайплайн вслепую, а потом переделывает.
  • Требовать зелёный пайплайн при отсутствии тестов: проверки начинают пропускать принудительно, и защита исчезает.
  • Хранить боевые секреты в переменных репозитория и выдавать всем разработчикам права на прод.
  • Не фиксировать, кто отвечает за падение пайплайна после сдачи: обычно выясняется, что никто.
  • Экономить на предпродакшене, а потом ловить различия конфигурации уже в бою.
  • Забывать про миграции базы: откат кода без обратной совместимости схемы ломает данные.

Как принять работу: чек-лист из десяти пунктов

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

  1. Сломанный тест в отдельной ветке действительно блокирует слияние — проверяется намеренной ошибкой.
  2. Новый коммит в основную ветку автоматически доезжает до тестового стенда без ручных команд.
  3. Деплой на прод требует явного подтверждения или защищённого тега, а не происходит из любой ветки.
  4. Секреты не видны в логах пайплайна и не лежат в репозитории; проверьте историю коммитов и вывод задач.
  5. Откат выполнен на практике: подрядчик показывает возврат к предыдущей версии и время, за которое это происходит.
  6. Артефакт имеет неизменяемый тег и совпадает с коммитом в репозитории.
  7. Пайплайн типового коммита укладывается в согласованное время, тяжёлые задачи не блокируют быстрые проверки.
  8. Уведомления о падении приходят туда, где команда их читает, а не в пустой канал.
  9. Есть документация: схема стадий, переменные, порядок отката и контакты ответственных.
  10. Доступы оформлены на роли заказчика, а не на личный аккаунт подрядчика; при расторжении договора ничего не отваливается.

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

Проверка пайплайна CI/CD: инженер за мониторами со схемой сборки и деплоя

Восемь вопросов подрядчику

  1. Какой режим вы настроите: интеграция, доставка или полный автоматический выпуск?
  2. Что именно блокирует слияние в основную ветку и сколько это занимает по времени?
  3. Где будут храниться секреты и как устроен доступ к продакшену?
  4. Как выполняется откат и сколько он занимает в реальности, а не в презентации?
  5. Что будет с пайплайном при обновлении версии языка или базового образа?
  6. Кто отвечает за падения в первые две недели после сдачи?
  7. Как вы передаёте знания: документация, обучение или только созвон?
  8. Что входит в сопровождение и по какой ставке считаются доработки?

Когда CI/CD не нужен

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

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

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

Итог

Настройка CI/CD — это пять решений и один критерий приёмки: изменение доезжает до продакшена без ручных действий, а сломанное изменение не доезжает. Инструмент вторичен: GitLab CI и GitHub Actions закрывают задачу одинаково. Важнее, что зафиксировано в договоре — режим выпуска, работающий откат, раздельные доступы и сроки стабилизации. Если нужен пайплайн под конкретный стек и инфраструктуру, включая нестандартные интеграции и внутренние сервисы, задачу разбирают отдельно — обсудить её можно на странице заказных решений.

Частые вопросы

Чем CI отличается от CD?

CI автоматически собирает и проверяет каждое изменение. CD добавляет автоматическую доставку: в режиме delivery — до тестового стенда с ручным выпуском на прод, в режиме deployment — сразу на прод.

Сколько времени занимает настройка CI/CD?

Для одного сервиса — обычно 2–4 недели с учётом аудита и стабилизации. Для продукта из нескольких репозиториев — 1,5–2 месяца. Сборка и тесты настраиваются за дни, деплой с откатом и разделением доступов — дольше.

Можно ли настроить CI/CD без тестов?

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

Что дешевле: GitHub Actions или GitLab CI?

На малых объёмах обе платформы укладываются в бесплатные квоты: 2 000 минут в месяц на GitHub для приватных репозиториев и 400 минут на бесплатном GitLab. Дальше считают по числу минут и пользователей: GitLab Premium — 29 $ за пользователя в месяц.

Нужен ли Kubernetes для CI/CD?

Нет. Пайплайн работает с любым способом доставки: виртуальная машина, контейнеры на одном сервере, PaaS. Kubernetes нужен, когда сервисов много и требуется оркестрация, и тогда добавляется GitOps-подход.

Как хранить секреты в пайплайне?

В хранилище секретов платформы по окружениям с ограниченным доступом. Для облаков правильнее федерация удостоверений по OpenID Connect: пайплайн получает короткоживущий токен вместо постоянного ключа.

Что такое откат деплоя и как он работает?

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

Что случится, если пайплайн упадёт ночью?

Ничего, если настроены уведомления и ответственный. Пайплайн останавливается на упавшей стадии, код в продакшен не попадает. Проблема возникает, когда уведомления идут в нечитаемый канал — это проверяется при приёмке.

Сколько стоит настройка CI/CD в Украине?

Смета складывается из часов инженера, тарифа платформы и сопровождения. Ориентиры на октябрь 2026: managed-настройка у провайдера — 100 € разово и 100 € в час за доработки, медиана зарплаты DevOps Middle по DOU — 2 900 $ в месяц. Точная сумма зависит от сложности проекта.

Нужен ли отдельный инженер для поддержки пайплайна?

На небольшом проекте — нет, достаточно 10–20 % времени одного разработчика. Отдельная роль появляется, когда сервисов много, есть Kubernetes и несколько окружений.

Можно ли перенести пайплайн с Jenkins на GitHub Actions?

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

Как измерить, что настройка CI/CD дала результат?

По пяти метрикам DORA: время от коммита до продакшена, частота деплоя, время восстановления после неудачного выпуска, доля неудачных деплоев и доля переделок. Базовые значения фиксируют до начала работ.

Что входит в сопровождение пайплайна после сдачи?

Обновление зависимостей и версий раннеров, разбор падений, правка ложных срабатываний тестов, добавление новых стадий. Обычно это 10–20 % стоимости внедрения в месяц.

Можно ли настроить CI/CD, если код на сервере без репозитория?

Сначала код переносят в систему контроля версий — без неё пайплайн невозможен. Это отдельный этап работы, и его стоит закладывать в смету.

Нужен пайплайн под ваш стек? Обсудим задачу и посчитаем смету

arrow_back Вернуться в журнал
МЕНЮ
Статус: Live
Страница: Настройка CI/CD: пайплайн от коммита до продакшена и приёмка работы в 2026