DevOps生命周期的8个阶段和DevOps pipeline 详解

您可能也在探索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工具专注于帮助供应商及其合作伙伴。

相关推荐
云计算DevOps-韩老师16 小时前
【网络云计算】2024第45周周考-分组技能大赛-LVM结合RAID解题思路【RAID结合LVM】
网络·云计算·perl·devops·lvm扩容·lvm基本概念·raid基础
Linux运维老纪1 天前
Jenkins应用详解(Detailed Explanation of Jenkins Application)
linux·服务器·云计算·jenkins·运维开发·devops
Elastic 中国社区官方博客1 天前
AutoOps 使每个 Elasticsearch 部署都更易于管理
大数据·人工智能·elasticsearch·搜索引擎·全文检索·devops
LeonNo112 天前
软考:论DevOps
运维·devops
心灵彼岸-诗和远方2 天前
DevOps业务价值流:需求设计最佳实践
运维·devops
极小狐4 天前
极狐GitLab 签约足下科技,加速国产智驾操作系统的发展与普及
gitlab·devsecops·devops·极狐gitlab·安全合规
极小狐4 天前
GitLab 中文发行版最新版重点功能解读
gitlab·devsecops·devops·极狐gitlab·安全合规
_.Switch4 天前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
心灵彼岸-诗和远方4 天前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
心灵彼岸-诗和远方5 天前
Devops业务价值流:软件研发最佳实践
运维·产品经理·devops