Конвейер Непрерывной Доставки (Continuous Delivery Pipeline, CDP)
Что такое Конвейер Непрерывной Доставки?
Определение: Конвейер Непрерывной Доставки (Continuous Delivery Pipeline, CDP) представляет собой процессы, действия и средства автоматизации, необходимые для проведения элемента новой функциональности по всем этапам процесса, от появления идеи до выпуска ценности по требованию конечному пользователю.
Конвейер Непрерывной Доставки позволяет Agile командам и Поездам (Agile Release Train, ART) доставлять новую функциональность пользователям по мере необходимости. В некоторых случаях «непрерывная доставка» означает ежедневные релизы или даже несколько релизов в день. В других — это могут быть еженедельные или ежемесячные релизы в зависимости от требований рынка и бизнес-целей.
На рисунке 1 представлены четыре ключевых элемента конвейера: непрерывное исследование (Continuous Exploration, CE), непрерывная интеграция (Continuous Integration, CI), непрерывное развёртывание (Continuous Deployment, CD) и выпуск по требованию (Release on Demand, RoD).


Рисунок 1. Конвейер Непрерывной Доставки в SAFe
Устаревшие практики часто приводят к тому, что Релизные Поезда (ART) вносят изменения в Решения большими блоками. Однако необязательно придерживаться исключительно такого радикального подхода «всё или ничего». Вместо этого целесообразнее применять инкрементальный подход. Например, спутниковая система включает в себя орбитальный аппарат, наземную станцию и веб-ферму, которая предоставляет полученные данные конечным пользователям. Некоторые компоненты, такие как функционал веб-фермы или программное обеспечение спутника, можно выпускать ежедневно. Другие, вроде аппаратных компонентов, могут обновляться только во время каждого пускового цикла.
Отделение разработки функционала веб-фермы от физического запуска сокращает необходимость в монолитных релизах. Это также повышает гибкость, позволяя командам оперативно доставлять элементы решения в ответ на рыночные изменения.
Какие четыре элемента включает Конвейер Непрерывной Доставки?
Конвейер Непрерывной Доставки (CDP) состоит из четырех элементов: непрерывное исследование, непрерывная интеграция, непрерывное развёртывание и выпуск по требованию. Далее в статье мы более подробно рассмотрим каждый их четырех элементов.
- Непрерывное Исследование (Continuous Exploration, CE) позволяет ответить на вопрос, что именно нужно создавать. Дизайн-мышление помогает понять запросы рынка, потребности клиентов и требуемые решения. Работа начинается с гипотезы о том, что даст клиенту наибольшую ценность. Далее идеи анализируются и исследуются, чтобы определить требования к MVP (минимально жизнеспособному продукту) или MMF (минимально рыночной функции). Эти данные задают направление для оценки того, какие именно изменения потребуются в существующих системах. Как только продуктовый менеджмент при поддержке Agile команд определит, какие Капабилити (возможности) и Фичи (функциональности) максимально удовлетворят потребности клиентов и рынка, эти элементы беклогов финализируются и приоритизируются.
- Непрерывная интеграция (Continuous Integration, CI) направлена на реализацию Фич из беклога Поезда (ART). Непрерывная интеграция использует инструменты дизайн-мышления для проработки задач и фокусируется на уточнении Фич (например, при создании карты пользовательских Историй). Уточнение Фич может потребовать проведения дополнительных исследований с применением инструментов оценки гипотез Решений (например, получение обратной связи пользователей по бумажному прототипу). После того, как ценность будущих Фич и критерии их приёмки становятся понятными, Agile команды приступают к их реализации. Выполненная работа размещается в системе контроля версий, собирается и интегрируется, проводится сквозное тестирование и валидация в промежуточной среде.
- Непрерывное развёртывание (Continuous Deployment, CD) переносит изменения из промежуточной среды в производственную. Затем команды проверяют и мониторят их, чтобы убедиться в корректной работе. На этом этапе Фичи переходят в производственную среду. При этом именно бизнес определяет, когда их нужно «открыть» для пользователей. Непрерывное развёртывание позволяет организации быстро реагировать на изменения, при необходимости выполнить быстрый откат или оперативно внести исправления.
- Выпуск по требованию (Release on Demand, RoD) — способность предоставлять ценность клиентам единым релизом или поэтапно, в зависимости от потребностей бизнеса и рынка. Это позволяет организации выпускать продукт в оптимальное время и тщательно контролировать риски, связанные с каждым релизом. Выпуск по требованию также включает необходимые дополнительные действия в рамках конвейера доставки, которые будут поддерживать стабильность решений и сохранят их ценность в максимально долгосрочной перспективе после выпуска.
Хотя элементы конвейера описываются последовательно, на практике конвейер не является строго линейным процессом. Скорее, это цикл обучения: команды формулируют одну или несколько гипотез, создают решения для проверки каждой из них и извлекают уроки из проделанной работы и полученных результатов, как показано на рисунке 2.


