1. Проблемы в построении CI процессов в компании
2. Структура типовой сборки
3. Пример реализации типовой сборки
4. Плюсы и минусы от использования типовой сборки
Эволюция безопасности: от охранников к нейронным сетям
Типовая сборка и деплой продуктов в Positive Technologies
1. Типовая сборка и деплой продуктов
в Positive Technologies
Александров Владислав
CI-инженер
valexandrov@ptsecurity.com
2. План
• Проблемы в построении CI-процессов в компании
• Структура типовой сборки
• Пример реализации типовой сборки
• Плюсы и минусы от использования типовой сборки
7. Проблемы
• Нет типового шаблона для создания сборочных, деплойных
и тестовых конфигураций
• Медленное создание типовых проектов в Continuous
Integration системах
• Отсутствие механизмов масштабируемости проектов
8. Решения
• Создать структуру будущих сборок, позволяющую
быстро расширять и изменять их
• Создать базовые шаблоны и метараннеры в TeamCity
• Создать автоматический генератор для TeamCity
сборок в DevOps tools
18. Основные root meta-runners
• Deploy DevOps-tools — доставляет на сборочные агенты
DevOps скрипты
• Build prepare — подготавливает окружение перед запуском
сборочных метараннеров
• Linux build — запускает сборку с определенным
компилятором под nix системы
• Windows build — запускает сборку с определенным
компилятором под win системы
19. Build prepare: основные шаги
• Определение версии (major, minor, patch)
• Подготовка переменных для сборочных метараннеров
• Обновление информации о сборке в UI TeamCity
• Обновление build-счетчика
• Создание файлов с чувствительной информацией
• Перемещение исходников в рабочую директорию
20. Windows/Linux build: основные шаги
• Подготовка переменных окружения
• Запуск сборочного скрипта (build-on-server)
• Создание архива для выкладки
• Выкладка финального архива и/или дополнительных
компонентов
23. TeamCity агенты
Windows
• Администрирование
командой DevOps
• Изменение окружения только
командой DevOps
• Выделенные пулы для
команд
Linux
• Администрирование командой
DevOps
• Запуск сборок в Docker
контейнерах
• Docker контейнеры
поддерживаются
разработчиками
• Единый Linux пул
25. Плюсы
• Типизированный процесс сборок
• Узловые метараннеры и шаблоны
• Структура всех компонент в коде
• Новый проект? Легко!
26. Минусы
• Ограниченная гибкость изменений конфигураций
• Сборочные шаги контролируются только DevOps
• Изменения окружения практически не обратимы
• Одна сборочная конфигурация для всех веток подпроекта
28. Дальше — больше
• Передать управление шагами сборки в команды
• Версионирование Docker образов
• Создать единый Windows пул
• Автоматизация и еще раз автоматизация