一种OpenStack云平台的服务交互方法、系统及相关组件与流程

文档序号:24184002发布日期:2021-03-09 13:05阅读:72来源:国知局
一种OpenStack云平台的服务交互方法、系统及相关组件与流程
一种openstack云平台的服务交互方法、系统及相关组件
技术领域
1.本发明涉及openstack云平台领域,特别涉及一种openstack云平台的服务交互方法、系统及相关组件。


背景技术:

2.当前,openstack作为云平台管理项目,每个openstack服务都拥有自己独立部署和运维的python库。各个服务利用自身appclient实现模块之间的调度请求。例如:cinder与nova交互,在cinder代码中提供调用nova的api接口(application programming interface,应用程序编程接口),通过api接口调用novaclient接口,由novaclient通过restful请求调用,实现与cinder服务的业务交互。
3.随着openstack项目的发展,每个服务实现的api数量越来越多,意味着库命令越来越多,这种旧模式导致代码结构臃肿,并且各服务之间依赖度过高,很可能会产生形形色色的各种突发情况。此外,由于访问appclient的底层都需要session配置以及python-request的处理,使得每个appclient都需要开发者进行维护,需要较高的时间成本和人力成本。
4.因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种结构精简、便于运维的openstack云平台的服务交互方法、系统及相关组件。其具体方案如下:
6.一种openstack云平台的服务交互方法,包括:
7.通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
8.根据所述配置信息配置openstack sdk插件;
9.通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
10.优选的,所述配置信息包括:配置文件和/或函数传参和/或系统环境变量。
11.优选的,所述配置文件包括:名称、域名、认证方式和认证信息。
12.优选的,所述函数传参包括:参数形式的认证方式和认证信息。
13.优选的,所述系统环境变量包括:用户名、用户密码、项目信息和认证url。
14.优选的,所述配置信息的配置优先级为:所述函数传参优于所述系统环境变量,所述系统环境变量优于所述配置文件。
15.优选的,所述通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端的过程,包括:
16.通过所述openstack sdk插件进行动态代理,调用资源构建rest请求中所需的资
源信息,以创建所述目标服务组件对应的资源实例并返回给用户端。
17.相应的,本申请还公开了一种openstack云平台的服务交互系统,包括:
18.信息获取模块,用于通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
19.配置模块,用于根据所述配置信息配置openstack sdk插件;
20.动作模块,用于通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
21.相应的,本申请还公开了一种openstack云平台的服务交互装置,包括:
22.存储器,用于存储计算机程序;
23.处理器,用于执行所述计算机程序时实现如上文任一项所述openstack云平台的服务交互方法的步骤。
24.相应的,本申请还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述openstack云平台的服务交互方法的步骤。
25.本申请公开了一种openstack云平台的服务交互方法,包括:通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;根据所述配置信息配置openstack sdk插件;通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。本申请通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
27.图1为本发明实施例中一种openstack云平台的服务交互方法的步骤流程图;
28.图2为现有技术中一种服务交互方法示例的流程示意图;
29.图3为本发明实施例中一种服务交互方法实例的流程示意图;
30.图4为本发明实施例中一种openstack云平台的服务交互系统的结构分布图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.随着openstack项目的发展,每个服务实现的api数量越来越多,意味着库命令越来越多,这种旧模式导致代码结构臃肿,并且各服务之间依赖度过高,很可能会产生形形色
色的各种突发情况。此外,由于访问appclient的底层都需要session配置以及python-request的处理,使得每个appclient都需要开发者进行维护,需要较高的时间成本和人力成本。
33.本申请通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
34.本发明实施例公开了一种openstack云平台的服务交互方法,参见图1所示,包括:
35.s1:通过入口函数获取配置信息;
36.所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
37.s2:根据所述配置信息配置openstack sdk插件;
38.具体的,配置信息可以是配置文件、函数传参或系统环境变量的形式,也即所述配置信息包括:配置文件和/或函数传参和/或系统环境变量。
39.可以理解的是,一次配置中,openstack sdk插件可能收到三种配置信息中的一种或多种,为避免不同配置信息之间产生冲突,可设置配置信息之间的优先级,通常所述配置信息的配置优先级为:所述函数传参优于所述系统环境变量,所述系统环境变量优于所述配置文件。
40.进一步,所述配置文件一般包括:名称、域名、认证方式和认证信息;所述函数传参一般包括:参数形式的认证方式和认证信息;所述系统环境变量一般包括:用户名、用户密码、项目信息和认证url。
41.可以理解的是,openstack sdk插件支持用户名和密码的认证,也支持传入token认证。
42.s3:通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
43.具体的,步骤s3包括:
44.通过所述openstack sdk插件进行动态代理,调用资源构建rest请求中所需的资源信息,以创建所述目标服务组件对应的资源实例并返回给用户端。
45.可以理解的是,本实施例中openstack sdk插件作为公共的中间模块,为所有的服务组件提供从源服务组件到目标服务组件的交互接口。openstack sdk插件的出现,整理了原本冗余的代码结构,使整体框架代码结构更为清晰,调用方源服务组件不需要考虑被调用方目标服务组件的处理逻辑,极大程度提高了整体框架的运行稳定性和维护效率。
46.例如,服务组件cinder与nova的交互过程,现有技术如图2所示,在cinder代码中提供调用nova的api接口,通过api接口调用novaclient接口,由novaclient通过restful请求调用实现与cinder服务的业务交互,同样的,如果cinder需要与glance交互也要通过cinder代码中调用glance的api接口,来调用glanceclient接口才可以,各服务之间的交互依赖于appclient;该交互过程通过本实施例实现则如图3所示,cinder通过openstack sdk插件即可与nova或glance进行交互,openstack sdk插件实现了云平台内全方位的动态代理。
47.本申请公开了一种openstack云平台的服务交互方法,包括:通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;根据所述
配置信息配置openstack sdk插件;通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。本实施例通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
48.相应的,本申请还公开了一种openstack云平台的服务交互系统,参见图4所示,包括:
49.信息获取模块1,用于通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
50.配置模块2,用于根据所述配置信息配置openstack sdk插件;
51.动作模块3,用于通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
52.本实施例通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
53.在一些具体的实施例中,所述配置信息包括:配置文件和/或函数传参和/或系统环境变量。
54.在一些具体的实施例中,所述配置文件包括:名称、域名、认证方式和认证信息。
55.在一些具体的实施例中,所述函数传参包括:参数形式的认证方式和认证信息。
56.在一些具体的实施例中,所述系统环境变量包括:用户名、用户密码、项目信息和认证url。
57.在一些具体的实施例中,所述配置信息的配置优先级为:所述函数传参优于所述系统环境变量,所述系统环境变量优于所述配置文件。
58.在一些具体的实施例中,所述动作模块3具体用于:
59.通过所述openstack sdk插件进行动态代理,调用资源构建rest请求中所需的资源信息,以创建所述目标服务组件对应的资源实例并返回给用户端。
60.相应的,本申请还公开了一种openstack云平台的服务交互装置,包括:
61.存储器,用于存储计算机程序;
62.处理器,用于执行所述计算机程序时实现以下步骤:
63.通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
64.根据所述配置信息配置openstack sdk插件;
65.通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
66.本实施例通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
67.在一些具体的实施例中,所述配置信息包括:配置文件和/或函数传参和/或系统环境变量。
68.在一些具体的实施例中,所述配置文件包括:名称、域名、认证方式和认证信息。
69.在一些具体的实施例中,所述函数传参包括:参数形式的认证方式和认证信息。
70.在一些具体的实施例中,所述系统环境变量包括:用户名、用户密码、项目信息和认证url。
71.在一些具体的实施例中,所述配置信息的配置优先级为:所述函数传参优于所述系统环境变量,所述系统环境变量优于所述配置文件。
72.在一些具体的实施例中,所述处理器执行所述存储器中保存的计算机子程序时,具体可以实现以下步骤:
73.通过所述openstack sdk插件进行动态代理,调用资源构建rest请求中所需的资源信息,以创建所述目标服务组件对应的资源实例并返回给用户端。
74.进一步的,本申请实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动硬盘、cd-rom或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
75.通过入口函数获取配置信息;所述配置信息包括源服务组件的组件信息和目标服务组件的组件信息;
76.根据所述配置信息配置openstack sdk插件;
77.通过所述openstack sdk插件进行动态代理,以创建所述目标服务组件对应的资源实例并返回给用户端。
78.本实施例通过配置好的openstack sdk插件进行动态代理,来实现源服务组件和目标服务组件之间的交互,降低了openstack云平台的框架整体耦合度,结构代码精简,后续只需维护openstack sdk插件即可,维护难度大幅降低。
79.在一些具体的实施例中,所述配置信息包括:配置文件和/或函数传参和/或系统环境变量。
80.在一些具体的实施例中,所述配置文件包括:名称、域名、认证方式和认证信息。
81.在一些具体的实施例中,所述函数传参包括:参数形式的认证方式和认证信息。
82.在一些具体的实施例中,所述系统环境变量包括:用户名、用户密码、项目信息和认证url。
83.在一些具体的实施例中,所述配置信息的配置优先级为:所述函数传参优于所述系统环境变量,所述系统环境变量优于所述配置文件。
84.在一些具体的实施例中,所述可读存储介质中存储的计算机子程序被处理器执行时,具体可以实现以下步骤:
85.通过所述openstack sdk插件进行动态代理,调用资源构建rest请求中所需的资源信息,以创建所述目标服务组件对应的资源实例并返回给用户端。
86.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
87.以上对本发明所提供的一种openstack云平台的服务交互方法、系统及相关组件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1