System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Tekton的自定义云原生DevOps流水线系统及方法技术方案_技高网

一种基于Tekton的自定义云原生DevOps流水线系统及方法技术方案

技术编号:40902242 阅读:2 留言:0更新日期:2024-04-18 11:20
本申请涉及计算机技术领域,解决了现有技术中Devops平台的灵活性和兼容性较低的问题,公开了一种基于Tekton的自定义云原生DevOps流水线系统及方法,包括:接口服务层,所述接口服务层用于处理前端的访问请求并返回相应的响应,以及与k8s的接口服务进行交互;DevOps引擎服务层,所述DevOps引擎服务层包括工具集成单元、自定义插件单元和自定义流水线单元,本申请通过自定义插件的方式能够确保系统支持多种编程语言,支持自定义输入输出参数,在流水线设计中新增了不同阶段的工作流和工作流实例概念以适应不同场景下的产研全流程,有效的提高了Devops流水线系统的灵活性和兼容性。

【技术实现步骤摘要】

本申请涉及计算机,尤其是一种基于tekton的自定义云原生devops流水线系统及方法。


技术介绍

1、当前越来越多的企业数字化转型公司都开发了各自的技术设施平台,为了满足各行各业客户的需求,平台的版本需要不断快速迭代,业务和技术架构都日益复杂,出现了流程制约和异地协同等影响产研效能的问题,所以提升产研效能和确定产品质量对实现产品的快速交付至关重要。云原生的概念自从2015年被第一次提起后,云原生ci/cd/devops工具链在近些年得到了长足的发展,越来越多的企业开始搭建自己的devops平台来提升产研效能,提高交付效率。

2、但是现有技术中的devops平台通常不支持多种编程语言,使得devops平台的灵活性和兼容性较低,难以适应如今局面中多变的技术生态。


技术实现思路

1、本申请的目的在于克服现有技术中devops平台的灵活性和兼容性较低的问题,提供一种基于tekton的自定义云原生devops流水线系统及方法。

2、第一方面,提供了一种基于tekton的自定义云原生devops流水线系统,包括:

3、接口服务层,所述接口服务层用于处理前端的访问请求并返回相应的响应,以及与k8s的接口服务进行交互;

4、devops引擎服务层,所述devops引擎服务层包括工具集成单元、自定义插件单元和自定义流水线单元,其中,所述工具集成单元用于对自动化持续集成工具和持续部署工具进行集成,所述自定义插件单元用于根据预定义的插件标准通过编程语言编写自定义插件并制作成镜像,并将所述镜像存储在指定的镜像仓库中,所述自定义流水线单元用于创建工作流、创建流水线阶段、创建任务卡片、创建工作流实例、运行流水线阶段实例以及创建任务pod。

5、进一步的,还包括:数据存储层,所述数据存储层用于进行数据存储。

6、进一步的,预定义的插件标准为:自定义插件包括插件名称、插件镜像名称、插件输入参数、插件输出参数和插件启动命令,其中,所述插件启动命令对应k8s工作负载中要执行的命令,所述插件输入参数的数量设置为一个或多个,所述插件输出参数的数量设置为一个或多个。

7、进一步的,所述自定义流水线单元包括:

8、工作流模块,所述工作流模块用于创建工作流以及对工作流进行复制,其中,所述工作流包括一个或多个流水线阶段,且前一个流水线阶段被标记为通过则允许进入下一个流水线阶段;

9、工作流实例模块,所述工作流实例模块用于创建工作流实例;

10、流水线阶段模块,所述流水线阶段模块用于创建工作流中的流水线阶段;

11、流水线阶段实例模块,所述流水线阶段实例模块用于运行工作流实例中的流水线阶段实例;

12、任务模块,所述任务模块用于创建任务pod;

13、任务运行模块,所述任务运行模块用于创建任务卡片,其中,所述任务卡片内容包括任务名称、触发器、输入参数、输出参数、执行步骤、状态、日志和卡片类型。

14、进一步的,还包括:提交模块,所述提交模块用于根据调度成功的流水线配置的任务卡片类型、输入参数和输出参数将任务pod提交至k8s集群中,以使得k8s平台进行任务调度,并在任务执行完成后从k8s平台接收完成回调。

15、进一步的,所述自定义流水线单元中每一个流水线阶段的出入参均使用自定义上下文关键key,以使得不同流水线阶段的出入参均可以被当前流水线阶段或工作流中当前流水线阶段之后的每一个插件卡片获取。

16、进一步的,所述任务模块还用于可视化操作指定任务之间的拓扑dag关系,以及定义指定任务之间的执行方式,其中,所述执行方式包括串行执行和并行执行。

17、进一步的,在所述自定义流水线单元中通过秘钥管理来实现细粒度的访问控制策略和进行审计跟踪。