Рисунок 2. Конвейер Непрерывной Доставки (CDP) способствует непрерывному обучению и доставке ценности
Несмотря на то, что одна Фича проходит последовательно по шагам потока ценности, команды работают над всеми аспектами конвейера доставки параллельно. Это означает, что в каждом Интервале Планирования (PI) и в течение каждой Итерации внутри Интервала Планирования Релизные Поезда (ART) и Поезда Решения (Solution Train) постоянно:
- исследуют ценность для пользователей;
- интегрируют и демонстрируют разработанную ценность;
- непрерывно развёртывают ценность в производственной среде;
- выпускают ценность по мере необходимости бизнеса.
Картирование существующего Конвейера Непрерывной Доставки
Организации обычно уже имеют конвейер доставки. Без него они не смогли бы доставлять ценность. Но нередко такие конвейеры не полностью автоматизированы, содержат значительные задержки и требуют трудоёмкого ручного вмешательства, подверженного ошибкам. Всё это приводит к задержкам релизов и увеличению их объёма. Такой подход противоречит принципу SAFe №6 «Обеспечить непрерывный поток ценности».
Первый шаг к улучшению потока ценности — это картирование текущего конвейера. На рисунке 3 показан поток ценности в Конвейере Непрерывной Доставки одной организации, с первоначальным фокусом на разработке новых Фич. Со временем эта карта расширяется и охватывает изменения на всех этапах системы: от создания новых Фич до поддержки и улучшения архитектуры.


Рисунок 3. Пример Конвейера Непрерывной Доставки организации
После картирования конвейера команды собирают и фиксируют метрики на карте потока ценности, чтобы выявить задержки. Это помогает Поезду (ART) находить возможности для улучшения — например, устранять простои или сокращать переработки. На рисунке 4 представлены четыре основных используемых метрик:
- Активное время — время, затрачиваемое на выполнение работы на конкретном шаге (например, этап «Дизайн» занимает 4 часа).
- Время ожидания — промежуток между шагами, когда работа не выполняется. На Рисунке 4 показано, что принятые Фичи ожидают 696 часов до развёртывания в промежуточной среде. Выявление и устранение избыточного времени ожидания критично для улучшения потока ценности.
Процент Завершено и Точно (% Complete & Accurate, %C&A) — это процент работ, которые могут быть переданы на следующий шаг процесса без переделок. Задержки часто связаны с низким качеством на предыдущих шагах («вверх по потоку»). Метрика %C&A позволяет выявлять этапы, на которых низкое качество может замедлять доставку ценности. На Рисунке 4 показано, что 20% работ на переходе от «Дизайна» к «Кодированию» требует доработок. Повышение показателя %C&A напрямую влияет на эффективность потока. Все отдельные значения %C&A суммируются для получения итогового %C&A. Это отражает вероятность того, что элемент пройдет через весь рабочий процесс без переделок. В примере этот показатель составляет всего 35%, что означает необходимость доработки большинства Фич.


