您可能也在探索DevOps pipeline或工作流的概念,这些术语可能会根据不同的解释者而有所交替使用。尽管如此,DevOps生命周期和DevOps pipeline这两个术语更常被提及。
本文将首先阐述DevOps生命周期的概念,然后深入介绍DevOps pipeline。
DevOps生命周期和DevOps pipeline的概述
DevOps是一个促进开发与运维团队紧密协作的框架,(如接下来介绍的 DevOps生命周期 “无限循环 ”所示)它推动了整个DevOps生命周期的自动化。
DevOps生命周期是一套促进持续集成、持续交付和快速软件部署的实践和阶段性流程。
持续集成是这一过程的核心,涉及将多位开发者的代码变更定期合并到中央存储库,并执行自动构建和测试。
持续交付则建立在持续集成之上,自动化软件发布流程,使开发人员能够可靠、高效地将应用程序部署到生产环境中。
这两者通常合称为CI/CD。
DevOps pipeline
与DevOps生命周期相比,DevOps pipeline是一个更偏技术和工具驱动的概念,指的是一系列自动化流程和工具,用于促进软件的持续交付。因此,DevOps生命周期更广泛,不仅包括DevOps pipeline,还包括DevOps带来的文化和运营变更。
DevOps生命周期的 “无限循环 ”如下图所示,用于阐述 DevOps生命周期的八个阶段是如何流动的。
DevOps 无限循环的左侧表示开发阶段,右侧表示运营阶段,DevOps生命周期无限循环也有变体。例如:
它可以画成较少的阶段;
各阶段的名称或位置可能不同;
可能包括其他阶段,例如 “发现 ”或 “持续反馈”。
DevOps生命周期也可能被描绘成一个圆圈(而不是无限循环)。本文的 DevOps生命周期内容反映了上图所示的无限循环。
DevOps生命周期的八个阶段
1、计划:此初始阶段涉及确定项目目标和范围,开发团队和运营团队在此阶段合作,了解需求、确定优先级并规划工作流程。
2、代码:开发人员编写代码,创建新功能、修复错误或增强现有软件,并通过Git等版本控制系统管理和跟踪代码库的变更。
3、构建:将代码编译或转换为可执行程序,通常使用Jenkins、Maven或Gradle等工具。
4、测试:软件构建完成后,执行严格的测试,以发现并修复缺陷,包括单元测试、集成测试、系统测试和用户验收测试,使用Selenium或JUnit等自动化测试工具。
5、发布:准备应用程序部署到生产环境,包括最终质量保证、发布计划和日程安排。
6、部署:将新代码移入生产环境,使用Kubernetes等容器编排工具和Ansible、Puppet、Chef等配置管理工具。
7、运行:部署完成后,进行持续的维护和支持,如监控应用程序性能、确保可用性、实施更新或打补丁。
8、监控:持续监控以跟踪应用程序性能、发现问题并收集用户反馈,使用Prometheus、Nagios或Splunk等工具,捕获的洞察力和反馈用于未来能够做出改进的决策,这种反馈循环是 DevOps 迭代性质的关键。
DevOps pipeline一词可以与 DevOps生命周期互换使用,也可以用来表示 DevOps生命周期中基于工具的子集。因此,DevOps pipeline图可能包括上述所有八个阶段,通常以线性方式表示(作为工作流而非无限循环)。它也可能与一些 “连续 ”阶段保持一致,如下所示的 DevOps pipeline图:
现实世界中的 DevOps pipeline可能更注重技术描绘,反映了对自动化流程和工具的关注,而使用各种工具意味着组织可以拥有不同的 DevOps pipeline。
如图所示,DevOps pipeline通常包括以下要素:
-持续集成
-持续交付
-持续部署
-持续测试
-持续运营
工具对 DevOps pipeline的构建至关重要,相关技术类型包括:
源代码管理 (SCM) 工具–开发人员可以在版本控制系统中检查其代码。
协调(Orchestration)–有助于实现 DevOps 工作流和各种流程的自动化,这些流程涉及部署、管理和扩展应用程序等。
配置管理–用于自动配置和管理软件、系统,确保系统处于理想和可预测的状态。
集装化管理 - 将应用程序打包并在称为“集装箱”的隔离环境中运行。这可确保多个开发、测试和生产环境的一致性。
企业可能会创建特定的DevOps pipeline,以自动化和简化软件开发和部署的不同环节。
这些类型反映了 DevOps pipeline以工具为中心的性质,包括:
持续集成pipeline–自动集成来自多个贡献者的代码变更。
持续部署pipeline–自动将应用程序部署到生产环境。
持续交付pipeline–与持续部署类似,但持续部署到生产中是一个手动步骤,即自动准备发布代码变更,但在自动测试通过后,手动完成部署工作。
构建pipeline–编译代码、运行测试并生成可部署的工件。
测试自动化pipeline–执行自动化测试验证代码变更。
发布pipeline–自动化部署软件更新所需的各个阶段,包括审批、发布策略和合规性。
ServiceDesk Plus是一个ITSM工具专注于帮助供应商及其合作伙伴。