18、第二方面,提供了一种基于tekton的自定义云原生devops流水线方法,包括如第一方面中的任意一种实现方式中所述的基于tekton的自定义云原生devops流水线系统,所述方法包括:

19、获取用户所编写的自定义插件;

20、将所述自定义插件打包成镜像并存储在指定的镜像仓库中;

21、创建并启动流水线,以通过k8s完成服务的部署。

22、进一步的,创建并启动流水线,包括:

23、创建工作流,并在工作流中根据需求创建流水线阶段;

24、通过dag图的方式可视化的创建任务卡片,并定义指定任务卡片之间的执行方式,其中,所述执行方式包括串行执行和并行执行;

25、基于工作流创建对应的工作流实例;

26、在创建好的工作流实例中选取需要运行的流水线阶段并填写参数运行以完成流水线的调度;

27、根据调度成功的流水线配置的任务卡片类型、输入参数和输出参数将任务pod提交至k8s集群中,以使得k8s平台进行任务调度,并在任务执行完成后从k8s平台接收完成回调。

28、本申请具有如下有益效果:本申请能够在k8s生态系统内进行高效的软件构建、测试与部署,通过自定义插件的方式能够确保系统支持多种编程语言,实现了框架与现有持续集成和持续部署工具的集成,其次,在本申请支持自定义输入输出参数,从而能够适应多变的技术生态,在流水线设计中新增了不同阶段的工作流和工作流实例概念以适应不同场景下的产研全流程,有效的提高了devops流水线系统的灵活性和兼容性。

本文档来自技高网...

【技术保护点】

1.一种基于Tekton的自定义云原生DevOps流水线系统,其特征在于,包括:

2.根据权利要求1所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,还包括:数据存储层,所述数据存储层用于进行数据存储。

3.根据权利要求1所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,预定义的插件标准为:自定义插件包括插件名称、插件镜像名称、插件输入参数、插件输出参数和插件启动命令,其中,所述插件启动命令对应k8s工作负载中要执行的命令,所述插件输入参数的数量设置为一个或多个,所述插件输出参数的数量设置为一个或多个。

4.根据权利要求1所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,所述自定义流水线单元包括:

5.根据权利要求1-4中的任一项所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,还包括:提交模块,所述提交模块用于根据调度成功的流水线配置的任务卡片类型、输入参数和输出参数将任务Pod提交至k8s集群中,以使得k8s平台进行任务调度,并在任务执行完成后从k8s平台接收完成回调。

6.根据权利要求4所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,所述自定义流水线单元中每一个流水线阶段的出入参均使用自定义上下文关键key,以使得不同流水线阶段的出入参均可以被当前流水线阶段或工作流中当前流水线阶段之后的每一个插件卡片获取。

7.根据权利要求4所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,所述任务模块还用于可视化操作指定任务之间的拓扑DAG关系,以及定义指定任务之间的执行方式,其中,所述执行方式包括串行执行和并行执行。

8.根据权利要求1或4所述的基于Tekton的自定义云原生DevOps流水线系统,其特征在于,在所述自定义流水线单元中通过秘钥管理来实现细粒度的访问控制策略和进行审计跟踪。

9.一种基于Tekton的自定义云原生DevOps流水线的方法,其特征在于,包括如权利要求1-8中任一项所述的基于Tekton的自定义云原生DevOps流水线系统,所述方法包括:

10.根据权利要求9所述的基于Tekton的自定义云原生DevOps流水线的方法,其特征在于,创建并启动流水线,包括:

...

【技术特征摘要】

1.一种基于tekton的自定义云原生devops流水线系统,其特征在于,包括:

2.根据权利要求1所述的基于tekton的自定义云原生devops流水线系统,其特征在于,还包括:数据存储层,所述数据存储层用于进行数据存储。

3.根据权利要求1所述的基于tekton的自定义云原生devops流水线系统,其特征在于,预定义的插件标准为:自定义插件包括插件名称、插件镜像名称、插件输入参数、插件输出参数和插件启动命令,其中,所述插件启动命令对应k8s工作负载中要执行的命令,所述插件输入参数的数量设置为一个或多个,所述插件输出参数的数量设置为一个或多个。

4.根据权利要求1所述的基于tekton的自定义云原生devops流水线系统,其特征在于,所述自定义流水线单元包括:

5.根据权利要求1-4中的任一项所述的基于tekton的自定义云原生devops流水线系统,其特征在于,还包括:提交模块,所述提交模块用于根据调度成功的流水线配置的任务卡片类型、输入参数和输出参数将任务pod提交至k8s集群中,以使得k8s平台进行任务调度,并在任务执行完成后从k8s平台接收完成回调。<...

【专利技术属性】
技术研发人员:王琦王徐张新铭陈强军王奥康
申请(专利权)人:杭州云掣科技有限公司
类型:发明
国别省市:

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

1