29
Типовая сборка и деплой продуктов в Positive Technologies Александров Владислав CI-инженер [email protected]

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

Embed Size (px)

Citation preview

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

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

в Positive Technologies

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

CI-инженер

[email protected]

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

План

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

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

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

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

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

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

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

Сервисы DevOps в Positive Technologies

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

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

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

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

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

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

Проблемы

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

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

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

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

Решения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Root meta-runners

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TeamCity агенты

Windows

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

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

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

Linux

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

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

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

• Единый Linux пул

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

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

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

Плюсы

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

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

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

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

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

Минусы

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

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

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

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

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

Что дальше

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

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

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

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

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

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

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

Спасибо!

Вопросы?

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

CI-инженер

[email protected]