← все статьи
16 апреля 2026 г.

CI/CD в реальном секторе: как мы ускоряем разработку и внедрение у клиентов

Современная ИТ-инфраструктура требует скорости обновлений без ущерба для стабильности. Рассказываем, как мы внедряем практики CI/CD для клиентов Mac-Key: от автоматизации сборки 1С до деплоя веб-сервисов и обновлений через Ansible.


Когда говорят о CI/CD, многие представляют себе стартапы, которые деплоят код на Kubernetes десятки раз в день. Но практики непрерывной интеграции и доставки не менее важны для компаний из реального сектора — там, где работают с 1С, корпоративными порталами и внутренними сервисами.

В Mac-Key мы адаптируем принципы CI/CD под задачи наших клиентов, помогая им обновлять ПО быстрее, безопаснее и с минимальными простоями.


Что такое CI/CD и зачем это бизнесу

CI (Continuous Integration) — это практика, при которой изменения в коде или конфигурациях часто и автоматически сливаются в основную ветку, проходя через автоматизированные тесты. Это позволяет выявлять проблемы на ранних этапах [citation:2].

CD (Continuous Delivery/Deployment) — автоматическая доставка проверенных изменений до продуктивного окружения.

Для бизнеса это означает:

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

Где мы применяем CI/CD у клиентов

1. Автоматизация обновлений 1С

Обновление конфигураций 1С — процесс, который вручную может занимать часы и требует полной остановки работы пользователей. Мы автоматизируем его с помощью сценариев, которые:

  1. Создают резервную копию базы перед обновлением
  2. Загружают новую конфигурацию из репозитория
  3. Выполняют обновление в нерабочее время
  4. Проверяют целостность базы и запускают регламентные операции
  5. Отправляют отчёт о результате в корпоративный мессенджер

2. Деплой веб-сервисов и микросервисов

Для клиентов, которые разрабатывают собственные веб-приложения или используют кастомные сервисы, мы выстраиваем пайплайны на базе GitLab CI/CD или Jenkins. Типовой сценарий:

stages:
  - test
  - build
  - deploy

test:
  stage: test
  script:
    - docker run --rm -v $(pwd):/app python:3.11 pytest /app/tests

build:
  stage: build
  script:
    - docker build -t registry.mac-key.ru/client-app:$CI_COMMIT_SHA .
    - docker push registry.mac-key.ru/client-app:$CI_COMMIT_SHA

deploy:
  stage: deploy
  script:
    - ansible-playbook -i inventory/production deploy.yml
  only:
    - main

Этот плейбук можно запустить по расписанию (например, раз в неделю) или вручную, когда выходит критическое обновление безопасности. Все серверы будут обновлены одновременно и перезагружены только при необходимости.


Инструменты, которые мы используем

ИнструментДля чего
GitLab CI/CDОсновной оркестратор пайплайнов, хранение кода, реестр образов
JenkinsДля legacy-проектов или сложных кастомных сценариев
AnsibleУправление конфигурациями, деплой, оркестрация
Docker / PodmanКонтейнеризация приложений для изоляции и переносимости
HarborПриватный реестр Docker-образов (размещается в инфраструктуре Mac-Key)

Безопасность в CI/CD

Автоматизация не должна создавать новых дыр в безопасности. Мы следуем ключевым принципам:

  1. Изоляция секретов: пароли, токены и SSH-ключи никогда не хранятся в коде. Они передаются через защищённые переменные CI/CD-систем.
  2. Принцип наименьших привилегий: сервисные учётные записи для деплоя имеют ровно те права, которые нужны для выполнения задачи.
  3. Обязательное ревью: изменения в основную ветку попадают только через Merge Request с обязательной проверкой.
  4. Иммутабельные артефакты: Docker-образы, прошедшие тесты, не пересобираются перед деплоем на продуктив. В production уходит тот же самый артефакт, что был протестирован.

Кейс: внедрение CI/CD для веб-портала клиента

Проблема: клиент разрабатывает внутренний портал для сотрудников. Разработчики вручную выкладывают обновления через FTP. Часто возникают ошибки из-за несовпадения версий PHP или отсутствующих расширений. Откат к предыдущей версии — головная боль.

Что мы сделали:

  1. Перенесли код в GitLab с настроенным CI/CD
  2. Написали Dockerfile, который гарантирует идентичное окружение на тесте и продуктиве
  3. Настроили пайплайн: push в ветку dev → автотесты → деплой на тестовый стенд
  4. Merge request в main → ручное подтверждение → деплой на продуктив через Ansible
  5. Внедрили автоматический откат (rollback) в случае неудачного деплоя

Результат:

  • Время выкладки новой версии сократилось с 40 минут до 3 минут
  • Количество ошибок, связанных с окружением, снизилось до нуля
  • Разработчики перестали тратить время на ручной деплой и сосредоточились на коде

Коротко

CI/CD — это не только для стартапов. Это практика, которая делает ИТ-инфраструктуру управляемой, обновления — быстрыми, а откаты — безболезненными.

Хотите узнать, как CI/CD может ускорить разработку в вашей компании? Запросите аудит — мы проанализируем текущие процессы и предложим roadmap автоматизации.

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

Покажем, где ваша инфраструктура уязвима.

Короткий аудит — 20–30 минут. Никаких обязательств. На выходе вы получите конкретный список рисков и точек роста.

  • — ответим в течение рабочего дня
  • — не отправляем КП до разговора
  • — договор NDA по запросу