System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种流水线引擎实现方法及装置制造方法及图纸_技高网

一种流水线引擎实现方法及装置制造方法及图纸

技术编号:40330378 阅读:9 留言:0更新日期:2024-02-09 14:22
本发明专利技术提供了一种流水线引擎实现方法及装置,其中,该方法包括:接收流水线执行请求,并根据流水线执行请求获取预先存储的流水线配置文件;根据流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生;在运行环境为云原生的情况下,根据流水线配置文件生成与任务对应的任务容器镜像,并通过容器编排工具执行任务容器镜像;在运行环境为非云原生的情况下,根据流水线配置文件生成与任务对应的任务指令,并通过执行机执行任务指令。通过本发明专利技术实施例,可以同时适配云上和云下两种执行环境,进而解决了相关技术中流水线配置无法同时适用云上云下两种架构,通用性较差问题,提高了流水线配置和部署效率。

【技术实现步骤摘要】

本专利技术涉及持续集成领域,具体而言,涉及一种流水线引擎实现方法及装置


技术介绍

1、随着云原生技术的不断发展,云计算平台具备扩展性强、成本效益低、安全性高等多重优势,应用上云也是大势所趋,持续集成平台需要支持云上云下两种架构并存场景,以提高开发效率和企业竞争力。

2、相关技术中针对不同系统、不同业务需求,通常采用流水线即代码(pipeline ascode,简称pac)的思想来定制流水线,流水线即代码是一种将持续集成和交付流程以代码的形式进行定义和管理的方法,通常是基于领域特定语言(domain specific language,简称dsl)定制化生成的,如采用主流的持续集成工具jenkins,需要编写jenkinfile来实现。另外,定制化流水线无法同时适用云上云下两种架构,需要针对云上云下两种架构的环境要求分别进行dsl配置,配置过程较为复杂,开发人员需要掌握一定的编码能力,学习成本较高。

3、针对相关技术中的上述问题,尚未提出解决方案。


技术实现思路

1、本专利技术实施例提供了一种流水线引擎实现方法及装置,以至少解决相关技术中流水线配置无法同时适用云上云下两种架构,通用性较差问题。

2、根据本专利技术的一个实施例,提供了一种流水线引擎实现方法,包括:

3、接收流水线执行请求,并根据所述流水线执行请求获取预先存储的流水线配置文件;

4、根据所述流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生;

5、在所述运行环境为云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务容器镜像,并通过容器编排工具执行所述任务容器镜像;

6、在所述运行环境为非云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务指令,并通过执行机执行所述任务指令。

7、可选地,在接收流水线执行请求之前,所述方法还包括:

8、获取用户基于图形化操作界面配置的流水线信息;

9、将所述流水线信息转换成预设语言格式的流水线配置文件;

10、存储所述流水线配置文件。

11、可选地,所述流水线信息包括:所述任务的依赖关系、所述任务的任务信息、步骤的执行顺序、所述步骤的插件配置信息,其中,每一条流水线由至少一个所述任务组成,每个所述任务由至少一个所述步骤组成。

12、可选地,将所述流水线信息转换成预设语言格式的流水线配置文件,包括:

13、根据预设的容器化封装规则和所述插件配置信息将每个所述步骤封装成所述预设语言格式的步骤脚本;

14、根据所述执行顺序组合所述步骤脚本,并根据所述容器化封装规则、所述任务信息以及所述依赖关系将每个所述任务封装成所述预设语言格式的任务脚本,其中,每个所述任务脚本包含至少一个所述步骤脚本;

15、组合所述任务脚本得到所述流水线配置文件。

16、可选地,根据所述流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生,包括:

17、解析所述流水线配置文件得到流水线中每个任务的云原生字段;

18、根据所述云原生字段判断对应任务的运行环境是否为云原生。

19、可选地,所述任务容器镜像包括初始化容器和普通容器,其中,所述初始化容器包括任务初始容器镜像和至少一个步骤执行容器镜像,所述普通容器包括任务结束容器镜像。

20、可选地,在所述运行环境为云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务容器镜像,包括:

21、在所述运行环境为云原生的情况下,解析所述流水线配置文件得到与所述任务对应的至少一个步骤的步骤脚本;

22、根据所述步骤脚本生成所述步骤执行容器镜像,其中,每个所述步骤执行容器镜像对应一个所述步骤脚本;

23、在所述步骤执行容器镜像之前添加所述任务初始容器镜像,得到所述初始化容器;

24、将所述任务结束容器镜像作为普通容器添加到所述初始化容器的后面。

25、可选地,通过容器编排工具执行所述任务容器镜像,包括:

26、通过所述容器编排工具依次执行所述初始化容器中的所述任务初始容器镜像和所述步骤执行容器镜像,其中,所述任务初始容器镜像用于创建运行所述任务的资源空间并配置所述资源空间的运行环境,所述步骤执行容器镜像用于在所述资源空间中执行对应的步骤;

