你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

这篇具有很好参考价值的文章主要介绍了你以为搞个流水线每天跑,团队就在使用CI/CD实践了?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在实践中,很多团队对于DevOps 流水线没有很透彻的理解,要不就创建一大堆流水线,要不就一个流水线通吃。实际上,流水线的设计和写代码一样,需要基于“业务场景”进行一定的设计编排,特别是很多通过“开源工具”搭建的流水线,更需要如此(商业的一体化平台大部分已经把设计思想融入自己产品里了)。

  • 流水线的设计与分支策略有关
  • 流水线的设计与研发活动有关

清晰的代码结构,标准的环境配置,原子化的流水线任务编排,再加上团队的协作纪律,和持续优化的动作,才是真正的践行CI/CD实践

流水线设计原则

1. 确定好变量

  • 哪些是构建/部署需要变化的,比如构建参数,代码地址,分支名称,安装版本,部署机器IP等,控制变化的,保证任务的可复制性,不要写很多hardcode进去

2. 流水线变量/命名的规范化

  • 标准化的命名,有助于快速复制;有意义的流水线命名,有助于团队新成员快速了解

3. 一次构建,多次部署

  • 一次构建,多次部署(多套环境配置+多套构建版本标签);杜绝相同代码重复打包
  • 相似技术栈/产品形态具备共性,通过以上原则可以抽取复用脚本,良好的设计有助于后续的可维护性!

4. 步骤标准化/原子化

  • 比如docker build/push, helm build/deploy, Maven构建等动作标准化,避免重复性写各种脚本逻辑
  • 根据业务场景组装,例如. 提测场景,每日构建场景,回归测试场景

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?
5. 快速失败

  • 尽可能把不稳定的,耗时短的步骤 放在流水线的最前面,如果把一个稳定的步骤放在前面,并且耗时几十分钟,后面的某个步骤挂了,反馈周期就会变长

从零开始设计流水线

流水线分步骤实施, 从 “点” 到 “线” 结合业务需要串起来,适合自己团队协作开发节奏的流水线才是最好的。

  1. 价值流进行建模并创建简单的可工作流程
  2. 将 构建 和 部署 流程自动化
  3. 将 单元测试和 代码分析 自动化
  4. 将 验收测试 自动化
  5. 将 发布 自动化

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

流水线的分层

由于产品本身的形态不同,负责研发的团队人员组成不同,代码的版本管理分支策略不同,使用的部署流水线形式也会各不相同,所以基于实际业务场景设计流水线是团队工程实践成熟的重要标志

  • 🔗 DevOps流水线设计的最佳实践

1. 提交构建流水线(个人级)

适用场景:每名研发工程师都创建了自己专属的流水线(一般对应个人的开发分支),用于个人在未推送代码到团队仓库之前的快速质量反馈。
注意:个人流水线并不会部署到 团队共同拥有的环境中,而是仅覆盖个人开发环节。如图所示,虚线步骤非必选

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

2. 集成验收流水线(团队级)

适用场景:每个团队都根据代码仓库(master/release/trunk)分支,创建产品专属的流水线,部署到 团队共同拥有的环境中e.g. dev)。
注意:如图所示,虚线步骤非必选,根据情况可通过 启动参数true/flase 跳过执行,自动化测试仅限于保证基本功能的用例。

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

3. 部署测试流水线(团队级)

适用场景:每个团队的测试工程师都需要专门针对提测版本的自动化部署/测试流水线,部署到团队共同拥有的环境中(e.g. test).
注意:如图所示,该条流水线的起点不是代码,而是提测的特定版本安装包;虚线步骤非必选,根据情况可通过 启动参数true/flase 跳过执行 或 裁剪。

你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

4. 多组件集成流水线

适用场景:如果一个产品由多个组件构建而成,每个组件均有独自的代码仓库,并且每个组件由一个单独的团队负责开发与维护,那么,整个产品 的部署流水线的设计通常如下图所示。 集成部署流水线的集成打包阶段将自动从企业软件包库中获取每个组件最近成功的软件包,对其进行产品集成打包
你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

5. 单功能流水线

适用场景:适用于和代码变更无关的场景,不存在上面步骤复杂的编排 (也可通过上述流水线的 启动参数进行条件控制,跳过一些步骤)

  • 针对某个环境的漏洞扫描
  • 针对某个已部署环境的自动化测试
  • 定时清理任务
  • ...

6. 全功能(持续交付)流水线

适用场景:需求、代码构建、测试、部署环境内嵌自动化能力,每次提交都触发完整流水线,中间通过人工审批层次卡点,从dev环境,test环境,stage环境一直到 prod环境。 常适用于快速发布的 PASS/SASS服务,对团队各项能力和流程制度要求较高,支持快速发布(策略)和快速回滚(策略)
你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

流水线运转全景图

