首页 > 其他分享 >DevOps生命周期的8个阶段和DevOps pipeline 详解

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

时间:2024-06-03 15:57:01浏览次数:14  
标签:pipeline 生命周期 -- 持续 DevOps 部署 详解

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

标签:pipeline,生命周期,--,持续,DevOps,部署,详解
From: https://www.cnblogs.com/ADManager/p/18229042

相关文章

  • dotnet/.NET EF(Entity Framework)详解
    原文链接:https://upimg.baike.so.com/doc/6061191-6274247.html         https://blog.csdn.net/u013733643/article/details/123473628DOTNET就是.NET,严格说是:.NETFramework框架。但为什么叫DOTNET(.NET)呢?在计算机行业DOT是DistributedObjectTechnolo......
  • DevOps后时代,构建基于价值流的平台化工程
    本文来自腾讯蓝鲸智云社区用户:CanWay平台化工程涉及双重核心意义。一方面,是类似利用IDE等工具提高工程师效率的平台化工程,如GitOps或命令行调度般便捷。然而,本文重点探讨的是基于价值流的平台化工程,尤其针对传统金融行业,关注整个协同过程的有效管理。本文重点讨论如何将CMMI(......
  • Swin-Transformer白话详解
    Swin-Transformer得益于其窗口注意力和偏移窗口注意力机制,平衡了感受野和计算效率,逐渐替代Vit成为了很多视觉网络的Backbone。下面将尽可能的清晰地解释其各个模块!参考文献nsformer网络结构详解文章目录1.SwinTransformer的创新点2.PatchPartition和LinearEmbed......
  • 【Java数据结构】详解Stack与Queue(一)
    ......
  • DevOps全面综述:从概念到实践
    这篇文章详尽介绍了DevOps的背景、核心实践、工具和技术,探讨了团队协作、文化建设及组织变革,旨在帮助企业高效实现持续交付和创新。关注作者,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕博,复旦机器人智能......
  • Content Security Policy 参数 值 详解
    例子:Content-Security-Policy:default-src'self';script-src'self'https://example.com;img-src'self'data:;style-src'self''unsafe-inline';font-src'self'https://example.com;这个CSP规......
  • 【代码+详解】算法题 : 菲波那契数列
    ❗❗❗必看:下列题我全部都使用Java语言写的,并且均可以提交成功,获得Accepted结果的.如果代码和详解看了之后,对答案有任何疑问,都可以在评论区提出来,我都会一个一个回答.❗❗❗感谢大家的支持,如果喜欢我的博客,关注点赞收藏评论一波,非常感谢!!!文章目录......
  • RabbitMQ的详解和使用
    一、什么是MQ?1、MQ的概念MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器。多用于系统之间的异步通信。下面用图来理解异步通信,并阐明与同步通信的区别。同步通信:甲乙两人面对面交流,你一句我一句必须同步进行,两人除此之外不做任何事情 异步通信:异步通信......
  • AVL 树详解
    1AVL树的概念二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明了一种解决上述问题的方法:当向二叉搜索树中插入新结点后,......
  • JS-11-es6常用知识-Promise(6K字超级详解!!)
    文章目录1回调地狱2 Promise函数基本用法3 Promise函数实现多层回调 4Promise传参5 Promise错误处理5.1两种错误处理方式5.2catch捕获错误5.3多层异步种使用catch6使用Promise的优势1回调地狱1)为什么要有promise?  解决(回调地狱)的问题 2)什......