一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种云产品自动化并行上线的方法和系统与流程

2022-11-13 13:52:54 来源:中国专利 TAG:


1.本发明涉及云产品上线技术领域,尤其涉及一种云产品自动化并行上线的方法和系统。


背景技术:

2.在云服务的交付场景中,交付一个云服务一般可大致分为服务器上架、装机、部署集群以及上线云服务产品几个步骤。对于云服务产品上线来说,当前普遍的做法是由交付人员手动执行云产品上线操作,通过部署平台创建产品基本信息,然后从存储层获取产品的安装包,手动执行云产品上线。由于各个云服务产品之间存在依赖关系,需要交付人员按照说明文档中的依赖关系按顺序地执行上线操作。在实际应用中,这种方式存在下列缺陷:云产品之间的依赖关系会随着产品的迭代而发生改变,每一次的变动都需要去更新说明文档,而且按顺序人工执行上线多个产品不仅效率不足,也提升了交付的复杂性。
3.因此,如何采用一种高效率、自动化程度高方法实现产品上线,成为亟待解决的技术问题。


技术实现要素:

4.有鉴于此,为了克服现有技术的不足,本发明通过预先定义各个云服务产品之间的关系,并生成程序可以读取的文件,以及在部署云服务产品的时候让某个服务去读取文件,自动地生成上线任务,使得各个产品按照预先定义的顺序并行的进行部署,从而降低交付软件的复杂性,同时提升效率,提供一种高效、自动化的产品上线方法。
5.一方面,本发明提供一种云产品自动化并行上线的方法,包括:
6.步骤s1:通过json定义云产品之间的依赖关系,生成对应的json源文件;
7.步骤s2:读取json源文件,通过解析云产品建立自动化上线任务;
8.步骤s3:循环遍历步骤s2的自动化上线任务,并行执行上线任务。
9.进一步地,本发明云产品自动化并行上线的方法中,步骤s2,包括:
10.步骤s21:读取json源文件,通过解析云产品之间的依赖关系获取拓扑起点,构建用于前端展示的拓扑关系;
11.步骤s22:将每个云产品解析为自动化上线任务并以数据的形式存入数据库,所述自动化上线任务包括云产品的基本信息、依赖关系以及当前的任务状态;
12.步骤s23:将自动化上线任务的默认状态设置为未开始。
13.进一步地,本发明云产品自动化并行上线的方法中,步骤s3,包括:
14.步骤s31:获取云产品自动化上线请求,触发云产品自动化上线任务;
15.步骤s32:循环遍历自动化上线任务,调度拉取满足执行条件的自动化上线任务;
16.步骤s33:执行满足执行条件的自动化上线任务。
17.进一步地,本发明云产品自动化并行上线的方法中,步骤s31,包括:获取云产品自动化上线请求,将准备执行上线的自动化上线任务的默认状态由未开始更新为开始上线,
当自动化上线任务的默认状态发生变更,根据当前的任务状态执行对应的操作。
18.进一步地,本发明云产品自动化并行上线的方法中,步骤s32,包括:根据自动化上线任务中的依赖关系查找所述任务依赖的其它自动化上线任务,判断其它自动化上线任务是否上线成功,当其它自动化上线任务的任务状态全部为上线成功,将所述自动化上线任务判定为满足执行条件;当其它自动化任务的任务状态不全为上线成功,将所述自动化上线任务判定为不满足执行条件。
19.进一步地,本发明云产品自动化并行上线的方法中,不满足执行条件的自动化上线任务不参与执行,等待下一次调度拉取。
20.进一步地,本发明云产品自动化并行上线的方法中,步骤s33,包括:
21.步骤s331:根据自动化上线任务的基本信息创建产品信息,将任务状态更新为待创建子产品;
22.步骤s332:根据自动化上线任务的基本信息创建子产品信息,将任务状态更新为待创建版本;
23.步骤s333:根据子产品信息获取云产品的chart包源码,根据chart包源码生成chart包,将生成的chart包推送至chart仓库,将任务状态更新为待执行上线;
24.步骤s334:从chart仓库获取chart包,将chart包通过helm代理服务安装到集群层中,执行任务上线,将任务状态更新为上线完成;
25.步骤s335:检查集群中云产品服务的上线状态,将完成上线的任务状态更新为执行上线成功。
26.进一步地,本发明云产品自动化并行上线的方法中,当步骤s33中的任一步骤执行失败时,放弃更新任务状态,等待下一次调度拉取。
27.另一方面,本发明提供一种云产品自动化并行上线的系统,包括:
28.业务层,由源文件生成模块、任务中心模块、helm服务代理模块和zookeeper模块组成,其中,源文件生成模块用于定义云产品之间的依赖关系,生成对应的json源文件;任务中心模块用于读取json源文件,通过解析云产品之间的依赖关系获取拓扑起点,构建用于前端展示的拓扑关系,将每个云产品解析为自动化上线任务并以数据的形式存入数据库,将自动化上线任务的默认状态设置为未开始,获取云产品自动化上线请求,触发云产品自动化上线任务,循环遍历自动化上线任务,获取满足执行条件的自动化上线任务,执行满足执行条件的自动化上线任务以及集群层中服务的状态;helm服务代理模块用于根据子产品信息从gitlab模块中获取云产品的chart包源码,根据chart包源码生成chart包,将生成的chart包推送至至作为chart仓库的harbor模块,从作为chart仓库的harbor模块获取chart包,将chart包安装到集群层中;zookeeper模块用于定时调度拉取满足执行条件的自动化上线任务给任务中心模块;
29.存储层,包括gitlab模块、harbor模块和mysql数据库,其中,gitlab模块用于存放云产品chart包源码,harbor模块用于作为chart仓库存储chart包,mysql数据库用于存储云产品数据、云产品上线任务和任务状态;
30.集群层,包括服务器、操作系统和标准kubernetes模块,用于运行承载业务层和服存储层的服务,以及用于以chart包的形式安装云产品并对外提供服务。
31.最后,本发明还提供一种终端设备,包括存储器、处理器及存储在所述存储器上并
可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述方法的步骤。
32.本发明云产品自动化并行上线的方法和系统,具有以下有益效果:
33.1)通过json文件预先定义云产品之间的关系,替代现场交付人员的手动执行操作。
34.2)可以批量、快速地自动执行上线任务,提升效率产品上线的效率。
附图说明
35.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
36.图1为本发明示例性第一实施例云产品自动化并行上线的方法的流程图。
37.图2为本发明示例性第二实施例云产品自动化并行上线的方法的流程图。
38.图3为本发明示例性第四实施例云产品自动化并行上线的方法的流程图。
39.图4为本发明示例性第五实施例云产品自动化并行上线的方法的流程图。
40.图5为本发明示例性第五实施例云产品自动化并行上线的方法的架构图。
具体实施方式
41.下面结合附图对本发明实施例进行详细描述。
42.需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
43.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
44.图1为根据本发明示例性第一实施例的一种云产品自动化并行上线的方法的流程图,如图1所示,本实施例所述方法,包括:
45.步骤s1:定义云产品之间的依赖关系,生成对应的json源文件;
46.步骤s2:读取json源文件,通过解析云产品建立自动化上线任务;
47.步骤s3:循环遍历步骤s2的自动化上线任务,并行执行上线任务。
48.图2为根据本发明示例性第二实施例的一种云产品自动化并行上线的方法的流程图,本实施例是图1所示方法的优选实施例,如图2所示,本实施例方法的步骤s2,包括:
49.步骤s21:读取json源文件,通过解析云产品之间的依赖关系获取拓扑起点,构建用于前端展示的拓扑关系;
50.步骤s22:将每个云产品解析为自动化上线任务并以数据的形式存入数据库,所述自动化上线任务包括云产品的基本信息、依赖关系以及当前的任务状态;
51.步骤s23:将自动化上线任务的默认状态设置为未开始。
52.图3为根据本发明示例性第三实施例的一种云产品自动化并行上线的方法的流程图,本实施例是图1所示方法的优选实施例,如图3所示,本实施例方法的步骤s3,包括:
53.步骤s31:获取云产品自动化上线请求,触发云产品自动化上线任务;
54.步骤s32:循环遍历自动化上线任务,调度拉取满足执行条件的自动化上线任务;
55.步骤s33:执行满足执行条件的自动化上线任务。
56.本实施例方法的步骤s31,包括:获取云产品自动化上线请求,将准备执行上线的自动化上线任务的默认状态由未开始更新为开始上线,当自动化上线任务的默认状态发生变更,根据当前的任务状态执行对应的操作。
57.本实施例方法的步骤s32,包括:根据自动化上线任务中的依赖关系查找所述任务依赖的其它自动化上线任务,判断其它自动化上线任务是否上线成功,当其它自动化上线任务的任务状态全部为上线成功,将所述自动化上线任务判定为满足执行条件;当其它自动化任务的任务状态不全为上线成功,将所述自动化上线任务判定为不满足执行条件。
58.本实施例方法中,不满足执行条件的自动化上线任务不参与执行,等待下一次调度拉取。
59.图4为根据本发明示例性第四实施例的一种云产品自动化并行上线的方法的流程图,本实施例是图1和图3所示方法的优选实施例,如图4所示,本实施例方法的步骤s33,包括:
60.步骤s331:根据自动化上线任务的基本信息创建产品信息,将任务状态更新为待创建子产品;
61.步骤s332:根据自动化上线任务的基本信息创建子产品信息,将任务状态更新为待创建版本;
62.步骤s333:根据子产品信息获取云产品的chart包源码,根据chart包源码生成chart包,将生成的chart包推送至chart仓库,将任务状态更新为待执行上线;
63.步骤s334:从chart仓库获取chart包,将chart包通过helm代理服务安装到集群层中,执行任务上线,将任务状态更新为上线完成;
64.步骤s335:检查集群中云产品服务的上线状态,将完成上线的任务的任务状态更新为执行上线成功。
65.本实施例方法中,当步骤s33中的任一步骤执行失败时,放弃更新任务状态,等待下一次调度拉取。
66.图5为根据本发明示例性第五实施例的一种云产品自动化并行上线的系统的架构图,如图5所示,本实施例的系统,包括:
67.业务层,由源文件生成模块、任务中心模块、helm服务代架构图理模块和zookeeper模块组成,其中,源文件生成模块用于通过json定义云产品之间的依赖关系,生成对应的json源文件;任务中心模块用于读取json源文件,通过解析云产品之间的依赖关系获取拓扑起点,构建用于前端展示的拓扑关系,将每个云产品解析为自动化上线任务并以数据的形式存入数据库,将自动化上线任务的默认状态设置为未开始,获取云产品自动化上线请求,触发云产品自动化上线任务,循环遍历自动化上线任务,获取满足执行条件的自动化上线任务,执行满足执行条件的自动化上线任务以及集群层中服务的状态;helm服
务代理模块用于根据子产品信息从gitlab模块中获取云产品的chart包源码,根据chart包源码生成chart包,将生成的chart包推送至至作为chart仓库的harbor模块,从作为chart仓库的harbor模块获取chart包,将chart包安装到集群层中;zookeeper模块用于定时调度拉取满足执行条件的自动化上线任务给任务中心模块;
68.存储层,包括gitlab模块、harbor模块和mysql数据库,其中,gitlab模块用于存放云产品chart包源码,harbor模块用于作为chart仓库存储chart包,mysql数据库用于存储云产品数据、云产品上线任务和任务状态;
69.集群层,包括服务器、操作系统和标准kubernetes模块,用于运行承载业务层和服存储层的服务,以及用于以chart包的形式安装云产品并对外提供服务。
70.本发明还提供一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述方法的步骤。
71.该终端设备具有上述动部署虚拟机微服务应用的系统和方法相应的技术效果。
72.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献