CI/CD

Continuous Integration, Continuous Delivery

Что это такое

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

Почему это важно

Долгоживущие ветки и ручные выпуски делают интеграцию самой трудной частью работы. Ветки расходятся, слияния превращаются в переговоры, а выпуск становится напряжённым событием с планом отката, написанным на доске. Конвейер, который собирает и тестирует каждое изменение, переносит эту боль раньше — в момент, когда изменение мало, а автор его ещё помнит. Он же делает выпуск скучным, и в этом весь смысл: доставка, которая происходит часто и легко откатывается, гораздо безопаснее той, что происходит редко и не имеет права на ошибку.

Что в этом треке

  1. Стадии конвейера (06-cloud-devops/08-ci-cd/01-pipeline-stages) — что делает каждая стадия конвейера и почему важен порядок.
  2. Режимы отказа конвейера (06-cloud-devops/08-ci-cd/02-pipeline-failure-modes) — способы, которыми конвейер теряет доверие: от нестабильных тестов до секретов, утекающих в логи.

Предварительные требования

Что читать дальше

  • Git (система контроля версий) (01-cs-fundamentals/12-git) — модель ветвления и слияния, на которой работает конвейер, поэтому прочитайте это первым.
  • GitHub Actions (06-cloud-devops/15-github-actions) — одна конкретная реализация всего, что в этом треке.
  • Terraform (06-cloud-devops/07-terraform) — где конвейер применяет изменения инфраструктуры после просмотра плана.