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

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

Ответ

Типичный CI/CD pipeline состоит из последовательных стадий, автоматизирующих путь кода от коммита до продакшена. Вот ключевые этапы:

  1. Fetch & Merge: Клонирование репозитория, слияние изменений (например, merge request в GitLab).
  2. Build & Compile: Сборка артефакта. Для DevOps это часто создание Docker-образа.
    # Пример стадии в GitLab CI
    build:
      stage: build
      script:
        - docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
        - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
  3. Static Analysis (SAST): Проверка кода линтерами, анализаторами безопасности (SonarQube, Trivy).
  4. Test: Запуск автоматизированных тестов (юнит-тесты, интеграционные).
  5. Deploy to Staging: Развертывание собранного артефакта в тестовое окружение (например, в namespace Kubernetes staging).
  6. Integration/E2E Tests: Запуск тестов в среде, приближенной к продакшену.
  7. Security Scan (DAST): Динамический анализ безопасности развернутого приложения.
  8. Approval & Deploy to Production: После ручного или автоматического approval — деплой в продакшен. В GitOps-подходе это может быть создание Pull Request в репозиторий с манифестами (например, ArgoCD синхронизирует состояние).
  9. Post-Deployment: Запуск smoke-тестов, сброс кэшей, инвалидация CDN.

Важно: Pipeline должен быть идемпотентным (повторный запуск даёт тот же результат) и быстрым, чтобы обеспечивать быструю обратную связь разработчикам.