Настройка CI/CD-конвейера для ускорения выпуска релизов в 4 раза
Внедрили комплексную GitLab-платформу для ускорения разработки адаптера межсервисного взаимодействия. Создали с нуля весь цикл — от выделенного GitLab до безопасного CI/CD-пайплайна, соединив гибридную инфраструктуру и обеспечив команде возможность сфокусироваться на продукте, а не на инфраструктуре.
Клиент
Стартап в сфере финансовых технологий.
Задача
Бизнес-задачи:
-
Вывести на рынок конкурентный программный продукт (адаптер) в сжатые сроки с ограниченными ресурсами команды.
-
Исключить простои и риски, связанные с ручными операциями развертывания и согласования.
-
Построить технологический фундамент, способный масштабироваться вместе со стартапом, без необходимости кардинальной перестройки процессов.
Технические задачи:
-
Полностью автоматизировать жизненный цикл разработки: от внесения кода до его работы.
-
Обеспечить безопасное и стабильное взаимодействие между разнородными средами (облако Yandex Cloud и локальный дата-центр заказчика).
-
Создать для небольшой команды отказоустойчивую и профессиональную DevOps-среду, сопоставимую по возможностям с решениями крупных компаний.
Решение
Чтобы обеспечить полный контроль над данными, гибкость в настройке и интеграциях, а также реализовать полный цикл разработки, включая CI/CD без зависимости от сторонних инструментов, мы использовали Self-Managed GitLab. Также выбор известного облачного провайдера в качестве хостинга виртуальных машин был критически важен для заказчика при развёртывании в их локальную инфраструктуру.
Выбор гибридной архитектуры с VPN (Pritunl/OpenVPN) и туннелями был продиктован жесткими требованиями безопасности заказчика, чья основная инфраструктура располагалась локально. GitLab CI был выбран как естественное продолжение GitLab, обеспечивающее единую точку управления всем циклом.
Этапы, сроки и инструменты:
Общее время от идеи до работающего процесса — 6 недель.
1. Инфраструктурный фундамент (1 неделя). Развёртывание отказоустойчивого экземпляра самоуправляемой системы GitLab на виртуальной машине в Yandex Cloud. Организация безопасного канала связи между облаком и локальной сетью заказчика с помощью Pritunl VPN (OpenVPN) и PPTP-туннелей (защищенных каналов связи). Инструменты: Yandex Cloud, Ubuntu, Pritunl, OpenVPN.
2. Построение CI/CD-конвейера (3 недели). Настройка GitLab CI/CD для набора технологий стартапа (Java/Maven, Node.js/npm):
-
Автоматическая сборка Docker-образов при каждом Merge Request (запросе на слияние).
-
Запуск проверки отдельных компонентов и их совместной работы (запуск юнит- и интеграционных тестов).
-
Создание артефактов и их публикация в GitLab Container Registry.
-
Настройка автоматического развертывания на изолированные стенды DEV и TEST. Всего создано более 20 шагов пайплайна (автоматизированной цепочки).
3. Настройка сред и промышленный деплой (2 недели). Конфигурация Nginx как обратного прокси (reverse proxy). Автоматизация развертывания в промышленной среде (PROD) с мануальным подтверждением (manual approval) в GitLab CI. Обучение команды новым процессам.
Результат
-
С нуля создана полноценная платформа разработки для команды из 10 человек.
-
Автоматизирован 100% процесс сборки, тестирования и развертывания адаптера.
-
Настроено безопасное гибридное окружение, бесшовно соединяющее облачные стенды и локальную инфраструктуру заказчика.
-
Команда проекта получила профессиональный инструмент управления кодом и CI/CD, позволивший им работать по стандартам крупного бизнеса (enterprise-уровня).
Бизнес-эффект
-
Соблюдение жестких сроков выхода на рынок. Автоматизация устранила «узкие места», позволив ускорить итерации разработки. Раньше развертывание выполнялось вручную раз в неделю-две. После внедрения — автоматически, несколько раз в день.
-
Повышение надежности продукта. Внедрение автоматического тестирования на каждом этапе снизило количество ошибок, попадающих в рабочую среду, на 90%.
-
Эффективное использование ограниченных ресурсов. Команда разработки сфокусировалась на бизнес-логике продукта, а не на рутинных операциях по поддержке инфраструктуры.
-
Создание масштабируемой основы. Разработанная платформа легко адаптируется под рост команды и добавление новых микросервисов.
Технологии
GitLab, Docker, Yandex Cloud, Nginx, Java, Maven, Node.js, npm.