Что означает метафора «построить поезд» в контексте CI/CD?

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

Ответ

Метафора "поезд" описывает CI/CD-конвейер, где каждый этап (сборка, тестирование, деплой) — это "вагон", который движется к production.

Пример пайплайна (GitLab CI):

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - docker build -t my-app:${CI_COMMIT_SHA} .

test_job:
  stage: test
  script:
    - docker run my-app:${CI_COMMIT_SHA} npm test

deploy_job:
  stage: deploy
  script:
    - kubectl set image deployment/my-app app=my-app:${CI_COMMIT_SHA}
  only:
    - main

Принципы "поезда":

  1. Автоматизация — каждый коммит запускает весь конвейер.
  2. Отказоустойчивость — падение одного этапа ("вагона") останавливает "поезд".
  3. Скорость — параллельное выполнение независимых задач (например, юнит- и интеграционные тесты).
  4. Консистентность — один артефакт проходит через все этапы, гарантируя идентичность среды.