一种云平台应用部署方法、装置、电子设备及存储介质与流程

文档序号:29439721发布日期:2022-03-30 09:56阅读:71来源:国知局
一种云平台应用部署方法、装置、电子设备及存储介质与流程

1.本技术涉及云计算技术领域,尤其涉及一种云平台应用部署方法、装置、电子设备及存储介质。


背景技术:

2.随着云计算技术的发展,开发者可以将其开发的应用部署到云平台,由云平台为应用的提供运行资源。
3.在现有技术中,一般是基于kubernetes来实现应用的部署交付,而基于kubernetes的应用部署,一般都是将应用事先做成一个个的chart包,然后使用helm工具,将应用部署于kubernetes环境下。
4.但是,由于helm只是kubernetes平台的一个包管理器,所以它只适合于部署基于kubernetes平台的应用,并不支持openstack和aws等公/私有云平台,无法在多云混合场景下实现应用的统一部署。


技术实现要素:

5.本技术提供一种云平台应用部署方法、装置、电子设备及存储介质,以解决现有技术无法在多云混合场景下实现应用的统一部署等缺陷。
6.本技术第一个方面提供一种云平台应用部署方法,包括:获取当前云平台待部署应用的组成信息;其中,所述组成信息表征所述待部署应用的属性内容和组成逻辑;根据所述待部署应用的组成信息,确定所述待部署应用包含的各组件的环境属性;基于预设的多云环境配置器,根据各所述组件的环境属性,为各所述组件调用对应的云环境插件;基于各所述组件的云环境插件,将所述待部署应用部署到所述当前云平台。
7.可选的,所述根据所述待部署应用的组成信息,确定所述待部署应用包含的各组件的环境属性,包括:根据所述待部署应用的组成信息和用户输入的部署需求信息,生成所述待部署应用的模板文件;基于预设的工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的环境属性。
8.可选的,所述基于预设的工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的环境属性,包括:基于所述工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的工作流;根据各所述组件的工作流所包含的动作,确定各所述组件的环境属性。
9.可选的,在根据所述待部署应用的组成信息,确定所述待部署应用包含的各组件的环境属性之前,所述方法还包括:根据所述待部署应用的组成信息,构建所述待部署应用的应用模型;所述基于所述工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的工作流,包括:将所述待部署应用的模板文件转换为应用模型原语,并将所述应用模型原语输入到所述工作流引擎,以确定所述待部署应用包含的各组件的工作流。
10.可选的,所述基于各所述组件的云环境插件,将所述待部署应用部署到所述当前云平台,包括:基于各所述组件的云环境插件,为各所述组件封装调用对应的云环境接口;基于各所述组件对应的云环境接口,将所述待部署应用部署到所述当前云平台。
11.可选的,所述基于各所述组件对应的云环境接口,将所述待部署应用部署到所述当前云平台,包括:针对每个所述组件,基于该组件对应的云环境接口,将该组件部署到相应的云环境。
12.可选的,所述待部署应用的组成信息包括组件名称、各组件的属性信息和各组件的动作信息。
13.本技术第二个方面提供一种云平台应用部署装置,包括:获取模块,用于获取当前云平台待部署应用的组成信息;其中,所述组成信息表征所述待部署应用的属性内容和组成逻辑;确定模块,用于根据所述待部署应用的组成信息,确定所述待部署应用包含的各组件的环境属性;插件调用模块,用于基于预设的多云环境配置器,根据各所述组件的环境属性,为各所述组件调用对应的云环境插件;部署模块,用于基于各所述组件的云环境插件,将所述待部署应用部署到所述当前云平台。
14.可选的,所述确定模块,具体用于:根据所述待部署应用的组成信息和用户输入的部署需求信息,生成所述待部署应用的模板文件;基于预设的工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的环境属性。
15.可选的,所述确定模块,具体用于:基于所述工作流引擎,根据所述待部署应用的模板文件,确定所述待部署应用包含的各组件的工作流;根据各所述组件的工作流所包含的动作,确定各所述组件的环境属性。
16.可选的,所述装置还包括:建模模块,用于根据所述待部署应用的组成信息,构建所述待部署应用的应用模型;所述确定模块,具体用于:
将所述待部署应用的模板文件转换为应用模型原语,并将所述应用模型原语输入到所述工作流引擎,以确定所述待部署应用包含的各组件的工作流。
17.可选的,所述部署模块,具体用于:基于各所述组件的云环境插件,为各所述组件封装调用对应的云环境接口;基于各所述组件对应的云环境接口,将所述待部署应用部署到所述当前云平台。
18.可选的,所述部署模块,具体用于:针对每个所述组件,基于该组件对应的云环境接口,将该组件部署到相应的云环境。
19.可选的,所述待部署应用的组成信息包括组件名称、各组件的属性信息和各组件的动作信息。
20.本技术第三个方面提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
21.本技术第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
22.本技术技术方案,具有如下优点:本技术提供一种云平台应用部署方法、装置、电子设备及存储介质,该方法包括:获取当前云平台待部署应用的组成信息;其中,组成信息表征待部署应用的属性内容和组成逻辑;根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性;基于预设的多云环境配置器,根据各组件的环境属性,为各组件调用对应的云环境插件;基于各组件的云环境插件,将待部署应用部署到当前云平台。上述方案提供的方法,通过根据待部署应用中各个组件的环境属性,分别为不同云环境组件调用不同的云环境插件,并基于调用的多种云环境插件进行应用的部署,提高了云平台应用部署的灵活性,在多云混合场景下实现了应用的统一部署。
附图说明
23.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
24.图1为本技术实施例基于的云平台应用部署系统的结构示意图;图2为本技术实施例提供的云平台应用部署方法的流程示意图;图3为本技术实施例提供的示例性的应用模型的结构示意图;图4为本技术实施例提供的云平台应用部署装置的结构示意图;图5为本技术实施例提供的电子设备的结构示意图。
25.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
26.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
27.此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
28.在现有技术中,通常是基于kubernetes来实现应用的部署交付,而基于kubernetes的应用部署,一般都是将应用事先做成一个个的chart包,然后使用helm工具,将应用部署于kubernetes环境下。但是,由于helm只是kubernetes平台的一个包管理器,所以它只适合于部署基于kubernetes平台的应用。而对于openstack、aws等公/私有云平台,helm并不支持,业界一般是使用诸如cloudify、terraform这种工具来实现应用在这些云平台上的部署。这势必就造成了两类平台、两种工具、两种技术路线,无法在多云混合场景下实现应用的统一部署。
29.针对上述问题,本技术实施例提供的云平台应用部署方法、装置、电子设备及存储介质,通过获取当前云平台待部署应用的组成信息;其中,组成信息表征待部署应用的属性内容和组成逻辑;根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性;基于预设的多云环境配置器,根据各组件的环境属性,为各组件调用对应的云环境插件;基于各组件的云环境插件,将待部署应用部署到当前云平台。上述方案提供的方法,通过根据待部署应用中各个组件的环境属性,分别为不同云环境组件调用不同的云环境插件,并基于调用的多种云环境插件进行应用的部署,提高了云平台应用部署的灵活性,在多云混合场景下实现了应用的统一部署。
30.下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
31.首先,对本技术所基于的云平台应用部署系统的结构进行说明:本技术实施例提供的云平台应用部署方法、装置、电子设备及存储介质,适用于在多云混合场景下,进行云平台应用的统一部署。如图1所示,为本技术实施例基于的云平台应用部署系统的结构示意图,主要包括云平台、数据采集装置及用于在云平台进行应用部署的云平台应用部署装置。具体地,数据采集装置用于采集当前云平台待部署应用的组成信息,然后将采集到的数据发送到云平台应用部署装置,以基于该云平台应用部署装置根据得到的数据,在云平台进行相应的应用部署操作。
32.本技术实施例提供了一种云平台应用部署方法,用于在多云混合场景下,进行云平台应用的统一部署。本技术实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于进行云平台应用部署的电子设备。
33.如图2所示,为本技术实施例提供的云平台应用部署方法的流程示意图,该方法包括:步骤201,获取当前云平台待部署应用的组成信息。
34.其中,组成信息表征待部署应用的属性内容和组成逻辑,待部署应用可以计算应
用或组合型应用等。
35.步骤202,根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性。
36.需要说明的是,待部署应用可以由多个组件组成,如由浏览器和数据库等组件组成等。
37.具体地,通过对待部署应用的组成信息进行分析,确定该待部署应用包含的组件有哪些,然后再根据当前包含的各个组件的属性和动作等相关信息,确定该待部署应用包含的组件的环境属性。其中,环境属性至少分为kubernetes(k8s)、openstack和aws等云环境。
38.步骤203,基于预设的多云环境配置器,根据各组件的环境属性,为各组件调用对应的云环境插件。
39.需要说明的是,多云环境配置器中预置有多种云环境插件,分别适用不同的云环境。
40.具体地,可以基于该多云环境配置器,根据各组件的环境属性,确定各组件即将部署到哪种云环境,进而为各个的组件分配相应的云环境插件,以实现组件的后续部署工作。
41.步骤204,基于各组件的云环境插件,将待部署应用部署到当前云平台。
42.需要说明的是,云环境插件可以是特定程序,用于在云平台实现组件的部署。
43.具体地,每个组件都可以基于其对应的云环境插件进行后续的部署工作,即利用各组件的云环境插件,实现所有组件的部署。其中,当待部署应用的所有组件都部署到云平台后,可以在云平台对已完成部署的组件进行相应的关联,以最终实现待部署应用的部署。
44.在上述实施例的基础上,为了进一步提高云平台应用部署的灵活性,作为一种可实施的方式,在一实施例中,根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性,包括:步骤2021,根据待部署应用的组成信息和用户输入的部署需求信息,生成待部署应用的模板文件;步骤2022,基于预设的工作流引擎,根据待部署应用的模板文件,确定待部署应用包含的各组件的环境属性。
45.其中,模板文件是待部署应用的具体描述方式,具体可以是基于json/yaml描述语言的模板文件。
46.具体地,为了保证待部署到云平台的应用能够满足的用户的实际需求,可以在应用部署之前,为用户提供应用部署设计接口,即获取用户输入的部署需求信息。具体可以结合待部署应用初始化状态下的组成信息和用户输入的部署需求信息,生成待部署应用的模板文件。具体可以基于预设的模型管理器,根据待部署应用的组成信息和用户输入的部署需求信息,生成待部署应用的模板文件。
47.具体地,在一实施例中,可以基于工作流引擎,根据待部署应用的模板文件,确定待部署应用包含的各组件的工作流;根据各组件的工作流所包含的动作,确定各组件的环境属性。
48.其中,动作包括创建、扩容、缩容、启动和停止等组件动作。
49.具体地,可以基于工作流引擎对待部署应用的模板文件进行分析,以确定待部署
应用的动作集和具体动作执行情况,以得到各组件的工作流。然后根据各组件的工作流所包含的动作及预设的每个动作与环境属性之间的对应关系,确定每个组件具体的环境属性。
50.具体地,还可以基于模型管理器根据模板文件,对应用模型进行增、删、改和查操作,以将模板文件解析为模型原语,如应用名称和组件构成等,然后再将模型原语发送到工作流引擎。
51.具体地,在一实施例中,在根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性之前,可以根据待部署应用的组成信息,构建待部署应用的应用模型。
52.其中,待部署应用的组成信息包括组件名称、各组件的属性信息和各组件的动作信息。如图3所示,为本技术实施例提供的示例性的应用模型的结构示意图,即通过构建应用模型,可以以抽象模型的形式展现待部署应用的组成信息,以后便后续的数据分析和应用部署等。图3中的属性集包括组件的属性信息,属性信息包括环境信息和负载信息,负载信息至少包括负载类型,如虚拟机vm和deployments等。其中,k8s类型的云环境,负载类型一般是k8s原生的资源类型,如deployments等,openstack类型的私有云环境,负载类型一般是云主机vm和云硬盘disk等。动作集包括组件的动作信息,其中动作类型分为创建、扩容、启动和停止等。
53.相应地,在一实施例中,可以将待部署应用的模板文件转换为应用模型原语,并将应用模型原语输入到工作流引擎,以确定待部署应用包含的各组件的工作流。
54.具体地,工作流引擎可以根据待部署应用的模板文件的应用模型原语,重构符合用户需求的应用模型,然后根据对重构的应用模型中的各部分之间的关联关系,确定待部署应用包含的各组件的工作流。
55.在上述实施例的基础上,作为一种可实施的方式,在一实施例中,基于各组件的云环境插件,将待部署应用部署到当前云平台,包括:步骤2041,基于各组件的云环境插件,为各组件封装调用对应的云环境接口;步骤2042,基于各组件对应的云环境接口,将待部署应用部署到当前云平台。
56.需要说明的是,云环境接口可以是相应云环境的api接口,如http接口等。
57.具体地,在一实施例中,针对每个组件,可以基于该组件对应的云环境接口,将该组件部署到相应的云环境。
58.具体地,可以基于每个组件对应的云环境接口,对接相应的云环境,进而在不同云环境下进行不同组件负载的创建和删除等管理操作,以实现各个组件的部署。
59.本技术实施例提供的云平台应用部署方法,通过获取当前云平台待部署应用的组成信息;其中,组成信息表征待部署应用的属性内容和组成逻辑;根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性;基于预设的多云环境配置器,根据各组件的环境属性,为各组件调用对应的云环境插件;基于各组件的云环境插件,将待部署应用部署到当前云平台。上述方案提供的方法,通过根据待部署应用中各个组件的环境属性,分别为不同云环境组件调用不同的云环境插件,并基于调用的多种云环境插件进行应用的部署,提高了云平台应用部署的灵活性,在多云混合场景下实现了应用的统一部署。并且,通过抽象统一的应用模型,实现对多云混合环境下的应用概念的统一建模,有利于提高后续的数据处理效率,为提高云平台应用部署效率奠定了基础。
60.本技术实施例提供了一种云平台应用部署装置,用于执行上述实施例提供的云平台应用部署方法。
61.如图4所示,为本技术实施例提供的云平台应用部署装置的结构示意图。该云平台应用部署装置40包括:获取模块401、确定模块402、插件调用模块403和部署模块404。
62.其中,获取模块,用于获取当前云平台待部署应用的组成信息;其中,组成信息表征待部署应用的属性内容和组成逻辑;确定模块,用于根据待部署应用的组成信息,确定待部署应用包含的各组件的环境属性;插件调用模块,用于基于预设的多云环境配置器,根据各组件的环境属性,为各组件调用对应的云环境插件;部署模块,用于基于各组件的云环境插件,将待部署应用部署到当前云平台。
63.具体地,在一实施例中,确定模块,具体用于:根据待部署应用的组成信息和用户输入的部署需求信息,生成待部署应用的模板文件;基于预设的工作流引擎,根据待部署应用的模板文件,确定待部署应用包含的各组件的环境属性。
64.具体地,在一实施例中,确定模块,具体用于:基于工作流引擎,根据待部署应用的模板文件,确定待部署应用包含的各组件的工作流;根据各组件的工作流所包含的动作,确定各组件的环境属性。
65.具体地,在一实施例中,该装置还包括:建模模块,用于根据待部署应用的组成信息,构建待部署应用的应用模型;确定模块,具体用于:将待部署应用的模板文件转换为应用模型原语,并将应用模型原语输入到工作流引擎,以确定待部署应用包含的各组件的工作流。
66.具体地,在一实施例中,部署模块,具体用于:基于各组件的云环境插件,为各组件封装调用对应的云环境接口;基于各组件对应的云环境接口,将待部署应用部署到当前云平台。
67.具体地,在一实施例中,部署模块,具体用于:针对每个组件,基于该组件对应的云环境接口,将该组件部署到相应的云环境。
68.具体地,在一实施例中,待部署应用的组成信息包括组件名称、各组件的属性信息和各组件的动作信息。
69.关于本实施例中的云平台应用部署装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
70.本技术实施例提供的云平台应用部署装置,用于执行上述实施例提供的云平台应用部署方法,其实现方式与原理相同,不再赘述。
71.本技术实施例提供了一种电子设备,用于执行上述实施例提供的云平台应用部署方法。
72.如图5所示,为本技术实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52。
73.存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指
令,使得至少一个处理器执行如上实施例提供的云平台应用部署方法。
74.本技术实施例提供的一种电子设备,用于执行上述实施例提供的云平台应用部署方法,其实现方式与原理相同,不再赘述。
75.本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的云平台应用部署方法。
76.本技术实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的云平台应用部署方法的计算机执行指令,其实现方式与原理相同,不再赘述。
77.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
78.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
79.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
80.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
81.本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
82.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1