DevOps 教程 (4) - CI/CD 整合

在本第四章的"DevOps 教程"系列中,我们将介绍CI/CD整合的概念和实践。我们会介绍DevOps所带来的好处,包括团队协作、开发效率和产品交付速度的显著提升。

我们还将讨论在DevOps中的不同角色,并理解每个角色在持续集成和持续交付中的关键作用。通过了解这些角色,我们将更好地理解如何构建一个高效的DevOps团队,并实现更好的研发效能。

最后,我们将介绍在生产环境中常见闭环流水线的流程。

 本系列将探讨 通过 OCI DevOps Services 自动化构建OKE的整个流程,介绍它们的流程和作用:

  • 基础架构流程 && OCI 代码仓库使用
  • Build Pipeline (CI)
  • Deployment Pipeline (CD)
  • 整合 CI/CD

通过本系列的文章,您将了解如何在 OCI DevOps Services 中搭建自动化流水线,提高应用开发和交付的效率,同时充分发挥 OCI 云原生服务的作用。

每一次流水线的执行,都是一个完整的业务闭环,确保每次上线都是有迹可循且及时反馈的过程。

1 什么是 DevOps

维基百科定义: DevOps是一套将软件开发和信息技术操作相结合的实践,旨在缩短系统开发生命周期,打破开发与维护之间的壁垒,从而提供透明且高质量的交付过程。

2 DevOps带来什么

1. 变更可控

在DevOps实践中,变更的可控性是关键因素之一。通过使用版本控制系统,团队可以追踪每次变更,确保代码更改得到透明、可控的管理。同时,通过自动化测试和集成,确保每次变更都是对某个业务请求的响应,从而提高变更的质量和可追溯性。

2. 任务自助

可视化流水线设计与配置使得任务自助成为可能。团队成员可以通过简单的界面设计和配置流水线,从而降低了操作的技术门槛。流水线的持续运行保障了安全、方便和快捷的交付流程,同时也大大提高了效率,减少了人工失误的可能性,使工程师能够更专注于创新和问题解决。

3. 内建质量

强制的代码扫描是内建质量的一部分,它通过自动化工具来检测潜在的代码质量问题,降低技术债务带来的风险。通过在流水线中嵌入质量门禁,可以在每个阶段都强制执行质量控制,从而确保交付的产品具有高质量的代码。

4. 质量改进

质量改进不仅仅是发现问题,更是通过持续的度量和分析,找到问题的根本原因并加以改进。将质量门禁嵌入流水线,可以在每个变更点上执行质量检查,从而及时发现和解决问题,降低技术债务。通过实施大屏看板,团队可以实时监控流水线的运行状况和业务指标。建立度量指标持续修改机制,能够根据团队的需求灵活调整度量标准,从而更好地适应业务的变化。这有助于推动研发效率和交付质量的持续提升,同时也为全团队提供了一个共享的可视化工具,促进更好的协作和决策。

3 角色收益

1 产品经理

  • 更快的交付速度: DevOps实践使产品经理能够更快地推出新功能和改进,加速产品交付周期。
  • 更频繁的变更速度: 快速迭代和部署意味着产品经理可以更频繁地进行变更,满足市场需求和客户反馈。

2 开发人员

  • 采用自动化减少重复性工作: 自动化流水线可以自动执行重复性和繁琐的任务,使开发人员从手动工作中解放出来。
  • 更多时间的开发创新: 减少手动工作和快速的交付周期为开发人员提供了更多时间专注于创新和新功能的开发。
  • 更高的代码质量: 强制的代码扫描和内建质量控制确保了高质量的代码交付。

3 运维人员

  • 更快的修复速度: 快速的部署和自动化流程使运维人员能够更迅速地响应和修复问题。
  • 更低的故障率: 自动化测试和持续集成确保了高质量的代码,从而减少了潜在故障的发生率。
  • 管理复杂度下降: 自动化流程和一致性的环境配置减少了系统和应用的管理复杂度。

4 测试人员

  • 可度量的指标增进了解决问题的速率: 持续集成和度量指标使测试人员能够更迅速地定位和解决问题。
  • 更快的发现问题,避免线上问题: 自动化测试和持续集成确保了更早、更频繁的问题发现,从而降低了线上问题的风险。

5 客户

  • 更好的体验: 更快的交付和迭代周期意味着客户可以更快地体验到新功能和改进,提升整体体验。
  • 更快的迭代: 快速的交付和反馈循环使客户能够更快地享受到产品的不断改进。

4 研发效能大屏

1 语言栈统计

  • 目的: 统计项目中使用的编程语言及其比例,帮助团队了解项目的技术栈分布,为技术决策提供数据支持;

2 代码提交量

  • 目的: 跟踪代码提交的数量,帮助团队了解开发活跃度和工作进展;

