Типовая сборка и деплой продуктов в Positive Technologies

Preview:

Citation preview

Типовая сборка и деплой продуктов

в Positive Technologies

Александров Владислав

CI-инженер

valexandrov@ptsecurity.com

План

• Проблемы в построении CI-процессов в компании

• Структура типовой сборки

• Пример реализации типовой сборки

• Плюсы и минусы от использования типовой сборки

Инструменты и сервисы

Сервисы DevOps в Positive Technologies

Сервисы DevOps для организации CI

Сообщество DevOpsHQ:github.com/devopshq

Continuous Integration всем и сразу

Проблемы

• Нет типового шаблона для создания сборочных, деплойныхи тестовых конфигураций

• Медленное создание типовых проектов в ContinuousIntegration системах

• Отсутствие механизмов масштабируемости проектов

Решения

• Создать структуру будущих сборок, позволяющую быстро расширять и изменять их

• Создать базовые шаблоны и метараннеры в TeamCity

• Создать автоматический генератор для TeamCityсборок в DevOps tools

Типовой проект в TeamCity

Что такое TeamCity и с чем его едят

Релизная схема сборок с продвижениями в TeamCity

Обобщенная трехуровневая иерархия проектов в TeamCity

Типовой интерфейс проектов в TeamCity

Метараннеры в TeamCity

Структура сборочного процесса в TeamCity

Автоматическая генерация конфигураций

Root meta-runners

Основные root meta-runners

• Deploy DevOps-tools — доставляет на сборочные агенты DevOps скрипты

• Build prepare — подготавливает окружение перед запуском сборочных метараннеров

• Linux build — запускает сборку с определенным компилятором под nix системы

• Windows build — запускает сборку с определенным компилятором под win системы

Build prepare: основные шаги

• Определение версии (major, minor, patch)

• Подготовка переменных для сборочных метараннеров

• Обновление информации о сборке в UI TeamCity

• Обновление build-счетчика

• Создание файлов с чувствительной информацией

• Перемещение исходников в рабочую директорию

Windows/Linux build: основные шаги

• Подготовка переменных окружения

• Запуск сборочного скрипта (build-on-server)

• Создание архива для выкладки

• Выкладка финального архива и/или дополнительных компонентов

Скрипты автоматической сборки

Скрипт сборки (build-on-server)

TeamCity агенты

Windows

• Администрирование командой DevOps

• Изменение окружения только командой DevOps

• Выделенные пулы для команд

Linux

• Администрирование командой DevOps

• Запуск сборок в Dockerконтейнерах

• Docker контейнеры поддерживаются разработчиками

• Единый Linux пул

Что получилось

Плюсы

• Типизированный процесс сборок

• Узловые метараннеры и шаблоны

• Структура всех компонент в коде

• Новый проект? Легко!

Минусы

• Ограниченная гибкость изменений конфигураций

• Сборочные шаги контролируются только DevOps

• Изменения окружения практически не обратимы

• Одна сборочная конфигурация для всех веток подпроекта

Что дальше

Дальше — больше

• Передать управление шагами сборки в команды

• Версионирование Docker образов

• Создать единый Windows пул

• Автоматизация и еще раз автоматизация

Спасибо!

Вопросы?

Александров Владислав

CI-инженер

valexandrov@ptsecurity.com

Recommended