Рисунок 4. Изображение потока ценности с метриками потока
После того, как будет достигнуто понимание, как устроен текущий поток, можно наглядно изобразить SAFe Конвейер Непрерывной Доставки. Картирование потока даёт всем в организации единое представление о процессе, что в свою очередь помогает в дальнейшем сообщать об изменениях и улучшениях.
Команды ищут возможности для повышения эффективности каждого этапа, чтобы уменьшить время потока. Это включает в себя улучшение активного времени работы над созданием ценности и повышение качества на каждом этапе разработки (%C&A).


Рисунок 5. Картирование потока ценности выявляет основные узкие места в процессе доставки ценности клиентам
На Рисунке 5 видно, что на начальном этапе главной проблемой, как правило, становятся задержки между этапами. В процессе развёртывания наблюдаются две существенные задержки и значительный объём доработок на старте. Для оптимизации потока в первую очередь следует сокращать простои (время ожидания между этапами) — это наиболее быстрый способ улучшить общее время выполнения. Также важно повышать %Завершено и Точно (%C&A) и минимизировать доработки. Сокращение количества доработок позволит ART сосредоточиться на создании ценности, а не на исправлении ошибок.
Дальнейшие улучшения включают уменьшение размера партий и внедрение DevOps практик. Подробнее о поддержании непрерывного потока ценности можно найти в статьях «Поток Команды», «Поток Поезда (ART)» и «Как обеспечить непрерывный поток ценности?».
Как Канбан система Поезда поддерживает поток и непрерывную доставку?
Непрерывная доставка крайне важна для Релизных Поездов (ART) и Поездов Решения (Solution Train). Менеджмент Продукта и заинтересованные лица должны отслеживать текущую работу, даже если многие процессы автоматизированы. Канбан-система ART помогает управлять потоком Фич через Конвейер Непрерывной Доставки (CDP). Введение ограничений на количество незавершённой работы (WIP-лимиты) повышает продуктивность команд, а также позволяет выявлять и устранять узкие места (см. рисунок 6).


Рисунок 6. Пример Канбан доски Поезда (ART)
Подробнее о Канбан-системе Поезда можно прочитать в статье «Беклоги Релизного Поезда и Поезда Решения».
Как DevOps поддерживает непрерывную доставку?
Построение, поддержка и оптимизация Конвейера Непрерывной Доставки требуют специальных навыков и инструментов на всех этапах потока ценности. Методы DevOps идеально подходят для этой задачи, поскольку такая система доставки должна обеспечивать быстрое обучение и высокий уровень взаимодействия при создании сложных комплексных решений. Как показано на рисунке 7, применение DevOps практик значительно упрощает внедрение Конвейера Непрерывной Доставки.


Рисунок 7. DevOps способствует созданию Конвейера Непрерывной Доставки
Подход SAFe CALMR к DevOps направляет непрерывную доставку ценности за счет развития пяти ключевых аспектов: культуры (Culture), автоматизации (Automation), бережливого потока (Lean Flow), измерений (Measurement) и восстановления (Recovery).
Технические компетенции, практики и инструменты DevOps сгруппированы в предметные области во внутренних циклах модели. При этом внешний круг иллюстрирует четыре элемента конвейера непрерывной доставки (CDP), а круг под ним показывает четыре вида деятельности (измерения) каждого из элементов конвейера.
Статья подготовлена по материалам Scaled Agile, Inc. и не является официальным переводом статьи «Continuous Delivery Pipeline». Статья подготовлена по последней версии статьи на сайте вендора от 06.02.2025.
Обучение
Если Вас интересует построение Конвейера Непрерывной Доставки, приходите на тренинг SAFe DevOps®.
Программа курса включает такие темы, как:
- Подход CALMR DevOps, основные практики и техники современного DevOps, рекомендуемые авторами SAFe.
- Как интегрировать Непрерывное Исследование, Непрерывную Интеграцию и Непрерывное Развёртывание и Выпуск ценности клиентам по требованию?
- Как выполнять картирование потока ценности, измерять поток и выявлять узкие места в процессе доставки?
- Как оценить текущее состояние, а затем разработать и реализировать план трансформации DevOps, адаптированный под вашу организацию?
Дополнительные информация о тренинге: https://ionovpartners.ru/trainings/safe-devops/.