目前市面上的Devops系统例如Jenkins、云效这类,通常都是通过Pipeline流水线来实现某项任务,但是对于业务系统的某次版本发布来说,通常涉及多种类型的任务/同一类型的多次任务,例如配置发布、路由发布、服务发布等等,这就造成了以下一些问题:
- 发布者必须熟悉每个流水线的作用和使用方法
- 发布者必须正确填写流水线的参数
- 如果有操作顺序要求,发布者还必须要确保流水线的执行顺序
因此在我们的系统中,我设计了一套基于Runbook(即版本发布操作手册)的发布系统:
解析
生成/映射
服务B任务
Build 镜像
发布配置
发布服务
服务A任务
Build 镜像
发布配置
发布服务
发布内容
发布服务A
发布服务B
Runbook
工作流执行引擎
工作流:发布服务A
工作流:发布服务B
该系统以Runbook为入口,通过结构化的Runbook,将研发线条所有人员都可以理解的发布内容,映射为一组顺序/并行性执行的流水线清单(充分利用现有的流水线能力无需重复造轮子),对于版本发布人员来说:
- 无需再手动操作流水线
- 只需确保
Runbook内容的正确性
即可全自动的完成一次版本发布。
这样的系统在我们的实践中取得了极好的效果,不过目前源码无法开放了,只能简要的