服务端质量保证体系 (二) 流水线标准化建设
一、背景
研发流程标准化其中很重要的一环就是研发流水线的建设,它相当是一条线,规范在上面落地,同时这条线也能将 CI/CD 的各项能力串联起来,顺利执行。流水线属于中间层,流水线的标准化和模板化能够比较方便的将业务流程管理起来,将配置黑盒化,降低其使用门槛,同时对于之后的指标度量分析也会更加方面。因此对研发流程标准化中流水线建设这个环节进行总结回顾。
二、研发模式
流水线建设基于研发模式进行,不同研发模式需要的流水线及流水线上面的能力节点也不太一致。研发模式包含单主干开发流程和双主干开发流程。
单主干开发流程
1. 研发同学将开发代码 push 到分支,在代码仓库会进行一些 CI 检测,调起流水线进行 CI 能力检测、测试环境部署(可供 RD 自测 QA 测试)。
2. 测试完成后,将代码合入触发上线发布流水线,进行 CI 能力检测、测试基准环境部署、线上升级上线,将通过 CI 检测的代码自动编译进行上线。
双主干开发流程
1. 研发同学将开发代码 push 到研发主干分支调起流水线,进行 CI 能力检测、测试环境部署。
2. 将代码合入到 master 触发研发主干发布流水线,进行 CI 能力检测、测试环境部署。
3. 定时或主动触发上线发布主干流水线,进行 CI 能力检测、测试环境部署、线上升级上线。
三、流水线总览
针对于上述开发模式梳理落地以下 9 种标准化流水线模板。
自测联调阶段
本地开发分支流水线
主要用于分支开发
push 代码自动部署指定 env,测试环境
进行 RD 自测和 QA 测试
具有 CI 检测能力
研发主干流水线
具有 CI 检测能力
和发布主干流水线配合使用。
用于日常主干开发合码(非上线流水线)
部署升级阶段
紧急上线流水线
用于紧急时刻直接自动化上线
为节省上线流程时长
跳过 CI 测试能力,直接自动化部署上线
发布上线主干流水线(分段上线版)
为了减少因小流量阶段观察时长不足导致线上问题,建立此流水线
主要用于代码合码、CI 能力检测、自动上线
在小流量阶段会设置最低观察时长 x min
上线发布主干流水线(可选集群版)
为了满足部分业务上线需升级特定集群而非 default 集群的需求
主要用于代码合码、CI 能力检测、自动上线
可指定升级上线的集群,实现自定义集群上线
定时任务升级流水线
主要用定时任务的上线升级
主要包括定时任务测试环境升级、定时任务线上环境升级等过程
函数升级流水线
主要用函数的上线升级
主要包括测试环境升级、正式函数升级等过程
预览环境部署升级流水线
升级预览环境,固定代码分支及环境标签,以进行预览回归过程
配置升级流水线
支持配置自身的升级部署,并增加相关微服务的 CI 检测能力
前端升级流水线
支持前端代码的升级部署,增加相关 CI 检测能力
通过流水线的标准化,将研发流转的动作进行固化,保证每个环节都能自动化执行,将流程规范进行落地。
标准化流水线建设是建立起一条条线,每条线离不开各种各样的 CI 原子节点。只有完善的 CI 原子节点,才能让线变为珍珠。这就涉及到了 CI 原子能力建设,我们会在下篇进行交流。
版权声明: 本文为 InfoQ 作者【homber】的原创文章。
原文链接:【http://xie.infoq.cn/article/45b8f1d9128e3b543c66112fd】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论