DevOps и непрерывная поставка
DevOps и непрерывная поставка — это практики, которые объединяют разработку программного обеспечения и операции посредством автоматизации, быстрой обратной связи и конвейера развертывания, поддерживающего программное обеспечение в состоянии постоянной готовности к выпуску.
Definition
DevOps — это набор культурных и технических практик, которые интегрируют разработку программного обеспечения и ИТ-операции для сокращения цикла поставки, в то время как непрерывная поставка — это инженерная дисциплина автоматизации сборки, тестирования и развертывания, позволяющая надежно выпускать программное обеспечение в любое время.
Scope
Эта тема охватывает конвейеры непрерывной интеграции и непрерывной поставки/развертывания; автоматизацию сборки, тестирования и выпуска; инфраструктуру как код; управление конфигурацией; мониторинг и наблюдаемость; культурное сотрудничество между разработкой и операциями; а также такие метрики, как частота развертывания, время выполнения, частота отказов изменений и среднее время восстановления.
Core questions
- Как конвейер развертывания автоматизирует путь от коммита до продакшена?
- Какие практики обеспечивают постоянную готовность программного обеспечения к выпуску при сохранении качества?
- В чем различия между непрерывной интеграцией, поставкой и развертыванием?
- Какие метрики надежно указывают на производительность поставки программного обеспечения?
Key theories
- Конвейер развертывания
- Каждое изменение проходит через автоматизированный конвейер сборки, автоматизированных тестов и поэтапного развертывания, обеспечивая быструю обратную связь и гарантируя, что любая прошедшая версия является кандидатом на выпуск.
- Три пути DevOps
- Принципы Кима описывают оптимизацию потока от разработки к операциям, усиление циклов обратной связи и развитие культуры постоянных экспериментов и обучения как основу высокопроизводительных технологических организаций.
- Метрики производительности поставки DORA
- Исследования выявляют четыре ключевые метрики — частота развертывания, время выполнения изменений, частота отказов изменений и время восстановления сервиса — которые статистически отличают высокопроизводительные организации по поставке программного обеспечения от низкопроизводительных.
Clinical relevance
DevOps и непрерывная поставка сокращают циклы выпуска с месяцев до часов, снижают риск развертывания за счет автоматизации и небольших размеров партий, а также улучшают как стабильность, так и пропускную способность; эмпирические исследования связывают эти практики с улучшением организационной производительности.
Evidence & guidelines
Ежегодные отчеты State of DevOps и исследовательская программа Accelerate предоставляют эмпирические доказательства того, что практики непрерывной поставки коррелируют с производительностью поставки программного обеспечения и организационной производительностью.
History
Термин DevOps возник примерно в 2009 году из движений agile-системного администрирования и инфраструктуры как кода, стремясь разрушить барьер между разработкой и операциями. Хамбл и Фарли кодифицировали непрерывную поставку в 2010 году, а последующие эмпирические исследования формализовали метрики, отличающие высокопроизводительные команды.
Debates
- Непрерывное развертывание против непрерывной поставки
- Обсуждается, должно ли каждое прошедшее изменение автоматически развертываться в продакшн (непрерывное развертывание) или ожидать ручного решения о выпуске (непрерывная поставка); ответ зависит от толерантности к риску, регуляторного контекста и зрелости автоматизированной верификации.
Key figures
- Jez Humble
- David Farley
- Gene Kim
- Nicole Forsgren
- Patrick Debois
Related topics
Seminal works
- humble2010
- kim2016
- forsgren2018
Frequently asked questions
- В чем разница между непрерывной поставкой и непрерывным развертыванием?
- При непрерывной поставке каждое изменение, прошедшее конвейер, готово к выпуску, но решение о развертывании в продакшн является преднамеренным действием человека; при непрерывном развертывании этот последний шаг также автоматизирован, поэтому каждое прошедшее изменение выпускается автоматически.
- DevOps — это роль или практика?
- DevOps — это прежде всего набор культурных и технических практик, охватывающих разработку и операции, а не отдельная должность; рассматривать его как просто переименованную операционную роль означает упускать из виду его акцент на совместной ответственности и автоматизации.