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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

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

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

流水线设计原则

1. 确定好变量

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

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

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

3. 一次构建,多次部署

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

4. 步骤标准化/原子化

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


5. 快速失败

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

从零开始设计流水线
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6