Типовая сборка и деплой продуктов в Positive Technologies
-
Upload
positive-hack-days -
Category
Technology
-
view
98 -
download
10
Transcript of Типовая сборка и деплой продуктов в Positive Technologies
![Page 1: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/1.jpg)
Типовая сборка и деплой продуктов
в Positive Technologies
Александров Владислав
CI-инженер
![Page 2: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/2.jpg)
План
• Проблемы в построении CI-процессов в компании
• Структура типовой сборки
• Пример реализации типовой сборки
• Плюсы и минусы от использования типовой сборки
![Page 3: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/3.jpg)
Инструменты и сервисы
![Page 4: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/4.jpg)
Сервисы DevOps в Positive Technologies
![Page 5: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/5.jpg)
Сервисы DevOps для организации CI
Сообщество DevOpsHQ:github.com/devopshq
![Page 6: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/6.jpg)
Continuous Integration всем и сразу
![Page 7: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/7.jpg)
Проблемы
• Нет типового шаблона для создания сборочных, деплойныхи тестовых конфигураций
• Медленное создание типовых проектов в ContinuousIntegration системах
• Отсутствие механизмов масштабируемости проектов
![Page 8: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/8.jpg)
Решения
• Создать структуру будущих сборок, позволяющую быстро расширять и изменять их
• Создать базовые шаблоны и метараннеры в TeamCity
• Создать автоматический генератор для TeamCityсборок в DevOps tools
![Page 9: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/9.jpg)
Типовой проект в TeamCity
![Page 10: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/10.jpg)
Что такое TeamCity и с чем его едят
![Page 11: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/11.jpg)
Релизная схема сборок с продвижениями в TeamCity
![Page 12: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/12.jpg)
Обобщенная трехуровневая иерархия проектов в TeamCity
![Page 13: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/13.jpg)
Типовой интерфейс проектов в TeamCity
![Page 14: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/14.jpg)
Метараннеры в TeamCity
![Page 15: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/15.jpg)
Структура сборочного процесса в TeamCity
![Page 16: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/16.jpg)
Автоматическая генерация конфигураций
![Page 17: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/17.jpg)
Root meta-runners
![Page 18: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/18.jpg)
Основные root meta-runners
• Deploy DevOps-tools — доставляет на сборочные агенты DevOps скрипты
• Build prepare — подготавливает окружение перед запуском сборочных метараннеров
• Linux build — запускает сборку с определенным компилятором под nix системы
• Windows build — запускает сборку с определенным компилятором под win системы
![Page 19: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/19.jpg)
Build prepare: основные шаги
• Определение версии (major, minor, patch)
• Подготовка переменных для сборочных метараннеров
• Обновление информации о сборке в UI TeamCity
• Обновление build-счетчика
• Создание файлов с чувствительной информацией
• Перемещение исходников в рабочую директорию
![Page 20: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/20.jpg)
Windows/Linux build: основные шаги
• Подготовка переменных окружения
• Запуск сборочного скрипта (build-on-server)
• Создание архива для выкладки
• Выкладка финального архива и/или дополнительных компонентов
![Page 21: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/21.jpg)
Скрипты автоматической сборки
![Page 22: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/22.jpg)
Скрипт сборки (build-on-server)
![Page 23: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/23.jpg)
TeamCity агенты
Windows
• Администрирование командой DevOps
• Изменение окружения только командой DevOps
• Выделенные пулы для команд
Linux
• Администрирование командой DevOps
• Запуск сборок в Dockerконтейнерах
• Docker контейнеры поддерживаются разработчиками
• Единый Linux пул
![Page 24: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/24.jpg)
Что получилось
![Page 25: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/25.jpg)
Плюсы
• Типизированный процесс сборок
• Узловые метараннеры и шаблоны
• Структура всех компонент в коде
• Новый проект? Легко!
![Page 26: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/26.jpg)
Минусы
• Ограниченная гибкость изменений конфигураций
• Сборочные шаги контролируются только DevOps
• Изменения окружения практически не обратимы
• Одна сборочная конфигурация для всех веток подпроекта
![Page 27: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/27.jpg)
Что дальше
![Page 28: Типовая сборка и деплой продуктов в Positive Technologies](https://reader034.fdocument.pub/reader034/viewer/2022042600/5a647c1f7f8b9a82568b4757/html5/thumbnails/28.jpg)
Дальше — больше
• Передать управление шагами сборки в команды
• Версионирование Docker образов
• Создать единый Windows пул
• Автоматизация и еще раз автоматизация