Вопрос с собеседования · DevOps

Из каких этапов состоит CI/CD-пайплайн и чем continuous delivery отличается от continuous deployment?

JuniorCI/CD и GitDocker
Ещё спрашивают так:
  • Как вы бы построили пайплайн для сервиса?
  • Что такое продвижение артефакта между окружениями?
Коротко

CI — каждое изменение автоматически собирается и проверяется: сборка, линтеры, юнит-тесты, сканирование, сборка артефакта (образа). CD: continuous delivery — артефакт всегда готов к выкатке, на прод — по кнопке; continuous deployment — каждое прошедшее проверки изменение уходит в прод автоматически. Ключевой принцип: собрать один раз, затем продвигать тот же артефакт через окружения.

  • Быстрая обратная связь: дешёвые проверки первыми, пайплайн до 10–15 минут
  • Версия артефакта — из коммита (git sha, semver), не latest
  • Миграции БД, смоук-тесты после выкатки, автоматический откат

А ещё Красный main — приоритет команды: пока он сломан, никто не выкатывает

Подробно

Типичный пайплайн:

push → сборка и линтеры → юнит-тесты → сборка образа (тег = sha)
     → сканирование уязвимостей → публикация в реестр
     → деплой на staging → интеграционные и e2e-тесты
     → (ручное подтверждение) → деплой на prod → смоук-тесты

Принципы:

  • пайплайн как код в репозитории (GitHub Actions, GitLab CI, Jenkinsfile);
  • кэш зависимостей и слоёв для скорости;
  • параллельные задачи;
  • нестабильные тесты чинят или убирают — иначе их перестают замечать;
  • секреты из хранилища CI, права деплоя — только у пайплайна.

Неизменяемый артефакт. Пересборка для каждого окружения даёт другие версии зависимостей: на staging проверено одно, на прод уехало другое. Окружения различаются только конфигурацией.

Метрики DORA: частота деплоя, время от коммита до прода, доля неудачных изменений, время восстановления.

Что хотят услышать

  • Этапы пайплайна и их порядок.
  • Delivery против deployment.
  • Один артефакт для всех окружений.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Continuous delivery выкатывает каждое изменение в прод автоматически, а deployment — по кнопке
  • ✗Образ пересобирают отдельно для каждого окружения, чтобы учесть его настройки
  • ✗CI запускают раз в неделю перед релизом
  • ✓CI — сборка и тесты на каждое изменение; delivery — выкатка по кнопке, deployment — автоматически

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования