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生命周期的八个阶段是如何流动的。

ITSM工具

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工具专注于帮助供应商及其合作伙伴。

相关推荐

  1. 【k8s】:Pod生命周期详解

    2024-06-08 12:48:03       13 阅读
  2. vue生命周期详解

    2024-06-08 12:48:03       21 阅读
  3. 详解uniapp生命周期

    2024-06-08 12:48:03       19 阅读
  4. k8s---Pod生命周期

    2024-06-08 12:48:03       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 12:48:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 12:48:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 12:48:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 12:48:03       20 阅读

热门阅读

  1. 数据库连接池的概念和原理

    2024-06-08 12:48:03       7 阅读
  2. 笔记:DST与HPPC测试方法

    2024-06-08 12:48:03       9 阅读
  3. 深度解读ChatGPT基本原理

    2024-06-08 12:48:03       10 阅读
  4. 骑砍2霸主MOD开发(11)-瓦兰迪亚火骑兵

    2024-06-08 12:48:03       8 阅读
  5. C#面:Server.UrlEncode、HttpUtility.UrlDecode的区别

    2024-06-08 12:48:03       8 阅读
  6. MySQL-锁

    MySQL-锁

    2024-06-08 12:48:03      9 阅读
  7. Dijkstra算法(迪杰斯特拉算法)

    2024-06-08 12:48:03       9 阅读