CN114363400A - 基于云平台的应用编排方法、装置及计算机可读存储介质 - Google Patents
基于云平台的应用编排方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114363400A CN114363400A CN202011065418.2A CN202011065418A CN114363400A CN 114363400 A CN114363400 A CN 114363400A CN 202011065418 A CN202011065418 A CN 202011065418A CN 114363400 A CN114363400 A CN 114363400A
- Authority
- CN
- China
- Prior art keywords
- cloud platform
- kubernets
- application
- chart
- helm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 241000380131 Ammophila arenaria Species 0.000 claims abstract description 102
- 230000000007 visual effect Effects 0.000 claims abstract description 32
- 238000012795 verification Methods 0.000 claims description 25
- 238000012360 testing method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012800 visualization Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于云平台的应用编排方法、装置及计算机可读存储介质,其中,该方法包括:基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求;在编排请求为创建类型的情况下,从模板库中查找到对应于kubernetes云平台中kubernetes版本的chart模板,或在无法从模板库查找到chart模板的情况下,发送模板生成请求至kubernetes云平台的helm,以生成对应于kubernetes云平台中kubernetes版本的chart模板;根据对应于kubernetes云平台中kubernetes版本的chart模板和编排请求中的包含选项参数的编排信息进行编排,得到应用的chart;发送应用的chart至kubernetes云平台的helm,以保存和/或发布chart。通过上述方案能够降低应用编排的难度。
Description
技术领域
本发明涉及云服务技术领域,尤其涉及一种基于云平台的应用编排方法、装置及计算机可读存储介质。
背景技术
现有的kubernetes应用在进行编排时需要使用helm,并基于helm的基本语法编写chart,所以若要写出一个应用的chart,不仅需要对具体业务足够精通,还需要对kubernetes和helm足够了解,这样增加了应用编排的难度和门槛。
例如,若用户想要制作一个WordPress应用供公司内部文档编辑使用,需要使用Mariadb(数据库应用)、WordPress(具体服务)及RabbitMQ(消息队列应用)三个应用去编排制作。按照现有的方式,需要将这三个应用通过一定的定制化,然后生成三个镜像,再手写一个helm chart去串联这三个应用,从而完成WordPress这个应用的发布和使用。这样就要求有helm、kubernetes、Mariadb、Rabbitmq等专业知识的人才能完成该应用的部署和发布,而且还需要花大量的时间和精力去改造和维护,不利于公司的快速开发和开发人员的高效工作。
发明内容
有鉴于此,本发明提出了一种基于云平台的应用编排方法、装置及计算机可读存储介质,以降低应用编排的难度。
为了达到上述目的,本发明采用以下方案实现:
根据本发明实施例的一个方面,提供了一种基于云平台的应用编排方法,包括:
基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求;
在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板;
根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart;所述编排信息包括基于kubernetes云平台相关的参数选项选择的配置信息;
发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
在一些实施例中,在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板,包括:
在所述编排请求为创建类型的情况下,将所述编排请求分配给对应于创建类型任务的消息队列,并通过对应于创建类型任务的消息队列发出所述编排请求对应的创建任务;
根据所述编排请求对应的创建任务,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板;
发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,包括:
通过消息队列发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
在一些实施例中,所述的基于云平台的应用编排方法,还包括:在无法从所述模板库查找到chart模板的情况下,将生成的对应于所述kubernetes云平台中kubernetes版本的chart模板保存至所述模板库中。
在一些实施例中,发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,包括:发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和/或发布所述应用的chart。
在一些实施例中,发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和发布所述应用的chart,包括:发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以使所述kubernetes云平台的helm对所述应用的chart进行语法校验,并在校验成功的情况下,使所述kubernetes云平台的helm生成helm release并将生成的helm release发送至所述kubernetes云平台的Kube API,使所述kubernetes云平台的Kube API根据helm release中的yaml文件中的控制器类型选择相应控制器部署所述应用并在成功部署所述应用后输出部署状态至所述kubernetes云平台进行显示,并且所述kubernetes云平台的Kube API发送部署状态至所述kubernetes云平台的helm,使所述kubernetes云平台的helm将所述应用的chart保存至仓库中。
在一些实施例中,所述的基于云平台的应用编排方法,还包括:在所述编排请求为更新类型的情况下,执行根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart的步骤。
在一些实施例中,所述可视化界面为所述kubernetes云平台的可视化界面。
在一些实施例中,基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求,包括:
生成kubernetes云平台相关的参数选项,并在kubernetes云平台的可视化界面上显示所述kubernetes云平台相关的参数选项;
接收基于所述参数选项为应用选择的配置信息,得到所述应用的编排信息;
在通过所述kubernetes云平台的可视化界面接收到编排指令的情况下,根据所述应用的编排信息生成所述应用的编排请求。
根据本发明实施例的另一个方面,提供了一种基于云平台的应用编排装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
根据本发明实施例的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
本发明实施例的基于云平台的应用编排方法、基于云平台的应用编排装置及计算机可读存储介质,能够降低应用编排的难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例的基于云平台的应用编排方法的流程示意图;
图2是本发明一具体实施例的基于云平台的应用编排架构示意图;
图3是利用本发明实施例的应用编排方法对应用WordPress进行编排的框架示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
需要预先说明的是,本发明实施例的方法可以基于现有的helm和kubernetes云平台实现。其中,helm为应用商店,例如华为应用市场。kubernetes云平台为容器云平台,可以用于管理应用使其发布到kubernetes集群,以将应用添加至helm(应用商店)。
图1是本发明一实施例的基于云平台的应用编排方法的流程示意图,如图1所示,一些实施例的基于云平台的应用编排方法包括以下步骤S110~步骤S140。
下面将对步骤S110至步骤S140的具体实施方式进行详细说明。
步骤S110:基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求。
该步骤S110中,该编排请求可以包含编排信息等,其中,编排信息可包括云平台所涉及的与该应用相关的参数选项对应的各配置信息。基于可视化界面获取编排请求,可以便于用户输入编排相关信息。
具体地,可以利用云平台的界面作为可视化界面来得到编排请求,或者,可以利用其他可视化界面来得到编排请求。所述可视化界面可以为所述kubernetes云平台的可视化界面。示例性地,上述步骤S110,即,基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求,具体可包括步骤:S111,生成kubernetes云平台相关的参数选项,并在kubernetes云平台的可视化界面上显示所述kubernetes云平台相关的参数选项;S112,接收基于所述参数选项为应用选择的配置信息,得到所述应用的编排信息;S113,在通过所述kubernetes云平台的可视化界面接收到编排指令的情况下,根据所述应用的编排信息生成所述应用的编排请求。
该步骤S111中,对于一个云平台而言,可以对应一系列固定的参数选项,所以可以将所有参数选项都列出来。具体实施例中,可以根据应用的类型(例如数据库类型)展示出该应用类型对应的参数选项,供用户选择相应配置信息。另外,还可以允许用户增加或删除参数选项。如此一来,可以不用从很大的参数选项列表中选择配置信息,从而方便配置信息选取。该步骤S113中,得到编排信息后,可以允许用户点击开始编排的按钮从而生成编排请求。
在一些实施例中,可以利用类似C/S架构中的client客户端,来接收编排信息中的参数选项的配置信息(或称为参数)等信息,可以一条条输入配置信息。或者,可以通过其他可视化界面输入参数选项的配置信息,然后将输入的配置信息通过client传进来。
步骤S120:在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板。
该步骤S120中,kubernetes版本可能经常会有所调整,若不是对应当前版本的chart模板,则会不可用,所以寻找对应当前kubernetes版本的chart模板,可保证模板可用性。其中,该chart模板可包含helm的基本语法结构。
为了便于处理编排请求,上述步骤S110中获得的编排请求可以放入消息队列中,需要处理编排请求的任务时,可以从消息队列中读取任务进行处理。而且不同类型的编排请求可以分类放入消息队列。不同的编排请求类型可以在消息队列中分类处理,从而保证编排任务的并发率,保证编排的效率。
示例性地,上述步骤S120,即,在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板,具体可包括步骤:S121,在所述编排请求为创建类型的情况下,将所述编排请求分配给对应于创建类型任务的消息队列,并通过对应于创建类型任务的消息队列发出所述编排请求对应的创建任务;S122,根据所述编排请求对应的创建任务,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板。该实施例中,通过消息队列管理编排请求可以保证编排请求的任务有序高效处理。
为了便于复用helm生成的模板,可以将新生成的模板保存起来。示例性地,图1所示的基于云平台的应用编排方法,还可包括步骤:S150,在无法从所述模板库查找到chart模板的情况下,将生成的对应于所述kubernetes云平台中kubernetes版本的chart模板保存至所述模板库中。其中,存储chart模板时可以对应存储helm和kubernetes的版本信息。
在另一些实施例中,编排请求可以为更新类型(UPDATE类型),在此情况下,图1所示基于云平台的应用编排方法,还可包括步骤:S160,在所述编排请求为更新类型的情况下,执行根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart的步骤。
该步骤S160中,编排请求为更新类型的情况下,编排请求中的编排信息可以包含更新后的参数选项和/或参数选项的配置信息。在此情况下,与创建类型的编排请求相比可以不需要寻找模板就可以进行编排修改,实现更新应用的chart。
步骤S130:根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart;所述编排信息包括基于kubernetes云平台相关的参数选项选择的配置信息。
该步骤S130中,可以基于与所述kubernetes云平台的helm编写chart相同的方式,即与helm根据编排信息和chart模板编排相同的原理进行编排。基于helm的基本原理可以得知helm编写chart相同的方式。编排信息包括基于kubernetes云平台相关的参数选项选择的配置信息,表明用户可直接输入参数选项的配置信息。可以根据kubernetes云平台将所有参数选项都列出来,供用户选择配置信息。
通过上述步骤S110~步骤S130实现应用编排,与基于现有helm进行应用编排主要区别在于,利用本实施例,用户只需要输入所需的参数选项的配置信息,进而本实施例可以根据选择的配置信息即编排信息和模板进行编排,得到helm能够识别的chart;而对于现有基于helm的编排方式而言,用户需要输入基于基础语法进行输入,然后通过helm进行编排。由此对比来看,本实施例能够使用户通过可视化的选项填写应用的配置信息,而不需专业的helm知识编写chart文件,所以降低了用户编排应用的难度。
步骤S140:发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
该步骤S140中,可以通过http请求发送chart给helm。
为了便于将编排好的chart发给helm,可以通过消息队列发送chart。示例性地,上述步骤S140,即,发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,具体可包括步骤:S141,通过消息队列发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
为了保证编写的chart的可用性,可以对编写的chart进行测试。示例性地,上述步骤S140,即,发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,具体可包括步骤:S142,发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和/或发布所述应用的chart。
具体实施时,以保存和发布应用的chart为例,上述步骤S142中,发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和发布所述应用的chart,具体可包括步骤:发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以使所述kubernetes云平台的helm对所述应用的chart进行语法校验,并在校验成功的情况下,使所述kubernetes云平台的helm生成helmrelease并将生成的helm release发送至所述kubernetes云平台的Kube API,使所述kubernetes云平台的Kube API根据helm release中的yaml文件中的控制器类型选择相应控制器部署所述应用并在成功部署所述应用后输出部署状态至所述kubernetes云平台进行显示,并且所述kubernetes云平台的Kube API发送部署状态至所述kubernetes云平台的helm,使所述kubernetes云平台的helm将所述应用的chart保存至仓库中。
基于与图1所示的基于云平台的应用编排方法相同的发明构思,本申请实施例还提供了一种基于云平台的应用编排装置,如下面实施例所述。由于该基于云平台的应用编排装置解决问题的原理与基于云平台的应用编排方法相似,因此该基于云平台的应用编排装置的实施可以参见基于云平台的应用编排方法的实施,重复之处不再赘述。
在一些实施例中,基于云平台的应用编排装置,可包括:接收端口模块、控制器模块、模板库、处理器模块、及结果发送模块。
接收端口模块,用于基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求。
控制器模块,用于在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板。
处理器模块,用于根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart;所述编排信息包括基于kubernetes云平台相关的参数选项选择的配置信息。
结果发送模块,用于发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
具体地,控制器模块,可包括:
请求接收消息队列模块,用于在所述编排请求为创建类型的情况下,将所述编排请求分配给对应于创建类型任务的消息队列,并通过对应于创建类型任务的消息队列发出所述编排请求对应的创建任务;
模板获取模块,用于根据所述编排请求对应的创建任务,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板。
具体地,结果发送模块,可包括:结果发送消息队列模块,用于通过消息队列发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
在另一些实施例中,控制器模块,还可用于在无法从所述模板库查找到chart模板的情况下,将生成的对应于所述kubernetes云平台中kubernetes版本的chart模板保存至所述模板库中。
在另一些实施例中,结果发送模块,包括:校验发送模块,用于发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和/或发布所述应用的chart。
具体地,校验发送模块,包括:校验发布保存模块,用于发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以使所述kubernetes云平台的helm对所述应用的chart进行语法校验,并在校验成功的情况下,使所述kubernetes云平台的helm生成helmrelease并将生成的helm release发送至所述kubernetes云平台的Kube API,使所述kubernetes云平台的Kube API根据helm release中的yaml文件中的控制器类型选择相应控制器部署所述应用并在成功部署所述应用后输出部署状态至所述kubernetes云平台进行显示,并且所述kubernetes云平台的Kube API发送部署状态至所述kubernetes云平台的helm,使所述kubernetes云平台的helm将所述应用的chart保存至仓库中。
在另一些实施例中,控制器模块,还用于在所述编排请求为更新类型的情况下,执行根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart。
在另一些实施例中,接收端口模块,可包括:可视化界面模块。所述可视化界面可为所述kubernetes云平台的可视化界面。
可视化界面模块,可包括:
参数选项模块,用于生成kubernetes云平台相关的参数选项,并在kubernetes云平台的可视化界面上显示所述kubernetes云平台相关的参数选项;接收基于所述参数选项为应用选择的配置信息,得到所述应用的编排信息;
编排触发模块,用于在通过所述kubernetes云平台的可视化界面接收到编排指令的情况下,根据所述应用的编排信息生成所述应用的编排请求。
另外,本发明实施例还提供了一种基于云平台的应用编排装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例所述方法的步骤。
为使本领域技术人员更好地了解本发明,下面将以具体实施例说明本发明的实施方式。
图2是本发明一具体实施例的基于云平台的应用编排架构示意图。参见图2,该应用编排架构所使用的场景主要包括云平台、kubernetes、Helm、及仓库(ChartRepository)。该应用编排架构中主要包含Layout Center(又可称为布局中心、应用编排装置、或组件),具体可包含处理器模块Processor、控制器模块Controller、模板库TemplatePackage、接收端口模块Client、消息队列MSMQ等。本发明实施例的应用编排架构可以基于现有Helm实现。具体实施时,需要一个完整的kubernetes集群,并部署好Helm(如Helm v3)到kubernetes集群中,然后,可将本发明实施例的应用编排装置(或称为组件)LayoutCenter部署到kubernetes集群中。当环境准备完毕后,用户在进行应用的编排时,可以使用本发明实施例的应用编排装置编写chart。本发明实施例应用编排装置可以不影响Helm和kubernetes的单独运行和使用。
基于图2所示架构,本实施例的应用编排方法是一种基于容器云平台的可视化应用编排与发布方法,可包括以下步骤:
1.Layout Center在接收到容器平台发出的编排请求后,Client(为C-S架构中的Client,便于开发人员使用的客户端,不同于普通用户使用的客户端)可判断该请求是哪一种类型的编排请求(创建CREATE/更新UPDATE);Client可以按不同类型将编排请求分配给不同的消息队列(MSMQ)去处理;
2.Layout Center中的Controller在接收消息队列(MSMQ)发出的任务后,可以根据创建CREATE/更新UPDATE的类型分别处理;
Controller可以为每个任务创建一个thread(线程)以单独处理该任务;当任务结束后可以收回该thread(线程)的资源;
如果是创建UPDATE类型,Controller可以将任务直接交给Processor进行处理;Processor能够在原有chart模板的基础上,根据编排的配置信息进行修改编排;
如果是创建CREATE,Controller可以根据当前的kubernetes版本到TemplatePackage中去寻找对应的版本;如果Template Package中没有该模板,Controller可以向helm请求生成对应的模板,并保存一份副本在Template Package中,同时可将chart模板和编排信息发送给Processor进行编排;
编排结束后,Processor可以模拟helm的发布形式,对编排好的chart进行测试,以确保chart的可用性;在chart测试结束后,Processor可以再将chart发送给Controller;
3.在更新UPDATE或创建CREATE请求的编排结束后,Layout Center中的Controller会将chart通过消息队列(MSMQ)通过HTTP请求发送给helm。helm在接收到chart信息后,用户可以根据自身需求对该chart进行发布到kubernetes平台上或者保存到repository中。
以编写应用WordPress为例,应用WordPress需要使用Mariadb(数据库应用)、WordPress(具体服务)、RabbitMQ(消息队列应用)三个应用。可以通过本实施例的方法将这三个独立的应用通过可视化的编排方案,以最低的时间成本编排出一个符合需求的应用发布出去。
图3是利用本发明实施例的应用编排方法对应用WordPress进行编排的框架示意图。参见图3,利用本实施例的应用编排方法对应用WordPress进行编排可包括以下过程。
1.请求应用列表
首先,用户可以在kubernetes云平台的界面上点击“编排应用”按钮,云平台可以发送Http GET请求到helm中,以获取所有的应用列表;helm在接收到Http GET请求后会向Repository发送Http GET请求,以获取所有的应用信息;Repository在接收到Http GET请求后,会检查仓库里的应用信息,并将应用信息通过Http Post发送给helm;helm在接收到这些应用信息后会将其转发到kubernetes云平台;kubernetes云平台在接收到应用列表(应用信息)后,可以将应用列表中的这些应用按照应用仓库的地址来分开展示。
2.可视化应用编排
用户根据需求可以选择应用(如果没有该应用,用户可以选择创建新应用),如本应用WordPress中,用户需要用到Mariadb、WordPress、Rabbitmq,而WordPress在平台的应用商店(helm)中并没有,所以此时用户可以去创建一个WordPress应用来进行编排。
用户可以根据需求自己选择应用的类别,从而可以快速的进行编排。例如,选择数据库应用Mariadb,当用户选择该应用为数据库应用后,Layout Center可以识别出Mariadb,并可根据Mariadb的特点自动为用户配置Mariadb的admin用户名、密码、端口等参数选项(可以根据云平台例如所有可能的参数选项,此处,可以根据应用类型列出相关参数选项,并可以自动给出默认配置信息值),用户也可以根据自身需求更改、删除及添加相应的参数选项。对于消息队列RabbitMQ(即,Rabbitmq),用户也可以像Mariadb一样根据对应的参数选项的配置信息设置提示去设置配置信息。如果是用户自己开发的应用(此处可为应用WordPress),用户可以根据该应用的实际情况去指定要设置的配置信息,例如,port、URL、image、image PullPolicy、volume等。设置好所需参数选项的配置信息后,即可得到编排信息。
3.开始编排
当用户设置好应用的各参数选项的配置信息后,可以点击云平台界面上的“开始编排”按钮,云平台会向Layout Center发送Http Create编排请求(包含编排信息)。
Layout Center中的Client可以接收到云平台发送的编排请求,之后可以根据编排请求的类型(如创建类型或更新类型)和云平台kubernetes的版本将编排请求分类并通过消息队列MSMQ传递给Layout Center中的控制器Controller(或称控制器模块),Controller可以在Template Package中查找是否有相应的chart模板。如果没有,LayoutCenter可以通过组件或控制器模块Controller向helm发送Http Post请求生成对应版本的chart模板,并保存一个副本到Template Package。当Layout Center拥有对应的helm模板后,Layout Center中的Controller可以将chart模板和用户定制的编排信息发送给Processor进行编排。Processor编排结束后可以对生成的chart进行校验,具体可模拟kubernetes部署校验,校验结束后生成一个helm chart,如下所示:
4.校验模板
当Layout Center编排出一个满足需求的helm chart后,Layout Center可通过Controller将该chart发送到helm中,并可发送校验的请求。helm在接收到Layout Center发送的helm chart后,可根据请求做语法校验。如果校验成功,可以生成一个helm release发送给Kube API。
5.应用发布和模板保存
Kube API在接收到helm release后,kubernetes可根据helm release中的yaml文件中的控制器类型选择不同的控制器进行部署该应用,当应用部署成功后,用户可以在云平台的界面上看到应用的部署情况,同时Kube API可以将应用的部署情况发送给helm,helm在接收到部署成功的信息后,可将该chart保存到repository中,实现编排模板的发布和保存。
用户只需在集成了chart编排工具的kubernetes云平台管理界面上根据提示输入所需构建chart的信息(包括但不限于镜像、用户名、密码、端口、卷等)。编排工具会根据用户输入的chart数据信息和对应kubernetes版本的chart模板,结合chart的语法格式进行chart编排,从而得到用于所需的chart。用户可以对编排好的chart进行发布和保存。
本实施例,采用可视化的应用编排方式,可供用户选择参数选项的配置信息,在helm的基础上进行编排且不用基于helm的基本语法进行编排,降低了用户应用编排的难度和门槛,让非专业的人员也能够快速高效的部署一套可靠的应用。且无需修改helm和kubernetes的代码,可以作为helm的类似于扩展或插件的工具使用,不影响helm和kubernetes的单独使用和运行。用户不仅可以对已有的chart快速进行更新类型的编排,还可以根据自己的需求进行可视化的创建类型的应用编排。还可根据需要编排的应用的类型给出相应编排模板指导,进一步让用户以最低的难度和最快的时间高效的部署一套应用,同时可以降低用户对于自己不熟悉应用的编排所需要知识的门槛。简言之,本方案可以实现可视化的应用编排,降低了应用编排的难度;可允许对已有的chart进行可视化升级更新;对helm和kubernetes的代码无需更改,方案实现方便。
综上所述,本发明实施例的基于云平台的应用编排方法、基于云平台的应用编排装置及计算机可读存储介质,通过可使用户通过可视化的选项填写应用的配置信息,而不需专业的helm知识编写chart文件,因此能够降低应用编排的难度。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于云平台的应用编排方法,其特征在于,包括:
基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求;
在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板;
根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart;所述编排信息包括从kubernetes云平台相关的参数选项选择的配置信息;
发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
2.如权利要求1所述的基于云平台的应用编排方法,其特征在于,
在所述编排请求为创建类型的情况下,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板,包括:
在所述编排请求为创建类型的情况下,将所述编排请求分配给对应于创建类型任务的消息队列,并通过对应于创建类型任务的消息队列发出所述编排请求对应的创建任务;
根据所述编排请求对应的创建任务,从预先建立的模板库中查找到对应于所述kubernetes云平台中kubernetes版本的chart模板,或者,在无法从所述模板库查找到chart模板的情况下,发送模板生成请求至所述kubernetes云平台的helm,以生成对应于所述kubernetes云平台中kubernetes版本的chart模板;
发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,包括:
通过消息队列发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart。
3.如权利要求1所述的基于云平台的应用编排方法,其特征在于,还包括:
在无法从所述模板库查找到chart模板的情况下,将生成的对应于所述kubernetes云平台中kubernetes版本的chart模板保存至所述模板库中。
4.如权利要求1所述的基于云平台的应用编排方法,其特征在于,发送所述应用的chart至所述kubernetes云平台的helm,以保存和/或发布所述应用的chart,包括:
发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和/或发布所述应用的chart。
5.如权利要求4所述的基于云平台的应用编排方法,其特征在于,发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以对所述应用的chart进行测试并在测试通过的情况下保存和发布所述应用的chart,包括:
发送校验请求和所述应用的chart至所述kubernetes云平台的helm,以使所述kubernetes云平台的helm对所述应用的chart进行语法校验,并在校验成功的情况下,使所述kubernetes云平台的helm生成helm release并将生成的helm release发送至所述kubernetes云平台的Kube API,使所述kubernetes云平台的Kube API根据helm release中的yaml文件中的控制器类型选择相应控制器部署所述应用并在成功部署所述应用后输出部署状态至所述kubernetes云平台进行显示,并且所述kubernetes云平台的Kube API发送部署状态至所述kubernetes云平台的helm,使所述kubernetes云平台的helm将所述应用的chart保存至仓库中。
6.如权利要求1所述的基于云平台的应用编排方法,其特征在于,还包括:
在所述编排请求为更新类型的情况下,执行根据对应于所述kubernetes云平台中kubernetes版本的chart模板和所述编排请求中的编排信息进行编排,得到所述应用的chart的步骤。
7.如权利要求1至6任一项所述的基于云平台的应用编排方法,其特征在于,所述可视化界面为所述kubernetes云平台的可视化界面。
8.如权利要求1所述的基于云平台的应用编排方法,其特征在于,基于可视化界面获取用户针对对应kubernetes云平台制作应用的编排请求,包括:
生成kubernetes云平台相关的参数选项,并在kubernetes云平台的可视化界面上显示所述kubernetes云平台相关的参数选项;
接收基于所述参数选项为应用选择的配置信息,得到所述应用的编排信息;
在通过所述kubernetes云平台的可视化界面接收到编排指令的情况下,根据所述应用的编排信息生成所述应用的编排请求。
9.一种基于云平台的应用编排装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065418.2A CN114363400A (zh) | 2020-09-30 | 2020-09-30 | 基于云平台的应用编排方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011065418.2A CN114363400A (zh) | 2020-09-30 | 2020-09-30 | 基于云平台的应用编排方法、装置及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114363400A true CN114363400A (zh) | 2022-04-15 |
Family
ID=81089646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011065418.2A Pending CN114363400A (zh) | 2020-09-30 | 2020-09-30 | 基于云平台的应用编排方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363400A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681451A (zh) * | 2018-05-14 | 2018-10-19 | 浪潮软件集团有限公司 | 一种可视化的kubernetes微服务编排的实现方法 |
CN109062655A (zh) * | 2018-06-05 | 2018-12-21 | 腾讯科技(深圳)有限公司 | 一种容器化云平台及服务器 |
CN109165020A (zh) * | 2018-07-25 | 2019-01-08 | 山东中创软件商用中间件股份有限公司 | 应用编排方法、装置、设备以及计算机可读存储介质 |
CN110166278A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | Kubernetes集群搭建方法、装置、计算机设备及存储介质 |
CN110704048A (zh) * | 2019-09-29 | 2020-01-17 | 北京浪潮数据技术有限公司 | 一种应用发布方法及相关装置 |
CN110704164A (zh) * | 2019-09-30 | 2020-01-17 | 珠海市新德汇信息技术有限公司 | 一种基于Kubernetes技术的云原生应用平台构建方法 |
CN110768833A (zh) * | 2019-10-25 | 2020-02-07 | 北京宝兰德软件股份有限公司 | 基于kubernetes的应用编排部署方法及装置 |
CN111274000A (zh) * | 2020-01-21 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种服务编排方法、装置及电子设备和存储介质 |
CN111338657A (zh) * | 2020-02-26 | 2020-06-26 | 山东汇贸电子口岸有限公司 | 一种基于模板的helm参数批量配置方法 |
CN111459493A (zh) * | 2020-03-26 | 2020-07-28 | 杭州指令集智能科技有限公司 | 一种基于组件编排的编程方法、装置及设备 |
CN111552471A (zh) * | 2020-04-07 | 2020-08-18 | 电科云(北京)科技有限公司 | 混合云环境下的任务编排方法及系统 |
-
2020
- 2020-09-30 CN CN202011065418.2A patent/CN114363400A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681451A (zh) * | 2018-05-14 | 2018-10-19 | 浪潮软件集团有限公司 | 一种可视化的kubernetes微服务编排的实现方法 |
CN109062655A (zh) * | 2018-06-05 | 2018-12-21 | 腾讯科技(深圳)有限公司 | 一种容器化云平台及服务器 |
CN109165020A (zh) * | 2018-07-25 | 2019-01-08 | 山东中创软件商用中间件股份有限公司 | 应用编排方法、装置、设备以及计算机可读存储介质 |
CN110166278A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | Kubernetes集群搭建方法、装置、计算机设备及存储介质 |
CN110704048A (zh) * | 2019-09-29 | 2020-01-17 | 北京浪潮数据技术有限公司 | 一种应用发布方法及相关装置 |
CN110704164A (zh) * | 2019-09-30 | 2020-01-17 | 珠海市新德汇信息技术有限公司 | 一种基于Kubernetes技术的云原生应用平台构建方法 |
CN110768833A (zh) * | 2019-10-25 | 2020-02-07 | 北京宝兰德软件股份有限公司 | 基于kubernetes的应用编排部署方法及装置 |
CN111274000A (zh) * | 2020-01-21 | 2020-06-12 | 苏州浪潮智能科技有限公司 | 一种服务编排方法、装置及电子设备和存储介质 |
CN111338657A (zh) * | 2020-02-26 | 2020-06-26 | 山东汇贸电子口岸有限公司 | 一种基于模板的helm参数批量配置方法 |
CN111459493A (zh) * | 2020-03-26 | 2020-07-28 | 杭州指令集智能科技有限公司 | 一种基于组件编排的编程方法、装置及设备 |
CN111552471A (zh) * | 2020-04-07 | 2020-08-18 | 电科云(北京)科技有限公司 | 混合云环境下的任务编排方法及系统 |
Non-Patent Citations (1)
Title |
---|
盛乐标;周庆林;游伟倩;张予倩;: "Kubernetes高可用集群的部署实践", 电脑知识与技术, no. 26, 15 September 2018 (2018-09-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9519884B2 (en) | Data driven dynamic workflow | |
WO2018036342A1 (zh) | 基于csar的模型文件的可视化设计方法及装置 | |
US11157270B2 (en) | Multi-platform pattern-based user interfaces | |
CN112965785B (zh) | 基于容器的微服务应用开发方法及开发平台 | |
US10120658B2 (en) | Method and system for realizing software development tasks | |
US11797273B2 (en) | System and method for enhancing component based development models with auto-wiring | |
US20090132211A1 (en) | Automated solution for generating architectural design models for service-oriented architecture (soa) information services | |
WO2020015191A1 (zh) | 业务规则的发布管理方法、电子装置及可读存储介质 | |
US9329897B2 (en) | Use of dynamic profiles for creating and using a distributed computing environment | |
Gómez et al. | An approach to the co-creation of models and metamodels in Enterprise Architecture Projects. | |
CN113835705B (zh) | 大数据服务产品开发方法、装置及系统 | |
US10452371B2 (en) | Automating enablement state inputs to workflows in z/OSMF | |
US8245182B2 (en) | Class selectable design sharing | |
CN114363400A (zh) | 基于云平台的应用编排方法、装置及计算机可读存储介质 | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
CN113449387B (zh) | 云计算的数据处理方法、装置及系统、电子设备及介质 | |
JP5177082B2 (ja) | 開発支援装置,プログラム | |
CN114936152A (zh) | 应用测试方法及设备 | |
CN112363700A (zh) | 智能合约的协同创建方法、装置、计算机设备和存储介质 | |
JP2002278759A (ja) | 遠隔操作型ソフトウェア開発システム | |
CN113449386B (zh) | 云计算的数据处理方法及装置、电子设备及介质 | |
CN113449385B (zh) | 云计算的数据处理方法及装置、电子设备及介质 | |
JP2007094453A (ja) | プログラム開発支援システム、プログラム開発支援方法およびプログラム | |
CN117539603A (zh) | 工作流调度方法和装置、计算机可读存储介质 | |
CN116980705A (zh) | 特效制作的方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |