Инженерная практика: Непрерывные поставки (Continuous Delivery, CD)

Приблизительно это может выглядеть следующим образом:

  1. Изменения вносятся в систему контроля версий (СКВ).
  2. Запускается система непрерывной интеграции (Continuous Integration, CI), собирается билд (если это компилируемый язык), прогоняются все необходимые тесты.
  3. В случае успешности предыдущего шага, билд выкатывается на окружение тестирования (QA).
  4. После успешного тестирования билд выкатывается на stage окружение (pre-production), которое максимально приближено к боевому окружению.
  5. Если все прошло хорошо, то билд попадает в боевое окружение.

Тут встает в полный рост вопрос, как сделать так, чтобы все окружения, начиная с окружения разработчиков, максимально соответствовали друг другу. Для этого существуют инструменты управления конфигурацией (Configuration management system). Самое главное, что конфигурация окружений — это такой же код, и к нему точно также применимы все вышеперечисленные подходы: хранение в СКВ, CI, тестирование.

Так вот, если этот процесс отлажен, все изменения проходят по нему, и, потенциально, каждое изменение может быть выкачено в продакшен, то это и называется процессом непрерывной поставки ПО.