Рассмотрим на примере одной организации, которую назовем Positive Technologies.
n
Positive Technologies занимается изучением безопасности ИТ-систем, разработкой продуктов, помогающих в обнаружении и предотвращении угроз, минимизации потерь от атак. Не была оставлена без внимания и Continuous Integration. Каким образом Positive Technologies повышает эффективность работы CI?
nn
Проблемы CI и их решение
Изначально в качестве системы CI Positive Technologies выбран инструмент TFS, что позволяло тестировать код и автоматизировать сборку. Это привело к выявлению нескольких существенных проблем, требующих незамедлительного решения:n
- интеграция не C#-проектов;
- поддержка шаблонов конфигураций;
- расширение инфраструктруры.
После исправления перечисленных недостатков, инфраструктура CI представляет 3 базовых сервиса, связанных между собой — Artifactory, GitLab, TeamCity. Помимо правки «минусов» были разработаны типовые проекты для CI server. В результате — выделена релизная схема сборок с продвижениями в TeamCity, позволяющая унифицировать проекты, добиться их одинаковой иерархии.nnn
Continuous Integration сегодня
После усовершенствования CI практика изменилась. На сегодняшний день в нее входят система публикаций тестируемых релизных сборок на Global Update-сервере (с последующим распространением сборок непосредственно до заказчика) + стандартные группы конфигураций.nnНо и сейчас при всех положительных сторонах унификации, Continuous Integration имеет свои «минусы», которые решаются при правильном подходе.nnПервый недостаток заключается в усложненной логике конфигураций в TeamCity, затрудняющей работу (их поддержка производилась DevOps-специалистами компании, с достижением пределов масштабирования проектов). Решение — скрипты, созданные для автоматического генерирования типовых проектов.nnВторой «минус» — отсутствие механизма доставки готового продукта, его инсталляции. Причина — процессы сборки на CI сервере отличались от машин разработчиков. Решение проблемы – унификация, обеспечение их «одинаковости».nВ связи с этим Positive Technologies собирается и дальше оптимизировать непрерывную интеграцию методом усовершенствования процессов сборки CrossBuilder. Так компания добьется:n
- n
- идентичности этих процессов на CI сервере и машинах разработчиков;
- применения разных систем непрерывной интеграции;
- декларативного описания сборочных процессов (при этом команда разработчиков, а не DevOps-команда, занимается написанием специальных файлов-манифестов).
nБлагодаря таким действиям появляется реальная возможность улучшить эффективность CI в действии.n
Внедрение и поддержка систем непрерывной интеграции CI, [email protected]