CI/CD для Битрикс-проектов: автоматические сборка, тесты и доставка релизов
Настраиваем конвейеры CI/CD для проектов на 1С-Битрикс: сборка ассетов, автотесты и линтеры, деплой по веткам и окружения dev, stage и prod. Релизы выкатываются по кнопке, а не вручную по FTP, и проходят контроль качества до попадания на боевой сайт.
Из чего состоит конвейер CI/CD для Битрикс
Собираем конвейер под ваш стек и инфраструктуру — от автосборки ассетов и тестов до деплоя по веткам на окружения dev, stage и prod с контролем качества релиза.
Путь коммита от ветки до боевого сайта
Разработчик пушит ветку, конвейер собирает ассеты, прогоняет тесты и линтеры, выкатывает сборку на dev и stage, а на prod деплой уходит после подтверждения и проходит контроль качества.
Где ручные релизы ломают боевой сайт
Пока релизы выкатывают вручную по FTP и правят прямо на проде, каждая выкатка — это риск. CI/CD превращает доставку кода в предсказуемый конвейер с проверками и откатом.
Что меняется в цифрах
Ориентиры по проектам нашей команды. Точные показатели оценим на бесплатном аудите ваших релизов.
Ручные релизы, фрилансер и конвейер от B2Bsite
Сравниваем три способа доставлять код на боевой Битрикс-сайт по тому, что важно для стабильности релизов.
| Критерий | Ручные релизы по FTP | Разовый фрилансер | Конвейер B2Bsite |
|---|---|---|---|
| Скорость выката | Часы на каждую выкатку | Скрипт без проверок | Деплой по кнопке за минуты |
| Контроль качества | Нет, правки прямо на проде | Иногда, без stage | Тесты и линтеры до прода |
| Откат и история | Память разработчика | Скрипт без журнала | Версии и журнал выкаток |
| Прозрачность | Зависит от человека | Знает один человек | Документация и обучение |
| Риски для прода | Высокий риск падения | Средний риск | Откат за секунды |
Как мы внедряем конвейер CI/CD
Идём от аудита текущих релизов к рабочему конвейеру, который выкатывает код на dev, stage и prod без ручной рутины.
Сколько занимает настройка конвейера
Базовый автоконвейер запускаем за пару дней, полную доставку с тремя окружениями и откатом — в течение пары недель.
Сколько стоит настройка CI/CD для Битрикс
Стоимость зависит от числа окружений, сложности сборки и набора проверок. Ниже — ориентиры; точную смету присылаем после короткого аудита релизов, бесплатно.
Автосборка и деплой на одно окружение из репозитория.
- Pipeline в GitLab CI или GitHub Actions
- Сборка ассетов
- Автодеплой на боевой сайт
- Журнал выкаток
Три окружения, тесты, линтеры и деплой по веткам.
- Окружения dev, stage, prod
- Автотесты и линтеры
- Деплой по веткам
- Быстрый откат релиза
- Контроль качества и уведомления
Конвейер для нескольких команд и сложной инфраструктуры.
- Все возможности «Полный CI/CD»
- Контейнеризация и Docker-образы
- Параллельные пайплайны и матрицы
- Интеграция с мониторингом
- Сопровождение и развитие
Базовый конвейер от 45 000 ₽
Автосборка и деплой на одно окружение из репозитория.
- Pipeline в GitLab CI или GitHub Actions
- Сборка ассетов
- Автодеплой на боевой сайт
- Журнал выкаток
Популярный Полный CI/CD от 120 000 ₽
Три окружения, тесты, линтеры и деплой по веткам.
- Окружения dev, stage, prod
- Автотесты и линтеры
- Деплой по веткам
- Быстрый откат релиза
- Контроль качества и уведомления
CI/CD под нагрузку от 240 000 ₽
Конвейер для нескольких команд и сложной инфраструктуры.
- Все возможности «Полный CI/CD»
- Контейнеризация и Docker-образы
- Параллельные пайплайны и матрицы
- Интеграция с мониторингом
- Сопровождение и развитие
Дополнительные опции
| Перенос конвейера на Jenkins или другой раннер | от 35 000 ₽ |
| Контейнеризация окружений в Docker | от 60 000 ₽ |
| Покрытие проекта автотестами под CI | от 50 000 ₽ |
Сколько времени съедают ручные релизы
Прикиньте, сколько рабочих часов команда теряет на ручных выкатках и разборе инцидентов после них. Конвейер CI/CD возвращает эти часы разработке.
Оценка по формуле: релизы в месяц × часы на релиз × стоимость часа. Это ориентир потерь рабочего времени, а не точная гарантия.
Рассчитайте стоимость конвейера CI/CD
Ответьте на несколько вопросов о вашем проекте, стеке и числе окружений — покажем ориентир по стоимости и срокам настройки конвейера.
Кейсы по CI/CD на Битрикс
Что говорят клиенты о настройке CI/CD
На что можно рассчитывать по договору
Частые вопросы о CI/CD на Битрикс — и наш ответ
Это не общие советы из интернета, а закономерности из реальных проектов на 1С-Битрикс. Каждый ответ — позиция нашей команды.
CI/CD для Битрикс-проектов: что это и зачем команде разработки
CI/CD для Битрикс-проектов — это автоматический конвейер, который собирает, проверяет и доставляет код на боевой сайт без ручного копирования файлов по FTP. Разработчик отправляет изменения в репозиторий, а дальше система сама устанавливает зависимости, собирает стили и скрипты, прогоняет тесты и линтеры и выкатывает релиз на нужное окружение. Вместо нервной ручной выкатки команда получает предсказуемый процесс с проверками на каждом шаге и быстрым откатом, если что-то пошло не так.
Аббревиатура складывается из двух частей. CI — это непрерывная интеграция: код из веток постоянно собирается и проверяется, поэтому ошибки и конфликты всплывают рано, а не в день релиза. CD — это непрерывная доставка кода на серверы: проверенный артефакт автоматически разворачивается на окружениях dev, stage и prod по заданным правилам. Для проектов на 1С-Битрикс такой конвейер особенно ценен, потому что ручные релизы на этой платформе легко заканчиваются затёртыми файлами, старым кэшем и сломанным боевым сайтом.
Из чего складывается конвейер CI/CD
Под капотом конвейер объединяет несколько связанных шагов, каждый из которых снимает свой кусок ручной работы и риска. Сборка готовит код к запуску: ставит зависимости, собирает и минифицирует стили и скрипты, версионирует статику. Тесты и линтеры проверяют код до выката и не пускают на прод то, что не прошло проверки. Деплой доставляет готовый релиз на сервер атомарно, без простоя сайта. Окружения dev, stage и prod изолируют этапы работы. А откат и журнал выкаток дают команде контроль над тем, какая версия сейчас на боевом сайте.
Главные функциональные узлы конвейера:
- конвейеры сборки и доставки на GitLab CI, GitHub Actions или Jenkins под ваш стек;
- автотесты на PHPUnit и Codeception плюс статический анализ кода;
- линтеры PHP_CodeSniffer, PHPStan, ESLint и Stylelint в качестве ворот качества;
- сборка ассетов через Webpack, Vite или Gulp с минификацией и версионированием;
- деплой по веткам на окружения dev, stage и prod по заданным правилам;
- атомарный деплой без простоя, быстрый откат и журнал выкаток с уведомлениями.
Кому нужна настройка CI/CD на Битрикс
Конвейер окупается там, где релизы стали узким местом. Это команды, которые выкатывают код часто, работают над проектом несколькими разработчиками или боятся каждой выкатки на боевой сайт. Чем больше у проекта посетителей и чем дороже простой, тем выше цена ручной ошибки при релизе. Если выкатки делают по FTP, правки вносят прямо на проде, а откатить релиз быстро нельзя — это прямой сигнал, что пора переводить доставку кода на конвейер.
Отдельная ценность — для проектов с несколькими командами и сложной инфраструктурой. Когда над сайтом работают параллельно, ручные релизы превращаются в борьбу за то, чей код окажется на проде. Конвейер с окружениями и деплоем по веткам разводит команды по своим средам, прогоняет проверки и пускает на боевой сайт только согласованный релиз. Разработчики перестают наступать друг другу на ноги, а руководитель получает прозрачную историю всех выкаток.
Как устроены настройка и внедрение
Внедрение CI/CD мы начинаем с аудита текущих релизов: смотрим, как сейчас выкатывается код, где лежит репозиторий, какие есть серверы и окружения. На основе этого согласуем модель ветвления Git и правила деплоя — какая ветка на какое окружение уходит и кто подтверждает выкатку на прод. Затем поднимаем первый рабочий конвейер со сборкой и деплоем на одно окружение, чтобы команда сразу почувствовала отдачу, и итерациями добавляем тесты, линтеры, окружения dev, stage и prod, откат и уведомления.
Особое внимание — специфике 1С-Битрикс. Папки с пользовательскими данными, такие как /upload, кэш и логи, выносим за пределы релиза и подключаем ссылками, чтобы они не перезаписывались при выкатке. Кэш Битрикс сбрасываем управляемо на нужном шаге деплоя. Обмен с 1С работает с данными и не страдает при обновлении кода. Деплой настраиваем атомарным, чтобы боевой сайт не падал во время релиза и оставался доступным для посетителей.
Результат настройки CI/CD для Битрикс-проекта — это управляемый и предсказуемый процесс доставки кода. Релизы выкатываются по кнопке за минуты, а не часами вручную. Тесты и линтеры ловят ошибки до прода, а не по жалобам клиентов. Откат к прошлой версии делается за секунды, а журнал выкаток всегда показывает, что и когда попало на боевой сайт. Команда выкатывает релизы чаще и спокойнее, а сам сайт перестаёт страдать от человеческих ошибок.
Конвейер CI/CD или привычный деплой по FTP
Соблазн оставить всё как есть понятен: команда привыкла выкатывать релизы вручную, по FTP или через панель хостинга, и кажется, что настройка конвейера CI/CD — это лишняя сложность и трата времени. На бумаге ручная выкатка выглядит проще и дешевле: открыл файловый менеджер, залил изменённые файлы, обновил страницу. Но на практике именно ручные релизы оказываются самым дорогим и хрупким местом проекта на 1С-Битрикс. Ниже разбираем, в чём разница, какие проблемы решает конвейер и как мы строим его так, чтобы он работал годами и не превращался в чёрный ящик.
Почему ручные релизы дорого обходятся
Пока релизы выкатывают вручную, каждая выкатка зависит от внимательности конкретного человека. Разработчик помнит, какие файлы он менял, открывает FTP и заливает их по одному. На этом пути копятся типовые проблемы: забытый файл, затёртая чужая правка, несобранные или несжатые ассеты, оставшийся после выката старый кэш Битрикс. Если что-то пошло не так, откат превращается в спешный поиск бэкапа, пока боевой сайт показывает клиентам ошибку. А когда над проектом работают несколько человек, ручные релизы начинают конфликтовать: чья выкатка была последней, тот и определяет, какой код сейчас на проде.
Чем активнее развивается проект, тем дороже обходится эта ручная работа. Разработчики тратят часы не на код, а на выкатки и разбор инцидентов после них. Боевой сайт регулярно ломается из-за человеческих ошибок, и каждый такой инцидент — это потерянные заказы и нервы команды. А руководитель не видит цельной картины: нет журнала, кто и что выкатил, поэтому при проблеме непонятно, какой именно релиз её вызвал. Чтобы прикинуть масштаб этих потерь именно для вашей команды, на странице есть калькулятор: он показывает, сколько рабочих часов в месяц съедают ручные релизы и их последствия.
Что меняет конвейер CI/CD
Конвейер переводит доставку кода в автоматический и предсказуемый процесс. Разработчик пушит изменения в ветку — и дальше всё происходит само: система ставит зависимости, собирает и минифицирует ассеты, прогоняет тесты и линтеры, выкатывает релиз на нужное окружение. На прод код попадает только с полностью зелёным конвейером, а финальную выкатку подтверждает человек по кнопке. Деплой идёт атомарно, поэтому боевой сайт не падает во время релиза, а откат к прошлой версии делается за секунды переключением символической ссылки.
Команда при этом не теряет контроль, а избавляется от рутины и страха. Релизы становятся частыми и спокойными: больше не нужно собирать выкатку вручную и держать в голове список изменённых файлов. Линтеры и тесты ловят ошибки до прода, поэтому багов на боевом сайте становится кратно меньше. Журнал выкаток показывает, что и когда попало на сайт, а уведомления держат команду в курсе статуса каждой сборки. Освободившееся время уходит на разработку, а не на борьбу с релизами.
Чем конвейер на Битрикс отличается от типового деплоя
Настроить деплой на абстрактном PHP-проекте проще, чем на 1С-Битрикс, и в этом главная ловушка типовых решений. На Битрикс нельзя просто синхронизировать всю папку: есть пользовательские загрузки в /upload, есть кэш и логи, есть файлы обмена с 1С, которые живут отдельно от кода и не должны перезаписываться при каждой выкатке. Есть управляемый кэш ядра, который нужно сбрасывать в правильный момент, иначе после релиза посетители увидят старые страницы. Есть структура /bitrix и публичная часть, которые деплоятся из репозитория, и есть данные, которые в репозитории не лежат.
Поэтому конвейер для Битрикс — это не универсальный скрипт, а настройка с учётом особенностей платформы. Мы выносим пользовательские папки за пределы релиза и подключаем их ссылками, управляем кэшем на нужном шаге, бережно обходим обмен с 1С. Без этого знания типовой деплой либо теряет загруженные файлы при откате, либо оставляет несвежий кэш, либо ломает обмен. Мы специализируемся на проектах 1С-Битрикс и закладываем эти нюансы в конвейер с первого дня. Если конвейер становится частью более широкой автоматизации инфраструктуры, мы подключаем смежные практики из направления CI/CD и автоматизации.
Когда конвейер окупается, а когда хватит простого деплоя
Мы не уговариваем всех подряд строить сложный конвейер с тремя окружениями и контейнерами. Базовая автосборка и автодеплой на одно окружение оправданы почти всегда: даже простой pipeline убирает ручное копирование и человеческие ошибки. Полный CI/CD с окружениями dev, stage и prod, тестами и деплоем по веткам нужен, когда над проектом работает команда, релизы частые, а простой боевого сайта стоит дорого. Контейнеризация и параллельные пайплайны окупаются на проектах с несколькими командами и сложной инфраструктурой. На бесплатном аудите релизов мы разбираем ваш процесс и честно говорим, какой уровень конвейера вам нужен, а не продаём самый дорогой вариант.
Как мы ведём настройку
Старт — это аудит текущих релизов и инфраструктуры. Мы разбираем, как сейчас выкатывается код, где лежит репозиторий, какие есть серверы и окружения, что болит у команды. На основе этого согласуем модель ветвления Git и правила деплоя, а затем поднимаем первый рабочий конвейер со сборкой и деплоем на одно окружение. Дальше идём итерациями: добавляем автотесты и линтеры, поднимаем окружения dev, stage и prod, настраиваем деплой по веткам, откат и уведомления. Каждый этап показываем в работе, чтобы команда сразу видела отдачу и осваивала конвейер постепенно.
Особое внимание — выбору инструмента под ваш стек. Если репозиторий уже в GitLab, логично настроить GitLab CI; если в GitHub — GitHub Actions; для сложной инфраструктуры и нескольких команд подходит Jenkins. Мы не навязываем один инструмент, а берём тот, что удобнее вашей команде. Если у проекта пока нет репозитория и код живёт только на сервере, первым шагом помогаем привести проект в Git — без этого конвейер невозможен. Эта работа смыкается с настройкой отката и Git-workflow для Битрикс, где мы наводим порядок в ветках и истории.
Гарантии и прозрачность
Состав работ и стоимость мы закрепляем до старта, а доработки сверх плана согласуем отдельно — никаких сюрпризов в счёте. Конвейер настраиваем поверх существующего проекта без переписывания кода, поэтому боевой сайт продолжает работать всё время внедрения. Описание pipeline лежит в вашем репозитории, а не в наших закрытых системах. По завершении передаём документацию, обучаем команду и отдаём доступы: конвейер остаётся вашим без привязки к подрядчику. Развивать и сопровождать его сможет как наша команда, так и любая другая.
Возражения, которые мы слышим чаще всего
«У нас нет тестов, значит, CI/CD нам рано». Наоборот: конвейер приносит пользу даже без единого теста. Линтеры и статический анализ ловят ошибки без запуска кода, а автодеплой убирает ручное копирование и его ошибки. Полноценное покрытие тестами наращивается постепенно, уже на работающем конвейере. Ждать, пока появятся тесты, чтобы начать автоматизировать релизы, — значит терять время и продолжать ломать прод вручную.
«Боимся, что во время выкатки сайт упадёт». Именно поэтому мы делаем деплой атомарным: новый релиз собирается рядом с текущим, а переключение на него мгновенно. Посетитель не попадает на полусобранный сайт. А если новый релиз окажется проблемным, откат возвращает прошлую рабочую версию за секунды. С конвейером выкатка становится безопаснее ручной, а не опаснее. Эта же логика лежит в основе автоматического деплоя без простоя, который мы настраиваем для боевых сайтов с высокой нагрузкой.
«Это сложно и команда не разберётся». Конвейер мы не оставляем чёрным ящиком: документируем каждый шаг и обучаем команду работе с pipeline. После внедрения разработчики понимают, что происходит на каждом этапе, и могут сами развивать конвейер. Описание лежит в репозитории в читаемом виде, поэтому новый сотрудник быстро входит в курс дела. Цель — чтобы конвейер был инструментом команды, а не зависимостью от подрядчика.
Сценарии, под которые мы собираем конвейер
Проекты бывают очень разными, и конвейер подстраивается под вашу ситуацию. Для интернет-магазина на старте обычно достаточно автосборки ассетов и автодеплоя на одно окружение, чтобы убрать ручной FTP и ускорить выкатки. По мере роста добавляем stage для приёмки релизов и автотесты ключевых сценариев оформления заказа. Для B2B-платформы с активной разработкой на первый план выходят тесты и линтеры как ворота качества: красная сборка не должна пускать код на боевой сайт, где работают контрагенты.
Для корпоративного портала с несколькими командами важны изоляция и параллельность: каждой команде — свой stage, общий конвейер сборки и контролируемая выкатка на prod. Здесь хорошо ложатся контейнеризация и параллельные пайплайны, чтобы сборки не мешали друг другу. Для проекта с тесной интеграцией с 1С отдельное внимание уделяем тому, чтобы деплой кода не задевал обмен и пользовательские данные. Все эти сценарии собираются из одних и тех же кирпичей конвейера, но в разной комплектации под задачу.
Чем конвейер выгоднее альтернатив
У команды обычно три пути сделать релизы надёжнее: оставить ручную выкатку и просто стараться аккуратнее, написать разовый скрипт деплоя силами одного разработчика или построить полноценный конвейер CI/CD. Аккуратность не масштабируется: рано или поздно усталость или спешка приводят к ошибке на проде. Разовый скрипт лучше ручного FTP, но обычно не имеет проверок, журнала и отката, а знает его один человек — если он уходит, скрипт превращается в чёрный ящик, который никто не решается трогать.
Полноценный конвейер лишён этих ограничений. Он описан в репозитории, понятен всей команде и включает проверки, журнал и откат с первого дня. Он не зависит от одного человека и развивается вместе с проектом. Вы вкладываетесь в настройку один раз, а дальше получаете предсказуемые релизы и сэкономленные часы команды каждый месяц. Когда проект растёт и релизов становится больше, именно конвейер оказывается и дешевле в долгую, и надёжнее по результату.
Этапы работы по шагам
Чтобы внедрение было предсказуемым, мы разбиваем его на понятные этапы с результатом на каждом. Первый этап — аудит релизов: разбираем текущий процесс выкатки, репозиторий, серверы и окружения, фиксируем узкие места. Второй этап — Git-флоу: согласуем модель ветвления и правила, какая ветка на какое окружение уходит и кто подтверждает прод. Третий этап — сборка и проверки: подключаем сборку ассетов, автотесты и линтеры, настраиваем артефакты и кэширование зависимостей, чтобы конвейер работал быстро.
Четвёртый этап — деплой и окружения: поднимаем dev, stage и prod, настраиваем выкатку по веткам и безопасную атомарную доставку на боевой сайт. Пятый — откат и контроль качества: включаем версионирование релизов, быстрый откат, уведомления и журнал выкаток. Финальный этап — передача и обучение: документируем конвейер, обучаем команду работе с pipeline и передаём доступы. Каждый этап мы показываем в работе, поэтому вы видите прогресс и понимаете, за что платите, а не получаете готовый чёрный ящик в конце.
Гарантии и сопровождение
Мы понимаем, что конвейер становится частью ежедневной работы команды, поэтому к надёжности относимся серьёзно. Состав и стоимость закрепляем в смете до старта, а доработки сверх плана согласуем отдельно — вы всегда понимаете, за что платите. Перед передачей тестируем ключевые сценарии: сборку, прогон тестов, деплой на каждое окружение, откат к прошлой версии. После запуска даём гарантийный период, в течение которого устраняем замечания, и предлагаем сопровождение с развитием конвейера по мере роста проекта. Резервные копии, журналирование выкаток и разграничение доступов закладываем с первого дня, чтобы релизы были под контролем.
Ещё несколько частых вопросов
«Что будет с текущими релизами во время внедрения». Боевой сайт продолжает работать, а команда переходит на конвейер постепенно, начиная с одного окружения, поэтому переход не останавливает разработку. «Можно ли потом перенести конвейер на другой раннер». Да, принципы конвейера универсальны, поэтому перенос с GitLab CI на GitHub Actions или Jenkins возможен, отличается только описание шагов. «Сколько релизов в день выдержит конвейер». Конвейер не ограничивает частоту выкаток: можно деплоить хоть несколько раз в день, а кэширование зависимостей и параллельные шаги держат сборку быстрой даже при активной разработке.
С чего начать
Начните с разговора. Расскажите о вашем проекте, стеке и текущем процессе релизов — мы проведём бесплатный аудит, покажем узкие места и предложим состав конвейера под вашу задачу, а смету пришлём в течение рабочего дня. По итогам аудита вы получите честную картину: какой уровень CI/CD вам нужен, что настроить в первую очередь и какой эффект это даст. Обсудим ваш проект — и превратим выкатку релизов из источника стресса в спокойный конвейер, который работает за команду.
Частые вопросы о CI/CD для Битрикс-проектов
Что такое CI/CD простыми словами? +
CI/CD — это два связанных процесса. Continuous Integration (непрерывная интеграция) означает, что код из репозитория автоматически собирается и проверяется тестами и линтерами при каждом изменении. Continuous Delivery или Deployment (непрерывная доставка или развёртывание) означает, что проверенный код автоматически доставляется на серверы. Проще говоря, это конвейер, который сам собирает, проверяет и выкатывает ваш сайт без ручного копирования файлов.
Что такое конвейер (pipeline) в CI/CD? +
Конвейер — это последовательность автоматических шагов, которые выполняются над вашим кодом после коммита. Типичные шаги: установка зависимостей, сборка ассетов, прогон тестов, проверка линтерами и деплой на окружение. Если любой шаг падает, конвейер останавливается и не пускает код дальше. Так сломанный релиз не доходит до боевого сайта.
Чем отличается Continuous Delivery от Continuous Deployment? +
Continuous Delivery означает, что релиз всегда готов к выкатке, но финальный деплой на прод запускает человек по кнопке. Continuous Deployment означает, что код, прошедший все проверки, выкатывается на прод полностью автоматически, без ручного подтверждения. Для Битрикс-проектов мы чаще делаем Delivery с ручным подтверждением на prod — так за выкатку на боевой сайт всегда отвечает человек.
Зачем CI/CD проекту на 1С-Битрикс? +
Потому что ручные релизы по FTP на Битрикс особенно рискованны: легко затереть чужие файлы, оставить старый кэш или сломать боевой сайт прямой правкой. Конвейер убирает ручную рутину, прогоняет проверки до выката и даёт быстрый откат. Команда выкатывает релизы чаще и спокойнее, а боевой сайт перестаёт падать из-за человеческой ошибки.
Что такое деплой и чем он отличается от сборки? +
Сборка (build) — это подготовка кода к запуску: установка зависимостей, компиляция и минификация стилей и скриптов, формирование артефакта. Деплой (deploy) — это доставка готового артефакта на сервер и переключение сайта на новую версию. В конвейере сборка идёт первой и общая для всех окружений, а деплой выполняется отдельно на каждое окружение по своим правилам.
С какими системами CI/CD вы работаете? +
Настраиваем конвейеры в GitLab CI, GitHub Actions и Jenkins — берём ту систему, которая уже есть в вашей команде или удобнее для вашей инфраструктуры. Если репозиторий лежит в GitLab, логично использовать GitLab CI, если в GitHub — GitHub Actions. Jenkins подходит для сложной инфраструктуры и нескольких команд. Принципы конвейера одинаковы, отличается только синтаксис описания.
Чем отличаются GitLab CI, GitHub Actions и Jenkins? +
GitLab CI встроен в GitLab и описывается одним файлом в репозитории, его удобно использовать, если код уже там. GitHub Actions так же встроен в GitHub и хорош для проектов на этой площадке. Jenkins — отдельный сервер автоматизации, который не привязан к хостингу репозитория и гибко настраивается под сложные сценарии и несколько команд. Мы подбираем инструмент под вашу ситуацию, а не навязываем один.
Какие линтеры и анализаторы вы подключаете? +
Для PHP это PHP_CodeSniffer для проверки стиля кода и PHPStan или Psalm для статического анализа, который ловит ошибки без запуска. Для фронтенда подключаем ESLint и Stylelint. Линтеры встраиваются в конвейер как отдельный шаг и не пускают код с нарушениями дальше, поэтому качество кода держится на одном уровне у всей команды.
Какие автотесты можно прогонять в конвейере? +
Для Битрикс-проектов это юнит-тесты на PHPUnit для отдельной логики, функциональные и приёмочные тесты на Codeception, а также дымовые проверки доступности ключевых страниц. Тесты запускаются в конвейере на изолированном окружении, и если хоть один падает, релиз не уходит на прод. Набор тестов подбираем под проект и наращиваем постепенно.
Нужна ли для CI/CD контейнеризация и Docker? +
Не обязательно, но во многих случаях полезно. Docker даёт одинаковое окружение на сборке и на серверах, убирает проблему «у меня работает, а на проде нет» и упрощает параллельные пайплайны. Если проект небольшой, можно обойтись без контейнеров. Контейнеризацию подключаем там, где она реально снижает риски, а не ради моды.
Зачем нужны окружения dev, stage и prod? +
Это три изолированные среды под разные задачи. Dev — для быстрой разработки и проверки фич, его не страшно сломать. Stage — копия прода для приёмки релиза заказчиком и финальных проверок. Prod — боевой сайт, который видят клиенты. Разделение убирает правки на боевом сайте: на prod попадает только то, что прошло конвейер и приёмку на stage.
Как работает деплой по веткам? +
Каждой ветке Git соответствует своё окружение. Например, ветки фич выкатываются на dev, ветка release — на stage для приёмки, а ветка master или production — на prod. Конвейер сам определяет по имени ветки, куда доставлять код. Разработчику не нужно думать о выкатке вручную: он просто пушит в нужную ветку, а остальное делает pipeline.
Можно ли выкатывать релизы без простоя сайта? +
Да. Деплой настраиваем атомарно: новый релиз разворачивается в отдельной папке рядом с текущим, а в финале символическая ссылка мгновенно переключается на него. Посетитель в момент выката не попадает на полусобранный сайт. Если новый релиз окажется проблемным, ссылка так же быстро переключается обратно — это и есть быстрый откат.
Что делать со специфичными для Битрикс папками при деплое? +
Папки с пользовательскими данными — /upload, кэш и логи — выносятся за пределы релиза и подключаются ссылками, чтобы не перезаписываться при каждой выкатке. Ядро /bitrix и публичную часть деплоим из репозитория. Так обновления кода не затрагивают загруженные файлы и настройки, а откат не теряет пользовательский контент.
Как конвейер дружит с обменом 1С и кэшем Битрикс? +
Обмен с 1С работает с данными и не затрагивается выкаткой кода, а файлы обмена выносятся в постоянные папки, как и /upload. Кэш Битрикс сбрасываем управляемо на нужном шаге деплоя, чтобы после релиза не оставалось старых страниц. Эти нюансы мы учитываем именно потому, что специализируемся на проектах 1С-Битрикс.
Как конвейер не пускает плохой код на прод? +
В конвейере есть шаги-ворота: сборка, тесты и линтеры. Если любой из них завершается с ошибкой, pipeline помечается красным и деплой на прод просто не запускается. На боевой сайт попадает только релиз с полностью зелёным конвейером. Это убирает класс проблем, когда сломанный или несобранный код оказывался на проде по невнимательности.
Что такое откат (rollback) и как быстро он работает? +
Откат — это возврат боевого сайта на предыдущий рабочий релиз. Поскольку релизы версионируются и хранятся, откат сводится к переключению символической ссылки на прошлую версию и занимает секунды. Не нужно искать бэкап и разворачивать его вручную. Откат — обязательная часть конвейера, которую мы настраиваем сразу.
Ведётся ли журнал выкаток? +
Да. Каждый деплой записывается: что выкатили, какой коммит, кто запустил и когда. По журналу всегда видно, какая версия сейчас на проде и что менялось в прошлых релизах. Это помогает быстро разобраться, если после какой-то выкатки появилась проблема, и принять решение об откате на конкретную версию.
Получает ли команда уведомления о релизах? +
Да. Конвейер шлёт уведомления о статусе сборки и деплоя в Telegram, почту или мессенджер команды. Если сборка упала, ответственный узнает об этом сразу, а не от клиента. Об успешной выкатке на прод тоже приходит сообщение, поэтому вся команда видит, какой релиз сейчас на боевом сайте.
Что такое контроль качества релиза в конвейере? +
Это набор автоматических проверок перед выкаткой: тесты, линтеры, статический анализ и дымовые проверки доступности страниц. Дополнительно на prod ставим ручное подтверждение, чтобы за финальный выпуск отвечал человек. Вместе это и есть контроль качества: релиз проходит несколько фильтров и только потом доходит до клиентов.
У нас уже работает проект, можно ли внедрить CI/CD без переделки? +
Да. Конвейер настраивается поверх существующего проекта без переписывания кода. Мы разбираем, как устроен ваш репозиторий и серверы, и встраиваем сборку и деплой в текущий процесс. Боевой сайт при этом продолжает работать, а команда переходит на конвейер постепенно, начиная с одного окружения.
Что нужно от нас для старта? +
Доступ к репозиторию, к серверам с окружениями и понимание текущего процесса релизов. Если у вас нет репозитория или код лежит только на сервере, мы поможем привести проект в Git как первый шаг. На бесплатном аудите релизов мы разбираем, что уже есть, и составляем план внедрения конвейера.
Сколько стоит настройка CI/CD? +
Базовый конвейер с автосборкой и деплоем на одно окружение обычно начинается от 45 000 рублей. Полный CI/CD с тремя окружениями, тестами и деплоем по веткам — от 120 000 рублей. Конвейер для нескольких команд с контейнерами — от 240 000 рублей. Точная цена зависит от числа окружений, сложности сборки и набора проверок, смету присылаем после аудита.
За какой срок реально настроить конвейер? +
Базовый автоконвейер на одно окружение запускаем за два-три дня. Полную доставку с окружениями dev, stage и prod, тестами и откатом настраиваем примерно за две недели. Конвейер под несколько команд с контейнеризацией занимает около четырёх недель. Точный срок фиксируем в смете до старта работ.
Что мы получаем по итогу проекта? +
Работающий конвейер CI/CD, описание которого лежит в вашем репозитории, настроенные окружения и деплой, быстрый откат и журнал выкаток. Плюс документацию и обучение команды. Конвейер остаётся вашим без привязки к подрядчику: развивать и сопровождать его сможет как наша команда, так и любой другой исполнитель.
Обсудим ваш конвейер CI/CD?
Расскажите о вашем проекте и текущих релизах — проведём бесплатный аудит, предложим состав конвейера под вашу задачу и пришлём смету в течение рабочего дня.
- Ответим в течение рабочего дня
- Бесплатный аудит процессов и расчёт
- NDA и фиксированная смета