Neural Project InstituteСертификация по управлению проектами для эпохи ИИ

Руководство по Kanban · Основы Lean

Непрерывная поставка: принципы, конвейер и преимущества

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

Главное

  • Непрерывная поставка поддерживает ПО в постоянной готовности к выпуску.
  • Конвейер развёртывания автоматизирует сборку, тестирование и релиз.
  • Она дополняет Kanban, устраняя пакетные релизы.

Происхождение

Практику подробно описали Джез Хамбл и Дэвид Фарли в книге «Непрерывное развёртывание ПО» (Continuous Delivery, 2010). Она основана на принципах Agile, прежде всего на первом: поставлять ценное ПО рано и непрерывно.

CI, непрерывная поставка и непрерывное развёртывание

ПрактикаЧто это означает
Непрерывная интеграция (CI)Разработчики часто сливают небольшие изменения; каждое слияние автоматически собирается и тестируется
Непрерывная поставка (CD)Любое изменение, прошедшее конвейер, может быть выпущено; релиз — бизнес-решение
Непрерывное развёртываниеЛюбое изменение, прошедшее конвейер, выпускается автоматически

Конвейер развёртывания

  1. Этап коммита: сборка кода и запуск быстрых автоматизированных тестов.
  2. Этап приёмки: автоматизированные функциональные и интеграционные тесты.
  3. Дополнительное тестирование: тестирование производительности, безопасности и исследовательское тестирование.
  4. Релиз: развёртывание в продуктивной среде, часто с флагами функций или постепенным раскатыванием.
  5. Мониторинг: отслеживание реального использования и ошибок и быстрый откат при необходимости.

Преимущества

  • Более мелкие и менее рискованные релизы.
  • Более быстрая обратная связь от реальных пользователей.
  • Более короткое время выполнения (lead time) от идеи до клиента.
  • Менее напряжённые дни релизов.
  • Более высокое качество благодаря автоматизации.

Непрерывная поставка и Kanban

Kanban ограничивает объём незавершённой работы и сохраняет элементы небольшими; непрерывная поставка устраняет завершающий этап пакетного релиза. Вместе они позволяют каждому элементу поступать к клиентам сразу после готовности. См. DevOps.

Бесплатные шаблоны по этой теме

Все шаблоны

Частые вопросы

Непрерывная поставка — только для ПО?

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

Нужно ли непрерывное развёртывание для непрерывной поставки?

Нет. Непрерывная поставка означает, что вы можете выпустить релиз в любое время; непрерывное развёртывание означает, что релиз выпускается автоматически.

Что такое непрерывная поставка?

Непрерывная поставка — это практика разработки ПО, при которой код всегда поддерживается в состоянии, пригодном для выпуска, поэтому любое изменение можно безопасно и быстро развернуть в продуктивной среде в любое время.

В чём разница между непрерывной поставкой и непрерывным развёртыванием?

При непрерывной поставке каждое изменение готово к выпуску, но решение о развёртывании принимает человек. При непрерывном развёртывании каждое изменение, прошедшее конвейер, выпускается автоматически.

В чём разница между непрерывной интеграцией и непрерывной поставкой?

Непрерывная интеграция означает частое слияние и тестирование изменений кода. Непрерывная поставка расширяет её так, что интегрированный код всегда можно развернуть в продуктивной среде.

Что такое конвейер развёртывания в непрерывной поставке?

Автоматизированная последовательность этапов, таких как сборка, тесты и развёртывание в тестовых средах, через которую проходит каждое изменение на пути к релизу.

Кто написал книгу Continuous Delivery?

Джез Хамбл и Дэвид Фарли в книге Continuous Delivery 2010 года.

Каковы преимущества непрерывной поставки?

Более мелкие и менее рискованные релизы, более быстрая обратная связь от пользователей, меньше ручных ошибок и менее напряжённые дни релизов.

Какие инструменты используются для непрерывной поставки?

Команды обычно сочетают систему контроля версий, сервер CI/CD, фреймворки автоматизированного тестирования и инструменты «инфраструктура как код». Конкретные продукты важны меньше, чем автоматизация и дисциплина.

Как непрерывная поставка связана с Kanban?

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

Что такое флаг функции (feature flag) в непрерывной поставке?

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