Руководство по Kanban · Основы Lean
Непрерывная поставка: принципы, конвейер и преимущества
Непрерывная поставка — это практика разработки ПО, при которой код всегда поддерживается в состоянии, пригодном для выпуска, поэтому новые изменения можно выпускать для пользователей быстро, безопасно и в любое время. Она превращает идеал Kanban — небольшой непрерывный поток — в техническую реальность.
Главное
- Непрерывная поставка поддерживает ПО в постоянной готовности к выпуску.
- Конвейер развёртывания автоматизирует сборку, тестирование и релиз.
- Она дополняет Kanban, устраняя пакетные релизы.
Происхождение
Практику подробно описали Джез Хамбл и Дэвид Фарли в книге «Непрерывное развёртывание ПО» (Continuous Delivery, 2010). Она основана на принципах Agile, прежде всего на первом: поставлять ценное ПО рано и непрерывно.
CI, непрерывная поставка и непрерывное развёртывание
| Практика | Что это означает |
|---|---|
| Непрерывная интеграция (CI) | Разработчики часто сливают небольшие изменения; каждое слияние автоматически собирается и тестируется |
| Непрерывная поставка (CD) | Любое изменение, прошедшее конвейер, может быть выпущено; релиз — бизнес-решение |
| Непрерывное развёртывание | Любое изменение, прошедшее конвейер, выпускается автоматически |
Конвейер развёртывания
- Этап коммита: сборка кода и запуск быстрых автоматизированных тестов.
- Этап приёмки: автоматизированные функциональные и интеграционные тесты.
- Дополнительное тестирование: тестирование производительности, безопасности и исследовательское тестирование.
- Релиз: развёртывание в продуктивной среде, часто с флагами функций или постепенным раскатыванием.
- Мониторинг: отслеживание реального использования и ошибок и быстрый откат при необходимости.
Преимущества
- Более мелкие и менее рискованные релизы.
- Более быстрая обратная связь от реальных пользователей.
- Более короткое время выполнения (lead time) от идеи до клиента.
- Менее напряжённые дни релизов.
- Более высокое качество благодаря автоматизации.
Непрерывная поставка и Kanban
Kanban ограничивает объём незавершённой работы и сохраняет элементы небольшими; непрерывная поставка устраняет завершающий этап пакетного релиза. Вместе они позволяют каждому элементу поступать к клиентам сразу после готовности. См. DevOps.
Бесплатные шаблоны по этой теме
Частые вопросы
Непрерывная поставка — только для ПО?
Термин пришёл из разработки ПО, но принцип постоянной готовности работы к выпуску небольшими инкрементами применим к контенту, документации и другим цифровым продуктам.
Нужно ли непрерывное развёртывание для непрерывной поставки?
Нет. Непрерывная поставка означает, что вы можете выпустить релиз в любое время; непрерывное развёртывание означает, что релиз выпускается автоматически.
Что такое непрерывная поставка?
Непрерывная поставка — это практика разработки ПО, при которой код всегда поддерживается в состоянии, пригодном для выпуска, поэтому любое изменение можно безопасно и быстро развернуть в продуктивной среде в любое время.
В чём разница между непрерывной поставкой и непрерывным развёртыванием?
При непрерывной поставке каждое изменение готово к выпуску, но решение о развёртывании принимает человек. При непрерывном развёртывании каждое изменение, прошедшее конвейер, выпускается автоматически.
В чём разница между непрерывной интеграцией и непрерывной поставкой?
Непрерывная интеграция означает частое слияние и тестирование изменений кода. Непрерывная поставка расширяет её так, что интегрированный код всегда можно развернуть в продуктивной среде.
Что такое конвейер развёртывания в непрерывной поставке?
Автоматизированная последовательность этапов, таких как сборка, тесты и развёртывание в тестовых средах, через которую проходит каждое изменение на пути к релизу.
Кто написал книгу Continuous Delivery?
Джез Хамбл и Дэвид Фарли в книге Continuous Delivery 2010 года.
Каковы преимущества непрерывной поставки?
Более мелкие и менее рискованные релизы, более быстрая обратная связь от пользователей, меньше ручных ошибок и менее напряжённые дни релизов.
Какие инструменты используются для непрерывной поставки?
Команды обычно сочетают систему контроля версий, сервер CI/CD, фреймворки автоматизированного тестирования и инструменты «инфраструктура как код». Конкретные продукты важны меньше, чем автоматизация и дисциплина.
Как непрерывная поставка связана с Kanban?
Оба стремятся к тому, чтобы небольшие партии стабильно поступали к клиентам. Kanban-доска с коротким время цикла естественно сочетается с конвейером, который может выпустить любой завершённый элемент.
Что такое флаг функции (feature flag) в непрерывной поставке?
Переключатель в коде, который включает или выключает функцию без повторного развёртывания, позволяя командам безопасно выпускать код до того, как функция станет видна всем пользователям.