3 代码特征统计

  • 目的: 分析代码质量和结构,帮助团队了解项目的代码健康状况。通过各种提交规则帮忙我们更好的了解代码当前特性,如 feat, fix, perf 等前缀特性;

4 开发者提交量统计

  • 目的: 跟踪团队中各个开发者的贡献度,了解团队成员的工作情况。

5 开发者提交部门

  • 目的: 将开发者的提交按照部门进行分类,帮助团队了解各个部门的工作分布和贡献。

5 常见闭环流水线

每一次流水线的执行,都是一个完整的业务闭环,确保每次上线都是有迹可循且及时反馈的过程。

1 集成工单

  • 创建工单: 针对每一次上线,通过集成工单(JIRA, 禅道..)系统创建相应的工单,记录上线的目的、内容和计划。
  • 工单分配: 将工单分配给负责的团队或成员,明确责任和任务。

2 邮件通知

  • 通知流程: 建立邮件,微信或企业通讯通知流程,确保关键的上线信息能够迅速、准确地传达给相关团队成员。

3 公司业务标准

  • 遵循标准: 每次上线都应符合公司的业务标准和最佳实践,确保代码、功能和交付流程符合公司的质量和安全标准。
  • 持续改进(CI): 业务标准应当是一个持续改进的框架,通过每次上线的经验教训,不断更新和优化标准。

4 业务闭环

  • 追踪上线过程: 利用集成的工单,通知和DevOps系统追踪上线过程,确保每个阶段的任务都得到完成。

5 及时反馈和工单闭环

  • 监控和报警: 配置监控系统,及时发现潜在问题并触发报警,确保对问题的迅速响应。
  • 工单闭环: 任何上线引起的问题都应该生成新的工单,确保问题被记录、分析和解决,形成工单的完整闭环。

6 总结

这个系列的四次分享为您介绍了Oracle Cloud Infrastructure上利用OCI DevOps Services构建自动化流水线的关键步骤。从构建基础架构、使用OCI代码仓库,到创建自动化构建和部署流水线,再到CI/CD的整合,系列内容提供了直接可操作的指南。

关于推进运维产品的个人观点:

推进运维产品在一些公司较为困难,主要因为运维产品更倾向于以工具的形态存在,而非完整的产品。此外,对于规模较小的团队,构建和落地运维产品需要更大的决心和高水平的运维能力。因此,对于有将运维产品化的运维,建议寻找更大更标准的运维团队…

🚀 炸鸡物料库 🚀

🔍 内容定位: IT技术领域,云计算、云原生、DevOps 和 AI 等相关的技术资讯、实践和经验分享。面向开发、系统和云计算,提供实用的技术内容。

🎯 目标受众: 面向开发者、系统管理员和云计算从业者,提供实用的技术内容。

🗓️ 更新频率:每周更新,每次分享都为您带来有价值的技术内容。

🤝 互动与反馈: 鼓励读者留言、评论,有问题随时提问,我们将积极互动并提供帮助。

💌 订阅方式: 扫描二维码或搜索“炸鸡物料库”关注,不错过每一篇精彩内容。

🌐 合作与分享: 如果您有技术分享或合作计划,欢迎联系我们,共同成长!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微调实操一: 增量预训练(Pretraining)

1、前言 《微调入门篇:大模型微调的理论学习》我们对大模型微调理论有了基本了解,这篇结合我们现实中常见的场景,进行大模型微调实操部分的了解和学习,之前我有写过类似的文章《实践篇:大模型微调增量预训练实践(二)》利用的MedicalGPT的源码在colab进行操作, 由于MedicalGPT代…

浅压缩、深压缩、双引擎、计算机屏幕编码……何去何从?

专业视听领域尤其显示控制和坐席控制领域,最近几年最激动人心的技术,莫过于分布式了。 分布式从推出之日就备受关注:担心稳定性的,质疑同步性能的,怀疑画面质量的…… 诚然,我们在此前见多了带着马赛克的…

【C++】类和对象1:类的定义、访问限定符、作用域及对象大小

