首页 > 其他分享 >你以为搞个流水线每天跑,团队就在使用CI/CD实践了?

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

时间:2023-06-09 21:44:05浏览次数:28  
标签:CI 场景 部署 代码 CD 搞个 构建 流水线 团队

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

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

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

流水线设计原则

1. 确定好变量

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

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

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

3. 一次构建,多次部署

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

4. 步骤标准化/原子化

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

image.png
5. 快速失败

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

从零开始设计流水线

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

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

image.png

流水线的分层

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

相关文章

  • Python使用scipy进行多项式计算与符号计算
    本文代码主要演示如何使用poly1d进行多项式计算和符号计算。fromscipyimport>>>p1=poly1d([1,2,3,4])#输出结果中,第一行的数字为第二行对应位置项中x的指数>>>print(p1)321x+2x+3x+4#等价于p2=(x-1)(x-2)(x-3)(x-4)>>>p2=poly1d([1,2,3......
  • 帮您了解CDN节点如何做到访问加速与安全防护
    本文分享自天翼云开发者社区《帮您了解CDN节点如何做到访问加速与安全防护》,作者:尹****荷 网站业务痛点在当前网站快速发展的背景下,网站业务突增往往伴随着一系列网络安全隐患。主要会有以下痛点:1.高并发压力大:网站在业务突增中,会带来高并发的问题,可能会导致服务器资源耗尽......
  • The specified DSN contains an architecture mismatch between the Driver and Appli
    ThespecifiedDSNcontainsanarchitecturemismatchbetweentheDriverandApplication如果希望DSN使用32位的驱动,应该使用c:\windows\sysWOW64\odbcad32.exe//z2013-01-1612:45:[email protected][T21,L319,R11,V383]1.Icreatedsystemdsninodbc32......
  • 类之OCP(Open Closed Principle):开闭原则
    //z2012-4-1715:31:13PMIS21201.OCP是什么?OCP:OPENCLOSEDPRINCIPLE对扩展开放,对修改关闭Softwareentitiesshouldbeopenforextension,butclosedformodification//z2012-4-1715:54:58PMIS21201.1扩展通过继承、覆写......
  • 华为认证 | HCIE-Big Data-Data Mining 认证即将升级新版本!
    华为认证HCIE-BigData-DataMiningV3.0(中文版)预计将于2023年6月30日正式对外发布。为了帮助您做好学习、培训和考试计划,现进行预发布通知,请您关注。01发布概述基于“平台+生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系。包含ICT基础设施认......
  • BigDecimal的用法
    add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象。subtract(BigDecimal)BigDecimal对象中的值相减,然后返回这个对象。multiply(BigDecimal)BigDecimal对象中的值相乘,然后返回这个对象。divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。abs()BigDecima......
  • 用native2ascii.exe实现国际化
    用native2ascii.exe实现国际化用javaSDK/bin目录下的native2ascii.exe把.peoperties文件中的中文转换成unicode字符,实现国际化需要用到javaSDK\\bin目录下的native2ascii.exe程序,把你写的文本文件转成unicode字符即可, native2ascii - Native-to-ASCII Converter将一个文件......
  • 51存储器块清零和二进制数转换成二十进制(BCD)码
    一、实验目的1、了解单片机实验开发板电路原理图2、掌握KEIL软件开发单片机C51程序的流程3、掌握单片机开发程序的烧录方法和流程二、实验内容1、完成单片机开发相关必备软件的安装2、学习单片机开发板套件的实验原理图3、编写、下载及实现第一个单片机程序(点亮一个LED灯)三......
  • 【刨根问底】BigDecimal 案例和部分源码分析
    本文总以下几个部分:前言Bigdecimal定义Bigdecimal创建方式Bigdecimal部分源码分析Bigdecimal坑Bigdecimal使用建议Bigdecimal工具类前言在咱们开发过程中很容易遇到计算的问题,普通计算其实也还好使用int、long、double、float基本上能应付。但是如果涉及到数据类型转后在处理等......
  • 【华为HCIP | 高级网络工程师】刷题日记(9)
    个人名片:......