Базовые этапы и шаги конвейеров сборки и доставки.

DevOps Практики.

Michael Sokolov
2 min readOct 30, 2023
DALL·E 3

Типовые этапы преобразования кода:

  • Этап интеграции (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) на контур

Включает в себя следующие шаги:

  • Получение артефактов сборки: Автоматическое получение бинарных артефактов из хранилища
  • (Если необходимо)Подготовка среды: Подготовка окружения для развертывания, включая аллокацию ресурсов, настройку сети и т.д.
  • (Может запускаться отдельно)Миграции базы данных: Если необходимо, автоматическое обновление структуры БД.
  • Развертывание: Автоматическое развертывание приложения.
  • Проверка здоровья или Смок-тесты: После развертывания — автоматическая проверка состояния приложения, чтобы удостовериться, что все работает корректно.
  • Уведомления: Автоматическое информирование команды о результате выполнения пайплайна (успешно/с ошибками) через электронную почту, мессенджеры или другие каналы.

--

--