团队研发工程师每人每天都会提交一次。因此,流水线每天都会启动多次。当然并不是每次提交的变更都会走到最后的“上传发布” 。 也不是每次提交都会走到UAT 部署,因为开发人员并不是完成一个功能需求后才提交代码,而是只要做完一个开发任务,就可以提交。每个功能可能由 多个开发任务组成,研发工程师需要确保即使提交了功能尚未开发完成的代码,也不会影响已开发完成的那些功能。
制品经过一个个质量卡点,经历各种门禁验证,最终交付给客户 可以工作的软件
你以为搞个流水线每天跑,团队就在使用CI/CD实践了?文章来源地址https://www.toymoban.com/news/detail-477282.html


你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

到了这里,关于你以为搞个流水线每天跑,团队就在使用CI/CD实践了?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins 流水线多种使用场景详解(Jenkinsfile,多环境部署,多分支部署)

    Jenkins是目前大多数中小公司使用的CI、CD工具,其中Jenkins的任务又分普通任务和流水线任务,普通任务的构建和部署在我之前的一篇文章中写过使用教程# 基于 Docker 安装 Jenkins,并配置使用 Jenkins 打包 Node 前后端服务部署到远程服务器,但其中流水线任务可实现我们更复杂的

    2024年02月07日
    浏览(45)
  • 如何在Amazon EMR上使用RAPIDS加速Apache Spark流水线

    : [Amazon Web Services re:Invent 2023, Rapids Spark, Accelerate Apache Spark Pipelines, Amazon Emr, Rapids, Nvidia, Gpu Acceleration] 本文字数: 1000, 阅读完需: 5 分钟 如视频不能正常播放,请前往bilibili观看本视频。 https://www.bilibili.com/video/BV1uw41187VA RAPIDS加速器可以为Amazon EMR上的Apache Spark数据处理流

    2024年02月04日
    浏览(48)
  • (十四)devops持续集成开发——jenkins流水线使用pipeline方式发布项目

    本节内容我们使用另外一种方式pipeline实现项目的流水线部署发布,Jenkins Pipeline是一种允许以代码方式定义持续集成和持续交付流水线的工具。通过Jenkins Pipeline,可以将整个项目的构建、测试和部署过程以脚本的形式写入Jenkinsfile中,实现对整个流程的可视化管理和控制。在

    2024年02月21日
    浏览(59)
  • 如何使用CodeceptJS、Playwright和GitHub Actions构建端到端测试流水线

    介绍 端到端测试是软件开发的一个重要方面,因为它确保系统的所有组件都能正确运行。CodeceptJS是一个高效且强大的端到端自动化框架,与Playwright 结合使用时,它成为自动化Web、移动甚至桌面 (Electron.js) 应用程序比较好用的工具。 在本文中,作者探讨如何使用 CodeceptJS、

    2024年02月05日
    浏览(75)
  • 使用 Jenkins、Gitlab、Harbor、Helm、k8s 来实现流水线作业

    使用 Jenkins、Gitlab、Harbor、Helm、Kubernetes 来实现一个完整的持续集成和持续部署的流水线作业 开发人员提交代码到 Gitlab 代码仓库 通过 Gitlab 配置的 Jenkins Webhook 触发 Pipeline 自动构建 Jenkins 触发构建构建任务,根据 Pipeline 脚本定义分步骤构建 先进行代码静态分析,单元测试

    2024年04月27日
    浏览(43)
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用

    本节内容我们主要介绍在Jenkins流水线中,其构建过程中的一些构建策略的配置,例如通过远程http构建、定时任务构建、轮询SCM构建、参数化构建、Git hook钩子触发构建等,可根据不同的需求完成不同构建策略的配置。 - 构建策略说明: - 测试验证 - 构建说明 - 测试验证 - 配置

    2024年02月21日
    浏览(94)
  • 8位加法器的流水线设计(2级流水、四级流水)

    思考:流水线的设计是为了提高频率,在一个耗时比较长的组合逻辑中,加入寄存器, 可以将这个较长的组合逻辑分裂几份,从而提升主频,缺点是增加了寄存器的资源。 二级流水线的加法器的设计思想如下: 在第一个周期完成低四位的加法计算,使用一个四位加法器即可

    2024年02月11日
    浏览(46)
  • 云效-流水线(基本教程)

    阿里云效地址: https://accountid-devops.aliyun.com/ 代码在码云, 服务器在腾讯云, 代码是个聚合代码 1. 选择适合自己的模板 2. 创建码云链接 3. 选择代码仓库, 分支即可下一步 4. 部署,主机部署 5. 保存运行(获取打包路径) 6. 完善部署命令 按自己的需求进行填写, 包括打包成docker镜像

    2024年02月09日
    浏览(55)
  • jenkins流水线

    1、 二、 三、 四、 五、 六、  

    2024年02月05日
    浏览(56)
  • UnityShader(一)渲染流水线

    目录 一、什么是渲染流水线 二、渲染流程的三个概念性阶段 1.应用阶段(Application Stage) 一、准备好场景数据 二、粗粒度剔除 三、设置渲染状态 2.几何阶段(Geometry Stage) 3.光栅化阶段(Rasterizer Stage) 三、CPU和GPU的通信 1.把数据加载到显存中 2.设置渲染状态 3.调用Draw Ca

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包