Bootstrap

服务端质量保证体系(二) 流水线标准化建设

一、背景

    研发流程标准化其中很重要的一环就是研发流水线的建设,它相当是一条线,规范在上面落地,同时这条线也能将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原子能力建设,我们会在下篇进行交流。