DevOps 生命周期与 DevOps 管道详解
您需要了解的全部内容
05分钟阅读
如果您正在寻找 DevOps 生命周期的信息,本文适合您。您可能也在寻找 DevOps 管道或 DevOps 工作流的信息,根据不同的解释者,生命周期、管道和工作流这几个术语可能会交替使用。然而,DevOps 生命周期和 DevOps 管道这两个术语比 DevOps 工作流更常被使用。
本文先解释 DevOps 生命周期的概念,然后介绍 DevOps 管道。
DevOps 生命周期与 DevOps 管道详解
DevOps 是一个促进开发与运维团队更紧密协作(如接下来介绍的 DevOps 生命周期“无限循环”所示)及贯穿整个 DevOps 生命周期实现自动化的框架。
DevOps 生命周期是一套促进持续集成、持续交付和快速软件部署的实践和阶段。具体包括:
- 持续集成涉及定期将多个开发人员的代码更改集成到中央代码库中,随后进行自动构建和测试。
- 持续交付建立在持续集成基础上,实现软件发布过程的自动化,使开发人员能够可靠且高效地将应用程序部署到生产环境。
持续集成和持续交付合称为 CI/CD。
“DevOps 管道”一词指的是用于促进软件持续交付的一套自动化流程和工具。它比 DevOps 生命周期更偏向技术和工具驱动的概念。因此,DevOps 生命周期涵盖范围更广,包括 DevOps 管道以及 DevOps 带来的文化和运营变革。
DevOps 生命周期“无限循环”
下图所示的 DevOps 生命周期“无限循环”用于说明八个 DevOps 生命周期阶段的流程。

DevOps 无限循环的左侧表示开发阶段,右侧表示运维阶段。
该 DevOps 生命周期无限循环也存在变体。例如:
- 可能绘制为较少的阶段
- 阶段名称或位置可能不同
- 可能包含额外阶段,例如“发现”或“持续反馈”。
DevOps 生命周期也可能被描绘为一个圆圈(而非无限循环)。本文/博客的 DevOps 生命周期内容与上述无限循环相符。
DevOps 生命周期的八个阶段
DevOps 生命周期无限循环中显示的八个阶段为:
- 计划 - 该初始阶段涉及定义目标和范围。开发和运维团队(如果分开)协作理解需求、设定优先级并规划工作流程。
- 编码 - 开发人员编写代码以创建新功能、修复缺陷或增强现有软件。使用 Git 等版本控制系统管理和跟踪代码库的变更。
- 构建 - 将编写的代码编译或转换为可执行程序。使用 Jenkins、Maven 或 Gradle 等工具。
- 测试 - 软件构建完成后,进行严格测试以发现并修复缺陷。包括单元测试、集成测试、系统测试和用户验收测试。使用 Selenium 或 JUnit 等自动化测试工具。
- 发布 - 为将应用部署到生产环境做准备。通常包括最终的质量保证、发布计划和调度。
- 部署 - 将新代码迁移到生产环境。使用容器编排工具(如 Kubernetes)和配置管理工具(如 Ansible、Puppet 和 Chef)。
- 运维 - 部署后需要持续维护和支持。例如,监控应用性能、确保可用性以及实施更新或补丁。
- 监控 - 持续监控应用性能,识别问题并收集用户反馈。使用 Prometheus、Nagios 或 Splunk 等工具。收集的洞察和反馈用于做出未来改进的明智决策,这一反馈循环是 DevOps 迭代性质的关键。
DevOps 管道图示
如前所述,DevOps 管道一词可能与 DevOps 生命周期交替使用,也可能指 DevOps 生命周期中基于工具的子集。因此,DevOps 管道图示可能包含上述八个阶段,但以线性方式呈现(即工作流,而非无限循环)。它也可能对应多个“持续”阶段,如下方 DevOps 管道图示所示:

真实的 DevOps 管道通常以更技术化的方式呈现,反映对自动化流程和工具的关注,且由于使用的工具不同,各组织的 DevOps 管道可能各异。
如图所示,DevOps 管道通常包括以下元素:
- 持续集成
- 持续交付
- 持续部署
- 持续测试
- 持续运维。
工具对于构建 DevOps 管道至关重要,相关的技术类型包括:
- 源代码管理(SCM)工具 - 开发人员可以将代码提交到版本控制系统的地方。
- 编排 - 帮助自动化部署、管理和扩展应用程序所涉及的 DevOps 工作流和流程。
- 配置管理 - 用于自动化软件和系统的配置与管理,确保系统处于期望且可预测的状态。
- 容器化管理 - 应用程序被打包并运行在称为容器的隔离环境中,确保多个开发、测试和生产环境的一致性。
组织还可能创建特定的 DevOps 管道类型,以自动化和简化不同的软件开发和部署方面。这些反映了 DevOps 管道以工具为中心的特性,包括:
- 持续集成管道 - 自动集成多个贡献者的代码更改。
- 持续部署管道 - 自动将应用程序部署到生产环境。
- 持续交付管道 - 类似于持续部署,但部署到生产环境是手动步骤,即代码更改自动准备发布,但在自动测试通过后,部署由人工完成。
- 构建管道 - 编译代码、运行测试并生成可部署的工件。
- 测试自动化管道 - 运行一系列自动化测试以验证代码更改。
- 发布管道 - 自动化部署软件更新所需的各个阶段,包括审批、发布策略和法规合规。
以上就是您需要了解的关于 DevOps 生命周期和 DevOps 管道的所有内容。