前言 本文主要是简单的介绍一下类是什么、如何使用 类的定义 class className { // 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面…

智慧文旅:驱动文化与旅游融合发展的新动力

随着科技的快速发展和人们生活水平的提高,文化和旅游的融合成为了时代发展的必然趋势。智慧文旅作为这一趋势的引领者,通过先进的信息技术手段,推动文化与旅游的深度融合,为产业的发展注入新的活力。本文将深入探讨智慧文旅如何成…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏9(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言回收物品素材绘制UI代码控制垃圾桶回收功能效果 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇中,我们将…

低成本高效益,电子画册才是品牌的重要选择

​随着互联网的普及和数字化技术的进步,电子画册已成为许多品牌的重要选择。与传统印刷画册相比,电子画册具有低成本、高效益的优点,成为品牌宣传的新趋势。 具体来说,电子画册可以通过在线平台或移动设备轻松查看,无需…

logback自定义生成DB日志(java环境)

目的: 未来在生成日志写入数据库中加一个特殊的字段,官方老版本提供的DBAppender无法实现,并且好巧不巧,在新版本这个实现也被删除了,所以重写一个实现。 1. 安装依赖 安装logback maven依赖 注意: lo…

数据结构——实验01-线性表的链式存储和操作

一、实验内容 二、算法思想与算法实现 1、解题思想 (1)逆序创建链表La就是使用头插法创建一个链表,所谓头插法就是在创建链表时始终将新元素插入到头结点之后,而正序创建链表Lb就是使用尾插法创建一个链表,所谓尾插法…

[高阶·产品经理]业务建模和需求高阶2月26-3月1日晚8点

等级 高阶 介绍 软件开发中,需求是解决“系统怎样好卖”的问题,设计是解决“降低开发成本”的问题。 本训练聚焦第一个方面,在点上强化业务建模和需求的技能。每期的教材都会根据当期学员所整理的学习《软件方法》的过程中以及工作中碰到的…

conda虚拟环境基础

【一文搞定最新版Anaconda】Win11 安装 Anaconda(2023.9)详解(不删除旧版情况下下载、安装、注册、登录、设置环境变量、迁移旧环境、配置修改换源等)连接Pycharm_win11安装anaconda-CSDN博客 conda命令大全(create/in…

产品经理必备知识——API接口(获取电商商品订单数据API)

前言 在古代,我们的传输信息的方式有很多,比如写信、飞鸽传书,以及在战争中使用的烽烟,才有了著名的烽火戏诸侯,但这些方式传输信息的效率终究还是无法满足高速发展的社会需要。如今万物互联的时代,我通过…

网络安全之漏洞扫描

漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。这些缺陷、错误或不合理之处可能被有意或无意地利用,从而对一个组织的资产或运行造成不利影响,如信息系统被攻击或控制…

关于node.js奇数版本不稳定 将11.x.x升级至16.x.x不成功的一系列问题(一)

据说vue2用16稳定一些 vue3用18好一点(但之前我vue3用的16.18.1也可以) 为维护之前的老项目 先搞定node版本切换 下载nvm node版本管理工具 https://github.com/coreybutler/nvm-windows/releases 用这个nvm-setup.zip安装包 安之前最好先将之前的nod…

基于WordPress开发微信小程序2:决定开发一个wordpress主题

上一篇:基于WordPress开发微信小程序1:搭建Wordpress-CSDN博客 很快发现一个问题,如果使用别人的主题模板,多多少少存在麻烦,所以一咬牙,决定自己开发一个主题模板,并且开源在gitee上&#xff…

计算机网络自顶向下Wireshark labs-HTTP

我直接翻译并在题目下面直接下我的答案了。 1.基本HTTP GET/response交互 我们开始探索HTTP,方法是下载一个非常简单的HTML文件 非常短,并且不包含嵌入的对象。执行以下操作: 启动您的浏览器。启动Wireshark数据包嗅探器,如Wir…

2024年美国大学生数学建模竞赛(E题)财产保险建模|MCDA/随机森林建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长,就读于上海交通大学,截至目前已经帮500人完成了建模与思路的构建的处理了~ 本文运用利用时间序列和强化学习结合DQN算法,解决保险业可持续性问题;采用MCDA和随机森林,应对地产业保险挑战&…

电脑怎么录屏?打造专业级视频内容!

随着科技的进步,电脑已经深入到我们的日常生活和工作中。而在这个数字时代,录制屏幕内容变得日益重要。无论是制作教程、分享游戏技巧,还是记录重要的演示,录屏都是一个不可或缺的功能。可是电脑怎么录屏呢?本文将深入…

Cmake语法学习3:语法

1.双引号 1.1 命令参数 1)介绍 命令中多个参数之间使用空格进行分隔,而 cmake 会将双引号引起来的内容作为一个整体,当它当成一个参数,假如你的参数中有空格(空格是参数的一部分),那么就可以使…

国自然结题报告为什么不能下载?如何解决

一直以来,国自然的结题报告都不是只能在线查看,这给很多科研人员带来一些不方便,因为在线查看的话,受限于网络,必须有网的时候才能看,并且官方网站的响应比较慢,想快速翻页,基本不可…

【Java程序设计】【C00240】基于Springboot的班级综合测评管理系统(有论文)

基于Springboot的班级综合测评管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的班级综合测评管理系统 本系统分为学生功能模块、管理员功能模块以及教师功能模块。 管理员功能模块:管理员功能…