Из каких основных этапов состоит CI/CD-пайплайн?

«Из каких основных этапов состоит CI/CD-пайплайн?» — вопрос из категории CI/CD и DevOps, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

CI/CD-пайплайн — это автоматизированный конвейер, который включает следующие ключевые этапы:

Этапы непрерывной интеграции (CI):

  1. Сборка (Build): Компиляция исходного кода, разрешение зависимостей и создание артефактов (Docker-образ, JAR, бинарник).
    # Пример этапа в GitLab CI
    build-job:
      stage: build
      script:
        - mvn clean package
        - docker build -t my-app:$CI_COMMIT_SHA .
  2. Статический анализ кода (Code Quality): Проверка стиля, уязвимостей и сложности кода с помощью линтеров (ESLint, SonarQube).
  3. Тестирование (Test): Автоматический запуск тестовых наборов.
    • Unit-тесты (быстрые, изолированные).
    • Интеграционные тесты (проверка взаимодействия компонентов).

Этапы непрерывной доставки/развёртывания (CD):

  1. Деплой в staging-окружение: Развёртывание артефакта в среду, идентичную продакшену, для ручного или автоматического тестирования.
  2. Приёмочное тестирование (Optional): Запуск E2E- или нагрузочных тестов в staging.
  3. Деплой в production: Автоматическое или ручное (с подтверждением) развёртывание на рабочие серверы. Часто используется стратегия blue-green или canary-релизы.

Общие принципы:

  • Автоматизация: Каждое изменение в репозитории запускает пайплайн.
  • Идемпотентность: Повторный запуск даёт одинаковый результат.
  • Мониторинг: Интеграция с системами логирования и алертинга (Prometheus, Grafana).

Инструменты: Jenkins, GitLab CI/CD, GitHub Actions, ArgoCD (для GitOps).