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

一种跨云多集群部署运维方法、系统、处理器和存储介质与流程

2022-04-24 20:41:51 来源:中国专利 TAG:


1.本发明涉及运维技术,尤其是涉及一种跨云多集群部署运维方法、系统、处理器和存储介质。


背景技术:

2.云计算技术已在各行各业中得到广泛应用,用户可以基于云平台部署所需的软件应用,以提供软件服务。云计算通过互联网按需提供it资源,采用按使用量付费的方式,用户可以根据需要从诸如amazon web services(aws)之类的云供应商那里获得技术服务,例如计算能力、存储和数据库,而无需购买、拥有和维护物理数据中心及服务器。
3.随着近年云计算技术的快速发展,云服务提供商也逐渐增多,用户可以根据自己的需要选择合适的云服务。但是,各大厂商的标准并不统一,而且,企业现有的云端应用中的各个产品技术的选型较多,单一云平台难以满足全时全域的优质服务需求和灵活多样的个性化定制的需求,多云(multi-clouds)成为越来越多人的选择。但是,由于项目部署包括多个应用,每个应用又需要部署在其所需的云服务上,运维人员的工作压力大大增大。


技术实现要素:

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.图1为跨云多集群部署运维系统的结构示意图;
34.图2为跨云多集群部署运维系统的组件示意图。
具体实施方式
35.下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
36.实施例1:
37.一种跨云多集群部署运维方法,包括:
38.(1)获取客户端输入的运维信息;
39.客户端可以通过界面交互、输入命令等方式输入运维信息;
40.(2)将运维信息转换为运维请求,运维请求包括运维操作指令以及运维操作指令所针对的目标对象,目标对象为一至多个云集群和/或一至多个云服务器;
41.运维信息是人工输入的,需要将其转换为计算机可读的格式。关于目标对象,在运维工作中,往往需要针对某个云集群、或者多个云集群部署应用,也会针对某个特定的云服务器进行操作,因此目标对象的选择是多样化的。
42.(3)解析运维操作指令,获取目标对象的配置信息,检查目标对象是否支持运维操作指令;本实施例中,预先记录了所有云服务器的配置信息,在确定目标对象后,检索找到目标对象的配置信息与运维操作指令进行检查即可,这样的速度更快。也可以实时请求目标对象,得到目标对象的配置信息。
43.与传统的物理服务器不同,物理意义的集群是指同一个机房中的多个服务器组成的集群,云集群由多个云服务器组成,将多个云服务器划定为一个云集群即可。由于业务平台中,每个应用需要的技术支持、服务和资源存在区别,应用所部署的云服务器可能来自于不同的云供应商,即使是同一家云供应商的云服务器,由于成本原因,其提供的计算资源、运行环境、操作系统、机型、cpu、硬盘、带宽等等多少会存在区别,因此需要获取目标对象的配置信息。除了上述运行环境、cpu等计算相关的资源外,考虑到与不同的云供应商之间的数据通信需要搭建云专线,因此配置信息中记录了云服务器的云供应商、运行状况(是否由于维护或故障停止运行等)和计算资源。
44.解析运维操作指令,可以得知该运维操作指令的类型、所针对的应用或微服务、所需要的计算资源、是否制定了哪个具体的云服务器或云集群等。将配置信息对比客户端输入的运维操作指令,判断运维操作指令的目标对象是否支持这个运维操作指令。如将一个应用部署到一个不支持其运行环境的云服务器上显然是不合理的,进一步的,还可以考虑目标对象上已经部署的应用等是否会影响这个应用的部署,是否存在功能依赖等。如在实际操作时,有时会根据一处已经部署好的云集群或云服务器来更新其他的云集群或云服务器,对于这种运维操作指令,需要考虑每个云服务提供的服务支持是否存在差别,运行参数、环境等是否可以兼容。
45.(4)若目标对象支持运维操作指令,则将运维操作命令转换为目标对象可识别的云控制命令,将云控制命令发送至目标对象,若目标对象不支持运维操作指令,则生成提示信息;
46.不同的云服务器识别的指令存在区别,因此,可以预先存储各个云服务器所支持的指令格式,在目标对象存在多个云服务器时,需要将运维操作指令一一对应的转换为各个云服务器所支持的云控制命令。
47.在执行时,如果目标对象包括多个云服务器,则按照预设置的执行规则,依次发送各个云服务器的云控制命令,如先对同一个云集群的云服务器进行应用部署,或先对同一个云供应商的云服务器进行应用部署等,能够更加规范、快速的进行运维操作。
48.(5)接收目标对象基于云控制命令生成的反馈结果;
49.(6)将反馈结果转换为反馈信息,将反馈信息转换为客户端可识别的状态信息;
50.目标对象基于云控制命令会返回反馈结果,由于格式不同,将反馈结果转换为计算机可读的反馈信息,从而可以根据反馈信息更新目标对象的配置信息,等到下一次再次针对这些目标对象进行运维操作时,就可以使用更新后的配置信息。最后,将反馈信息再转换为近自然语言的状态信息,便于客户端查看。
51.(7)将状态信息返回客户端。
52.此外,考虑到安全性,设置了身份校验和权限校验,在获取客户端输入的运维信息之前,获取客户端的身份信息,将客户端的身份信息与预设置的用户信息进行匹配,若匹配成功,则获取客户端输入的运维信息,否则,生成提示信息。在解析运维操作指令之前,基于客户端的身份信息确定客户端的权限信息,判断客户端的权限信息是否支持运维请求,若支持,则解析运维操作指令,否则,生成提示信息。
53.实施例2:
54.一种跨云多集群部署运维系统,用于实现一种跨云多集群部署运维方法,如图1所示,图中只展示了一个云集群,包括:
55.①
人机交互模块,获取客户端输入的运维信息,将状态信息返回客户端;为了便于交互,人机交互模块集成有界面化操作窗口;
56.事实上,还可以将配置信息可视化的展示出来,便于客户端输入正确的运维信息。
57.②
第一映射模块,将运维信息转换为系统可识别的运维请求,将系统可识别的反馈信息转换为客户端可识别的状态信息,运维请求包括运维操作指令以及运维操作指令所针对的目标对象,目标对象为一至多个云集群和/或一至多个云服务器;
58.③
检查模块,用于解析运维操作指令、获取目标对象的配置信息,检查目标对象是否支持运维操作指令;
59.④
第二映射模块,将运维操作命令转换为目标对象可识别的云控制命令,将反馈结果转换为系统可识别的反馈信息;
60.⑤
云机交互模块,将云控制命令发送至目标对象,接收目标对象基于云控制命令生成的反馈结果;
61.⑥
提示生成模块,用于生成提示信息。
62.本实施例中,如图2所示,构建的跨云多集群部署运维系统用到了多个组件,通过这些组件的协同工作,更便于运维人员进行操作,涉及shell组件、jcraft组件、jgit组件、ss5组件、camel组件、oshi组件、sshj组件、hutool组件、jsoup组件、modal组件和netty组件。
63.(1)shell组件是linux标准默认的shell,bash是一种shell组件,由brian fox和chet ramey共同完成,是bourneagain shell的缩写,内部命令一共有40个。本实施例中设计了自己独有的shell,如下:
[0064][0065]
(2)jcraft组件用于针对linux搭建文件服务器,上传和下载都使用文件流方式即使用resquest和response。功能包括:上传下载、批量上传下载、文件流上传(request)、下载写入文件流(response)、直接读取文件内容、直接写入文件、目录操作、文件删除等,其设计的代码实现如下:
[0066][0067]
(3)jgit组件是一个轻量级的类库,用来实现git的版本控制系统的访问,以及提供核心的版本控制算法。其中,egit这个eclipse上的git插件就是采用jgit开发的。可以通过代码连接git远程仓库,在本地建立版本库,进行拉取、提交、推送等操作。如下:
[0068]
[0069][0070]
(4)ss5组件即socks服务器,实现了socks v4和socks v5协议。作为一种代理服务器,为客户端验证、配置和处理网络请求,相关从业人员可以理解,在此不再赘述。
[0071]
(5)camel组件是一个编程人员调节、整合问题的工具,相关从业人员可以理解,在此不再赘述。
[0072]
(6)oshi组件是基于jna的(本机)操作系统和硬件信息库,相关从业人员可以理解,在此不再赘述。
[0073]
(7)sshj组件是hierynomus在github上开源的java ssh库,支持从known_hosts文件读取验证公钥,支持公钥、密码和交互式的验证方式,相关从业人员可以理解,在此不再赘述。
[0074]
(8)hutool组件是一个小而全的java工具类库,通过静态方法封装,降低相关api的学习成本,提高工作效率,相关从业人员可以理解,在此不再赘述。
[0075]
(9)jsoup组件是一款java的html解析器,可直接解析某个url地址、html文本内容,相关从业人员可以理解,在此不再赘述。
[0076]
(10)modal(对话框)组件,用于需要用户处理事务,又不希望打开新页面以至于打断当前工作状态时,在页面中打开一个浮层,显示对应的操作。
[0077]
设计人员对此组件属性通过配置文件进行设置,包括:设置取消按钮属性,文本,按钮类型;设置是否显示遮罩层;设置确认按钮属性,文本,按钮类型;设置标题文本内容;设置宽度。该组件内部使用一个标志变量(存储“是”或“否”这两种状态)存储当前对话框是否被打开,并使用vue.js双向绑定在组件模板上的条件渲染属性上,将其设置为“是”时,vue.js会通知浏览器显示该模块,反之“否”则隐藏该模块。对话框所需显示的内容使用vue.js的插槽功能,在组件的配置文件中进行设置,当对话框显示时,插槽中的模板内容也会一同被vue.js进行渲染并显示。
[0078]
(11)netty组件是一个nio client-server(客户端服务器)框架,使用netty可以快速开发网络应用,例如服务器和客户端协议,相关从业人员可以理解,在此不再赘述。
[0079]
通过上述多个组件设计出低耦合的可满足其特定功能需求的跨云多集群部署运维系统,各个组件与运维平台之间通过接口联系,可以随时进行编辑,提高了系统的可维护性。
[0080]
实施例3:
[0081]
一种处理器,处理器用于运行程序,其中,程序运行时执行一种跨云多集群部署运维方法,包括:获取客户端输入的运维信息;将运维信息转换为运维请求,运维请求包括运维操作指令以及运维操作指令所针对的目标对象,目标对象为一至多个云集群和/或一至多个云服务器;解析运维操作指令,获取目标对象的配置信息,检查目标对象是否支持运维操作指令;若目标对象支持运维操作指令,则将运维操作命令转换为目标对象可识别的云控制命令,将云控制命令发送至目标对象,若目标对象不支持运维操作指令,则生成提示信息;接收目标对象基于云控制命令生成的反馈结果;将反馈结果转换为反馈信息,将反馈信息转换为客户端可识别的状态信息;将状态信息返回客户端。
[0082]
实施例4:
[0083]
一种存储介质,存储介质存储有可执行程序,在可执行程序运行时执行一种跨云多集群部署运维方法,包括:获取客户端输入的运维信息;将运维信息转换为运维请求,运维请求包括运维操作指令以及运维操作指令所针对的目标对象,目标对象为一至多个云集群和/或一至多个云服务器;解析运维操作指令,获取目标对象的配置信息,检查目标对象是否支持运维操作指令;若目标对象支持运维操作指令,则将运维操作命令转换为目标对象可识别的云控制命令,将云控制命令发送至目标对象,若目标对象不支持运维操作指令,则生成提示信息;接收目标对象基于云控制命令生成的反馈结果;将反馈结果转换为反馈信息,将反馈信息转换为客户端可识别的状态信息;将状态信息返回客户端。
[0084]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献