子流程调用-复杂运维场景下的流程编排

2021-08-04 10:01:21 浏览数 (1)

导语

子流程调用,是标准运维新的一个功能。子流程调用功能赋予了运维人员,更高维度的流程编排能力。

标准运维是一套通过成熟稳定的任务调度引擎,把多系统间的工作整合到一个流程,助力运维实现跨系统调度自动化的 SaaS 应用。标准运维拥有可视化的图形界面,运维人员可通过它实现任务流程编排和执行,包括发布、变更、开区、扩缩容等执行类操作场景。

1.png1.png

标准运维将蓝鲸各基础平台、和企业内第三方系统的能力,以插件节点的形式,给予运维人员编排的能力。运维人员通过梳理实际发布变更的场景步骤,将运维操作步骤规范化、标准化,从而进行流程编排,形成一个贴切实际场景的、可复用的、一键式的自动化任务流。

子流程调用的介绍

蓝鲸社区版6.0、企业版3.0中,标准运维推出了“子流程调用”的新功能。该功能允许用户在当前流程(父流程)中,引用其他流程(即子流程),从而实现更高一级维度的流程编排能力。

2.png2.png

当我们将某一类场景,编排为一个具有相对完整功能的流程后,这个标准化后的流程,便具有了重复使用的价值。除了单独执行这个流程任务,标准运维提供了在父流程中,调用该流程的方式,使其成为子流程被引用,去实现更高纬度的流程编排能力。

3.png3.png

子流程调用的优势

子流程调用功能,可以带给运维人员这些便利:

1、维护单一流程内容,避免多源维护不同步。
4.png4.png

当运维人员需要在多个任务流程中,均需要编排相同的步骤时,为了一键式的自动化执行,可能多个任务中,均会有相同功能的一些步骤。当这些功能需要进行修改时,我们需要对涉及所有这些步骤的流程,均进行修改动作。如果采用子流程功能,我们只用维护唯一一份流程内容,子流程的流程更新,父流程引用时即为最新内容。

2、精简流程编排时的全局变量,只关注子流程中需要由外输出的变量。
5.png5.png

在一个任务流程中,包含有需要用户输入的全局变量,也包含流程自身各步骤中“输入输出参数传递“所需要的全局变量。子流程可以选择性的配置,将需要对外输出的全局变量,标记为“输出”的全局变量。此时,在该子流程被父流程引用的时候,标记为”输出“的全局变量,会作为子流程的输出参数,供转为父流程的全局变量后,为后续步骤编排中引用。

3、解耦不同场景功能流程,提高多人协作的能力
6.png6.png

子流程功能的出现,能够解耦不同场景下的功能流程。让专业团队专注于自身运维流程的自动化建设上,例如:SA团队可以专注于机器系统初始化相应的子流程建设,DBA团队可以专注于DB发布变更相关的子流程建设,前端模块的开发和运维人员可以专注于client端发布变更场景的子流程建设,后端模块的开发和运维人员可以专注于服务端的备份发布场景的子流程建设……

最终应用运维按实际发布场景,在更高的维度上,进行运维操作的自动化编排。

如何去实现一个子流程调用

子流程的调用配置起来非常简单,仅需要两步即可实现。

1、在子流程中标记“输出全局变量”。

通常情况下,我们在一个流程中,会使用很多的全局变量,去实现不同步骤间输入输出参数传递的复杂逻辑。其中可能仅有少数几个全局变量,是需要暴露出去,供父流程后续步骤使用。仅将这几个全局变量标记为”输出全局变量“,能够帮助我们精简全局变量数量,简化父流程的编排。

如下图所示,在子流程中全局变量中,打开“输出”开关,即标记为”输出全局变量“,其余全局变量不会被引入父流程中。

7.png7.png
2、在父流程中引用该子流程。

在父流程中,拖拽左侧的”子流程节点框“到画布中,在”流程列表“中选择要引用的子流程名,即完成引用。

跟其他普通节点框用法一样,用户可以对该节点进行输入输出配置、移动连线、并行串行网关配置等各种编排操作。

8.png8.png

在父流程中,打开了“输出”开关的全局变量,会在子流程节点框的输出参数中看到。可以将其转为父流程的全局变量,在后续步骤中作为参数使用。

9.png9.png

实际子流程引用的场景举例

1、机器初始化的子流程调用。

通常情况下,主机交付给运维人员后,均需要对主机进行一系列的初始化操作,例如修改主机名、配置dns、修改默认密码、配置yum源、安装指定基础软件python等操作。将这类步骤编排为机器初始化子流程,供一键扩容、一键游戏开新区等功能调用。

10.png10.png
2、备份流程的子流程调用。

服务端文件发布的必备操作就是备份待发布的文件。将备份流程作为子流程,可以在其他任何其他发布流程中引用,实现备份操作。

11.png11.png
3、业务模块发布的前后端的子流程调用。

通常业务模块会分成不同的多个模块,例如前端模块和后端模块的划分。前端发布和后端发布,运维人员会编排出两个流程,每次发布相应模块时,独立执行任务。

但是在每月的大版本发布时,需要对前端、后端同时进行发布,还需要包含一些版本文件准备的步骤。此时,运维人员编排出的这个发布流程,以子流程的形式,调用前端和后端发布任务,从而达到大版本发布的自动化。

12.png12.png

体验地址

1、开源共建

标准运维 SaaS 已经开源,请您访问github页面蓝鲸智云标准运维(SOPS):https://github.com/Tencent/bk-sops ,点击star按钮,点亮小星星,同时也欢迎您提交 issue 和 pr,我们非常感谢您的支持和关注。

13.png13.png
2、下载体验

子流程调用的新功能,可以前往蓝鲸智云官网(https://bk.tencent.com/download/ ),下载社区版6.0版本基础包,安装标准运维SaaS,进行体验。

相关阅读

玩转任务编排-灵活的应用层流程引擎

0 人点赞