Интеграция 1С:ITILIUM с Gitlab CI/CD: автоматизация конвейера разработки для строительного холдинга
Проект по разработке и внедрению интеграции системы управления задачами 1С:ITILIUM с конвейером CI/CD на базе платформы Gitlab. В рамках проекта разработана архитектура сквозного процесса: от постановки задачи в ITILIUM до автоматического создания ветки разработки, запуска статического анализа кода (SonarQube), ревью и автоматического развертывания доработок в продуктивную среду.
Клиент
Крупная строительная компания с собственным ИТ-управлением, обеспечивающим сопровождение ПО, консультирование пользователей, обслуживание ИТ-инфраструктуры и поддержку бесперебойной работы оборудования на объектах.
Задача
Бизнес-задачи проекта
-
Сократить время вывода доработок 1С-конфигураций в промышленную среду.
-
Исключить человеческий фактор из рутинных операций: создание веток, ручное слияние кода, развертывание.
-
Обеспечить руководство ИТ-управления прозрачным инструментом контроля стадии готовности каждой доработки.
-
Снизить количество программных инцидентов, связанных с ошибками при ручном слиянии кода (прогнозируемое снижение — 30–50%).
Задачи в контексте разработки
-
Провести обследование и формализовать текущие процессы разработки — от постановки задачи до релиза.
-
Спроектировать интеграционный контур между 1С:ITILIUM и Gitlab: разработать архитектуру REST API-прослойки для автоматического обмена статусами задач и событиями конвейера.
-
Настроить процессы непрерывной интеграции: автоматическое создание веток в Gitlab при назначении задачи разработчику, запуск юнит-тестов и статического анализа кода в SonarQube, автоматизацию создания Pull Request и Merge Request (механизм в системах контроля версий) после код-ревью.
-
Написать инструкции для разработчиков и руководство администратора системы.
Решение
Мы планировали связать бизнес-процесс управления задачами (1С:ITILIUM) с техническим процессом разработки (Gitlab): каждая задача в ITILIUM должна автоматически порождать соответствующую ветку в репозитории, а а каждое успешное слияние — обновлять статус задачи в ITILIUM без ручных действий.
На старте проекта создание веток, слияние и развертывание выполнялись вручную, что затягивало релизные циклы. Отсутствие единой связки между «задачей» и «кодом» не позволяло объективно оценивать прогресс разработки.
Выбранный подход: интеграция через REST API-прослойку с использованием Gitsync — позволил использовать уже существующие инструменты (Gitlab, SonarQube) без замены инфраструктуры.
Мы предполагаем, что:
-
автоматизация рутинных операций конвейера позволит сократить время релизного цикла;
-
внедрение статического анализа кода на этапе создания Pull Request позволит выявлять до 80% типовых ошибок до попадания в основную ветку;
-
количество программных инцидентов, связанных с человеческим фактором при ручном слиянии, снизится на 30–50%.
Архитектурное решение
В связи с отсутствием готовых механизмов прямой интеграции между 1С:ITILIUM и Gitlab спроектирована REST API-прослойка, обеспечивающая двусторонний обмен:
-
из ITILIUM в Gitlab: передача данных о новых задачах, статусах, исполнителях;
-
из Gitlab в ITILIUM: обновление статусов задач по событиям конвейера (ветка создана, код передан на ревью, мерж выполнен, развертывание завершено).
Прослойка Gitsync используется как прослойка для синхронизации метаданных 1С с Git-репозиторием. Gitlab выполняет роль оркестратора CI/CD-конвейера.
Этапы и сроки
-
Анализ текущих процессов разработки, сбор требований, интервью с командой — 1 месяц
-
Формирование и согласование схемы интеграции, проектирование потоков данных между ITILIUM, Gitlab и SonarQube, разработка архитектуры REST API-прослойки — 2 недели
-
Установка и настройка 1С:ITILIUM, Gitsync, Gitlab CI/CD раннеров, SonarQube в пилотном контуре — 1 месяц
-
Настройка процессов непрерывной интеграции (автоматизация создания веток, запуска анализа, слияния и деплоя) — 1 месяц
-
Функциональное тестирование интеграции, опытная эксплуатация— 1 месяц
-
Обучение пользователей, написание инструкций, запуск в промышленную эксплуатацию — 2 недели
Результат
Результаты, достигнутые на этапе проектирования и пилотного запуска
-
Разработана и согласована архитектура сквозного процесса непрерывной интеграции: от постановки задачи в ITILIUM до автоматического развертывания доработок в продуктивную среду.
-
Формализованы и структурированы процессы разработки.
-
Настроен пилотный контур интеграции 1С:ITILIUM, Gitlab, Gitsync и SonarQube.
-
Подготовлена проектная документация, включая руководство администратора и инструкции пользователей.
Бизнес-эффект
-
Ускорение вывода доработок: сокращение релизного цикла позволит бизнес-подразделениям строительной компании быстрее получать необходимые изменения в учетных системах.
-
Повышение качества кода: автоматический статический анализ на этапе Pull Request будет блокировать попадание «сырых» доработок в основную ветку, что сократит количество ошибок в продуктивной среде и уменьшит нагрузку на службу поддержки.
-
Прозрачность управления: руководство ИТ-управления получит единую точку контроля — статус задачи в ITILIUM будет отражать фактическую стадию разработки (в разработке, на ревью, в тестировании, выполнено), что исключит необходимость ручного сбора информации.
-
Снижение инцидентов: прогнозируемое сокращение программных инцидентов на 30–50% за счет исключения ошибок при ручном слиянии кода.
Трудности
-
Параллельное внедрение: проект реализовывался параллельно с текущей деятельностью ИТ-управления, что требовало дополнительного времени на согласование изменений и минимизацию простоев; для синхронизации введены еженедельные статус-митинги с руководителем разработки.
-
Отсутствие готовой интеграции: между 1С:ITILIUM и Gitlab отсутствовали механизмы прямой интеграции, что потребовало разработки собственной REST API-прослойки для двустороннего обмена данными; проектирование прослойки выполнено в рамках этапа архитектурного проектирования.
-
Отсутствие структурированных процессов: на старте проекта процессы разработки не были формализованы — их описание и структурирование заняли дополнительное время на этапе обследования.
Технологии
1С:ITILIUM (отраслевое решение на платформе 1С), Gitlab (конвейер CI/CD), Gitsync (синхронизация метаданных 1С с Git-репозиторием), SonarQube (статический анализ кода), REST API (прослойка интеграции).