Базовые этапы и шаги конвейеров сборки и доставки.
DevOps Практики.
2 min readOct 30, 2023
Типовые этапы преобразования кода:
- Этап интеграции (integration, build stage) — это преобразование, которое преобразует репозиторий кода в исполняемый пакет, известный как сборка. Используя версию кода при фиксации, указанной в процессе развертывания, этап сборки извлекает зависимости поставщиков и компилирует двоичные файлы и активы.
— Каждая Сборка всегда должна иметь уникальный идентификатор, например инкрементное число v100.
— Сборка не содержит конфигураций или чувствительных данных, и может быть развернута на любом контуре. - Этап хранения артефактов (например, собранных бинарных файлов) в специальном хранилище (например, Nexus или Artifactory).
- Этап доставки(deployment, release stage) берет сборку и объединяет ее с текущей конфигурацией развертывания. Полученный выпуск содержит как сборку, так и конфигурацию. запускает приложение в среде выполнения, запуская некоторый набор процессов приложения на выбранном релизе.
— Каждый релиз всегда должен иметь уникальный идентификатор релиза, например, временную метку релиза (например, 2011–04–06–20:32:17) или инкрементное число (например, v100).
Этап интеграции (Integration)
Включает в себя следующие шаги:
- Получение кода: Автоматическое извлечение кода из репозитория.
- Статический анализ кода: Автоматическая проверка кода на наличие
— ошибок, в том числе синтаксиса
— отклонений от стандартов кодирования - SAST (Static Application Security Testing): анализирует исходный код, байт-код или двоичные файлы приложения без его выполнения.
- Сборка кода: Компиляция исходного кода, сборка библиотек, зависимостей и создание артефактов (например, исполняемых файлов).
- Тестирование: Запуск автоматизированных тестов:
— Юнит-тесты: Проверка отдельных элементов кода.
— (Если есть, может быть пройден асинхронно) Интеграционные тесты: Проверка взаимодействия между компонентами.
— (Если есть, может быть пройден асинхронно) Функциональные тесты: Проверка корректности работы функциональности. - Создание Пакетов или Образов: Для контейнеризации, например, создание Docker-образов.
- Архивация артефактов: Сохранение артефактов (например, собранных бинарных файлов) в специальном хранилище (например, Nexus или Artifactory).
- Уведомления: Автоматическое информирование команды о результате выполнения пайплайна (успешно/с ошибками) через электронную почту, мессенджеры или другие каналы.
Этап развертывания (Deployment) на контур
Включает в себя следующие шаги:
- Получение артефактов сборки: Автоматическое получение бинарных артефактов из хранилища
- (Если необходимо)Подготовка среды: Подготовка окружения для развертывания, включая аллокацию ресурсов, настройку сети и т.д.
- (Может запускаться отдельно)Миграции базы данных: Если необходимо, автоматическое обновление структуры БД.
- Развертывание: Автоматическое развертывание приложения.
- Проверка здоровья или Смок-тесты: После развертывания — автоматическая проверка состояния приложения, чтобы удостовериться, что все работает корректно.
- Уведомления: Автоматическое информирование команды о результате выполнения пайплайна (успешно/с ошибками) через электронную почту, мессенджеры или другие каналы.