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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676525.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于4G工业路由器的信息发布系统物联网应用方案

随着物联网技术的快速发展,智能信息发布系统已成为城市管理和信息传播的重要工具。而4G工业路由器作为连接信息发布终端与云平台的关键设备,其在提升信息发布效率方面发挥着至关重要的作用。为了提升智能信息发布系统的效率和智能化水平,智联…

怎么在pdf上编辑文字?帮你解决这个头疼的问题!

在信息爆炸的时代,PDF作为一种通用性极强的文件格式,广泛应用于各个领域。然而,对于许多用户来说,如何在PDF上编辑文字却是一个令人头疼的问题。今天,我们就来聊聊这个话题,并为大家推荐几款实用的PDF编辑软…

Python程序设计 身份证号的奥秘

第1关:判断性别 通过身份证的第17位也就是倒数第二位的数字可以辨别该身份证所属人的性别,奇数为男性,偶数为女性。 任务:输入身份证号,第17位若是偶数,输出男性,否则输出女性 如何截取字符串的一个字符 如何判断一个…

【YOLO 系列】基于YOLO V8的河道违规钓鱼检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

前言: 随着社会发展和人口增长,对自然资源的保护和管理变得越来越重要。河流是重要的自然资源之一,对生态系统和人类社会都至关重要。然而,违规钓鱼等活动可能对河流生态环境造成严重破坏,并影响水域资源的可持续利用…

Codeforces Round 920 (Div. 3) E. Eat the Chip 题解 博弈论 贪心

Eat the Chip 题目描述 Alice and Bob are playing a game on a checkered board. The board has h h h rows, numbered from top to bottom, and w w w columns, numbered from left to right. Both players have a chip each. Initially, Alice’s chip is located at th…

回溯--字母迷宫

1.题目描述 字母迷宫游戏初始界面记作 m x n 二维字符串数组 grid,请判断玩家是否能在 grid 中找到目标单词 target。 注意:寻找单词时 必须 按照字母顺序,通过水平或垂直方向相邻的单元格内的字母构成,同时,同一个单…

SSM民宿在线预订平台的设计与实现-计算机毕业设计源码44449

摘 要 信息化社会内需要与之径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对民宿在线预订平台等问题,对民宿信息管理进行研究分…

【Qt知识】Qt窗口坐标系

Qt的窗口坐标体系遵循标准的计算机图形坐标系统规则 Qt窗口坐标体系特点 坐标原点:窗口坐标体系的原点位于窗口的左上角,即坐标(0, 0)位置。 轴方向: X轴:向右为正方向,随着X坐标值的增加,元素在窗口中从…

Honor of Kings 2024.06.03 50star (S35) AFK

Honor of Kings 2024.06.03 50star (S35) AFK 来个赛季S35总结吧,这个赛季结束以后,可能要和【魔兽世界】一样AFK了,手游来说肯定没法子和WOW相比,干啥都是有队友才好玩。 我玩的基本都是肉,爆发强的英雄,最…

重学java 57.哈希表结构存储过程

别焦虑,生活无非见招拆招 —— 24.6.3 哈希表存储数据去重复的过程: a.先比较元素的哈希值(重写hashCode),再比较内容(重写equals) b.如果哈希值不一样,证明内容不一样,存 c.如果哈希值一样,再比较内容 如果哈希值一样,内容不一样(哈希碰撞,哈希冲突),存 如果哈希值…

FASTGPT:可视化开发、运营和使用的AI原生应用

近年来,随着人工智能(AI)技术的迅猛发展,AI的应用逐渐渗透到各行各业。作为一种全新的开发模式,AI原生应用正逐步成为行业的焦点。在这方面,FASTGPT无疑是一款颇具代表性的产品。本文将详细介绍FASTGPT的设…

再说零信任

什么是零信任? 2010年,由著名研究机构Forrester的首席分析师John Kindervag最早提出了零信任(Zero Trust)的概念, 并由Google在BeyondCorp项目中率先得到了应用,很好的解决了边界安全理念难以应对的安全问题。 我们的网络无时无…

C++多线程同步

C使用多线程必须包含头文件 #include <thread> 来实现 当多个线程同事访问一个对象的时候&#xff0c;会产生数据竞争现象。 这个时候&#xff0c;就可以加锁&#xff0c;同步资源&#xff0c;解决数据竞争。 最简单就是互斥锁mutex 上代码&#xff0c;计算一个数自增到1…

3d模型批量渲图总是会跳怎么办?---模大狮模型网

在进行3D模型批量渲染时&#xff0c;有时会遇到一些问题&#xff0c;其中一个常见的问题就是渲染过程中出现跳帧或者跳图的情况。这不仅会影响到效率&#xff0c;还可能导致输出结果不符合预期。本文将介绍几种解决这一问题的方法&#xff0c;帮助读者更好地应对3D模型批量渲图…

union all 以及标量子查询执行计划

SELECT 1, (SELECT ID1 FROM TE WHERE IDA.ID2) FROM .TA A WHERE COLA X UNION ALL SELECT 1, (SELECT ID2 FROM TD WHERE IDA.ID1) FROM .TB A WHERE COLA X UNION ALL SELECT 1,COL2 AS PARENT_UUID FROM .TC a WHERE COLA X 三个union all 看着像是5个table joi…

正则表达式-是什么?规则有哪些?

正则表达式&#xff08;Regular Expression&#xff0c;常简写为regex、regexp或RE&#xff09;是一种文本模式&#xff0c;包括普通字符&#xff08;如a到z之间的字母&#xff09;和特殊字符&#xff08;称为“元字符”&#xff09;&#xff0c;用于描述、匹配一系列符合某个句…

鸿蒙Ability Kit(程序框架服务)【ExtensionAbility组件】

ExtensionAbility组件 ExtensionAbility组件是基于特定场景&#xff08;例如服务卡片、输入法等&#xff09;提供的应用组件&#xff0c;以便满足更多的使用场景。 每一个具体场景对应一个[ExtensionAbilityType]&#xff0c;开发者只能使用&#xff08;包括实现和访问&#…

跨平台,不需要下载的串口调试助手

在线串口调试助手是BBAIoT旗下的首款物联网工具&#xff0c;web端显示&#xff0c;不需要下载任何软件到电脑&#xff0c;方便快捷。 在线串口调试 链接地址&#xff1a;在线串口调试在线串口调试助手 Online serial port debugging assistanthttps://www.bbaiot.com/ 软件界…

转行要趁早?2024网络安全热门岗位大盘点

2024年 热门网络安全职位排名 TOP5 热门****程度&#xff1a; 幕后默默守护的工匠&#xff01;构建安全的网络堡垒&#xff0c;跨团队合作&#xff0c;让安全防线更加坚固。 安全架构师的工作是发现企业内潜在的 IT 和网络漏洞。他们与自己团队的其他科技专业人士合作&#x…

[FreeRTOS 基础知识] 栈

文章目录 栈的概念使用C语言实现 栈通过代码反汇编解析 栈 栈的概念 所谓的栈就是一块空间的内存&#xff0c;CPU的SP寄存器指向它&#xff0c;它可以用于函数调用&#xff0c;局部变量&#xff0c;多任务系统里保存现场。 使用C语言实现 栈 volatile int num0;int fun_b(vol…