ScholarGate
助手

DevOps与持续交付

DevOps和持续交付是通过自动化、快速反馈以及使软件保持持续可发布状态的部署管道,来统一软件开发和运维的实践。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

DevOps是一套文化和技术实践,旨在整合软件开发和IT运维,以缩短交付周期;而持续交付则是一门工程学科,旨在自动化构建、测试和部署,从而使软件能够随时可靠地发布。

Scope

本主题涵盖持续集成和持续交付/部署管道;构建、测试和发布自动化;基础设施即代码;配置管理;监控和可观察性;开发与运维之间的文化协作;以及部署频率、提前期、变更失败率和平均恢复时间等指标。

Core questions

  • 部署管道如何自动化从提交到生产的路径?
  • 哪些实践可以在保持质量的同时使软件持续可发布?
  • 持续集成、持续交付和持续部署有何不同?
  • 哪些指标能可靠地指示软件交付性能?

Key theories

部署管道
每一次变更都流经一个自动化的构建、自动化测试和分阶段部署管道,提供快速反馈并确保通过管道的任何版本都可作为发布候选。
DevOps的三种方式
Kim的原则描述了优化从开发到运维的流程、放大反馈循环以及培养持续实验和学习的文化,作为高性能技术组织的基础。
DORA交付绩效指标
研究确定了四个关键指标——部署频率、变更提前期、变更失败率和服务恢复时间——这些指标在统计学上区分了高绩效和低绩效的软件交付组织。

Clinical relevance

DevOps和持续交付将发布周期从数月缩短至数小时,通过自动化和小批量减少部署风险,并提高稳定性和吞吐量;实证研究表明这些实践与更好的组织绩效相关。

Evidence & guidelines

年度DevOps现状报告和Accelerate研究项目提供了实证证据,表明持续交付实践与软件交付和组织绩效相关。

History

DevOps一词起源于2009年左右的敏捷系统管理和基础设施即代码运动,旨在打破开发与运维之间的壁垒。Humble和Farley于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主要是一套涵盖开发和运维的文化和技术实践,而不是一个单一的职位名称;将其仅仅视为一个重新命名的运维角色,就忽略了其对共享所有权和自动化的强调。

Methods for this concept

Related concepts