27、在所述初始化容器中的多个容器镜像均执行成功的情况下,或者,在所述初始化容器中的任意容器镜像执行失败的情况下,通过所述容器编排工具执行所述任务结束容器镜像,其中,所述任务结束容器镜像用于销毁所述资源空间。

28、可选地,在所述运行环境为非云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务指令,并通过执行机执行所述任务指令,包括:

29、在所述运行环境为非云原生的情况下,解析所述流水线配置文件得到与所述任务对应的至少一个步骤的步骤脚本;

30、根据所述步骤脚本的执行顺序向所述执行机发送一条所述任务指令,其中,每一条所述任务指令中携带有一个步骤的步骤脚本;

31、通过所述执行机执行所述任务指令,并返回执行结果;

32、在所述执行结果为成功的情况下,根据所述步骤脚本的执行顺序向所述执行机发送下一条所述任务指令,直至所述任务中的步骤全部执行完成。

33、可选地,通过所述执行机执行所述任务指令,并返回执行结果,包括:

34、所述执行机在收到所述任务指令之后,解析所述任务指令得到对应步骤的插件信息和插件配置信息;

35、根据所述插件信息加载对应的插件脚本;

36、根据所述插件配置信息运行所述插件脚本得到所述插件脚本的执行结果,并返回所述执行结果。

37、根据本专利技术的另一个实施例,还提供了一种流水线引擎实现装置,包括:

38、接收模块,用于接收流水线执行请求,并根据所述流水线执行请求获取预先存储的流水线配置文件;

39、判断模块,用于根据所述流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生;

40、云原生模块,用于在所述运行环境为云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务容器镜像,并通过容器编排工具执行所述任务容器镜像;

41、执行机模块,用于在所述运行环境为非云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务指令,并通过执行机执行所述任务指令。

42、可选地,所述装置还包括:

43、配置模块,用于获取用户基于图形化操作界面配置的流水线信息;

44、转换模块,用于将所述流水线信息转换成预设语言格式的流水线配置文件;

45、存储模块,用于存储所述流水线配置文件。

46、可选地,所述流水线信息包括:所述任务的依赖关系、所述任务的任务信息、步骤的执行顺序、本文档来自技高网...

【技术保护点】

1.一种流水线引擎实现方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在接收流水线执行请求之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述流水线信息包括:所述任务的依赖关系、所述任务的任务信息、步骤的执行顺序、所述步骤的插件配置信息,其中,每一条流水线由至少一个所述任务组成,每个所述任务由至少一个所述步骤组成。

4.根据权利要求3所述的方法,其特征在于,将所述流水线信息转换成预设语言格式的流水线配置文件,包括:

5.根据权利要求1所述的方法,其特征在于,根据所述流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生,包括:

6.根据权利要求1所述的方法,其特征在于,所述任务容器镜像包括初始化容器和普通容器,其中,所述初始化容器包括任务初始容器镜像和至少一个步骤执行容器镜像,所述普通容器包括任务结束容器镜像。

7.根据权利要求6所述的方法,其特征在于,在所述运行环境为云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务容器镜像,包括:

8.根据权利要求7所述的方法,其特征在于,通过容器编排工具执行所述任务容器镜像,包括:

9.根据权利要求1所述的方法,其特征在于,在所述运行环境为非云原生的情况下,根据所述流水线配置文件生成与所述任务对应的任务指令,并通过执行机执行所述任务指令,包括:

10.根据权利要求9所述的方法,其特征在于,通过所述执行机执行所述任务指令,并返回执行结果,包括:

11.一种流水线引擎实现装置,其特征在于,包括:

12.一种计算机可读的存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被处理器运行时执行所述权利要求1至10任一项中所述的方法。

13.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10中任一项所述的方法。

...

【技术特征摘要】

1.一种流水线引擎实现方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,在接收流水线执行请求之前,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述流水线信息包括:所述任务的依赖关系、所述任务的任务信息、步骤的执行顺序、所述步骤的插件配置信息,其中,每一条流水线由至少一个所述任务组成,每个所述任务由至少一个所述步骤组成。

4.根据权利要求3所述的方法,其特征在于,将所述流水线信息转换成预设语言格式的流水线配置文件,包括:

5.根据权利要求1所述的方法,其特征在于,根据所述流水线配置文件分别判断流水线中每个任务的运行环境是否为云原生,包括:

6.根据权利要求1所述的方法,其特征在于,所述任务容器镜像包括初始化容器和普通容器,其中,所述初始化容器包括任务初始容器镜像和至少一个步骤执行容器镜像,所述普通容器包括任务结束容器镜像。

7.根据权利要求6所述的方法,其特征在于,在所述...

【专利技术属性】
技术研发人员:王晓菲李淳史黎龚荣荣史新丽张泽昭冯秀玲高扬
申请(专利权)人:中国光大银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1