CN114679366A - 多云环境下面向租户开放运维工具的方法、系统及介质 - Google Patents
多云环境下面向租户开放运维工具的方法、系统及介质 Download PDFInfo
- Publication number
- CN114679366A CN114679366A CN202210575598.1A CN202210575598A CN114679366A CN 114679366 A CN114679366 A CN 114679366A CN 202210575598 A CN202210575598 A CN 202210575598A CN 114679366 A CN114679366 A CN 114679366A
- Authority
- CN
- China
- Prior art keywords
- maintenance tool
- maintenance
- target
- program
- providing
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/20—Network management software packages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种多云环境下面向租户开放运维工具的方法、系统及介质,可以解决现有技术中存在的运维工具改造难度大且成本高的问题,可以提高多云环境下的运维管理效率,该方法包括:获取预设的提供程序开发框架,并基于提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;将各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在多云管理平台运行各个运维工具各自对应的运维工具提供程序;通过多云管理平台将各个运维工具各自对应的运维工具提供程序授权给目标租户;获取目标租户的订阅信息,并基于订阅信息,通过目标运维工具对应的运维工具提供程序,将目标运维工具开放给目标租户。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种多云环境下面向租户开放运维工具的方法、系统及介质。
背景技术
随着云计算的大规模采用,由于业务需要及管理需要,多数组织(企业、单位等)采用多云平台,形成多云管理架构。在多云管理架构下,由上级组织建设云平台,并负责云平台的运维运营管理,下级组织(即租户)向上级组织申请及购买云资源。
目前,组织通常在一级组织建设统一的运维工具,集中在一级组织进行运维管理,通过权限控制来限制访问范围和功能,不满足租户架构的数据隔离要求,通常存在运维工具改造难度大且成本高的问题,以及在存在多级组织时会存在运维管理效率低的问题。
发明内容
基于此,本发明的目的在于提供一种多云环境下面向租户开放运维工具的方法、系统及介质,用于解决现有技术中存在的运维工具改造难度大且成本高的问题,以及提高多云环境下的运维管理效率。
第一方面,本发明实施例提供一种多云环境下面向租户开放运维工具的方法,包括:
获取预设的提供程序开发框架,并基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;所述提供程序开发框架用于规定提供程序开发规范;
将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序;
通过所述多云管理平台将所述各个运维工具各自对应的运维工具提供程序授权给目标租户;
获取所述目标租户的订阅信息,所述订阅信息包括所述目标租户所需订阅的目标运维工具的标识信息,并基于所述订阅信息,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户。
在一种可能的设计中,所述提供程序开发规范包括:
根据提供程序的注册信息获取所述提供程序的类;
提供程序开始执行方法;
提供程序入参格式化方法;
提供程序出参格式化方法;
应用接口程序API转换的方法。
在一种可能的设计中,基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序,包括:
基于所述提供程序开发框架,创建所述各个运维工具各自对应的基础提供程序;
基于所述提供程序开发框架,无代码生成所述各个运维工具各自对应的前端页面;所述前端页面提供可视化组件设计器,所述可视化组件设计器支持采用可视化拖拽方式,在所述前端页面上自定义所述各个运维工具各自对应的数据可视化效果;
基于所述前端页面,获取所述各个运维工具对应的API;
根据所述各个运维工具对应的API,补全所述各个运维工具各自对应的基础提供程序缺少的功能,并在目标目录下自动生成所述各个运维工具各自对应的运维工具提供程序的程序文件,完成所述各个运维工具各自对应的运维工具提供程序的创建。
在一种可能的设计中,在目标目录下自动生成所述各个运维工具各自对应的运维工具提供程序的程序文件,包括:
根据所述各个运维工具各自对应的API,创建API模板规则,使用变量替换关键元素;所述关键元素包括接口地址、请求参数和响应结果;
基于所述API模板规则,解析所述各个运维工具各自对应的API的文档,识别出所述文档中的关键元素;
根据所述关键元素,生成各个运维工具各自对应的API的接入代码,并将该接入代码持久化到目标目录。
在一种可能的设计中,将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,包括:
将所述各个运维工具各自对应的运维工具提供程序的程序文件上传到所述多云管理平台;
将所述程序文件注册到所述多云管理平台中的提供程序列表,完成所述各个运维工具各自对应的运维工具提供程序的注册。
在一种可能的设计中,在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序,包括:
采用Python的反射机制运行所述各个运维工具各自对应的运维工具提供程序。
在一种可能的设计中,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户,包括:
通过所述目标运维工具对应的运维工具提供程序,调用所述目标运维工具对应的API,通过所述目标运维工具对应的API将所述目标运维工具开放给所述目标租户。
第二方面,本发明实施例还提供了一种多云环境下面向租户开放运维工具的系统,包括:
创建单元,用于获取预设的提供程序开发框架,并基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;所述提供程序开发框架用于规定提供程序开发规范;
注册单元,用于将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序;
授权单元,用于通过所述多云管理平台将所述各个运维工具各自对应的运维工具提供程序授权给目标租户;获取所述目标租户的订阅信息,所述订阅信息包括所述目标租户所需订阅的目标运维工具的标识信息,并基于所述订阅信息,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户。
在一种可能的设计中,所述提供程序开发规范包括:
根据提供程序的注册信息获取所述提供程序的类;
提供程序开始执行方法;
提供程序入参格式化方法;
提供程序出参格式化方法;
应用接口程序API转换的方法。
在一种可能的设计中,所述创建单元具体用于:
基于所述提供程序开发框架,创建所述各个运维工具各自对应的基础提供程序;
基于所述提供程序开发框架,无代码生成所述各个运维工具各自对应的前端页面;所述前端页面提供可视化组件设计器,所述可视化组件设计器支持采用可视化拖拽方式,在所述前端页面上自定义所述各个运维工具各自对应的数据可视化效果;
基于所述前端页面,获取所述各个运维工具对应的API;
根据所述各个运维工具对应的API,补全所述各个运维工具各自对应的基础提供程序缺少的功能,并在目标目录下自动生成所述各个运维工具各自对应的运维工具提供程序的程序文件,完成所述各个运维工具各自对应的运维工具提供程序的创建。
在一种可能的设计中,所述创建单元具体用于:
根据所述各个运维工具各自对应的API,创建API模板规则,使用变量替换关键元素;所述关键元素包括接口地址、请求参数和响应结果;
基于所述API模板规则,解析所述各个运维工具各自对应的API的文档,识别出所述文档中的关键元素;
根据所述关键元素,生成各个运维工具各自对应的API的接入代码,并将该接入代码持久化到目标目录。
在一种可能的设计中,所述注册单元具体用于:
将所述各个运维工具各自对应的运维工具提供程序的程序文件上传到所述多云管理平台;
将所述程序文件注册到所述多云管理平台中的提供程序列表,完成所述各个运维工具各自对应的运维工具提供程序的注册。
在一种可能的设计中,所述注册单元具体用于:
采用Python的反射机制运行所述各个运维工具各自对应的运维工具提供程序。
在一种可能的设计中,所述授权单元具体用于:
通过所述目标运维工具对应的运维工具提供程序,调用所述目标运维工具对应的API,通过所述目标运维工具对应的API将所述目标运维工具开放给所述目标租户。
第三方面,本发明实施例还提供了一种多云环境下面向租户开放运维工具的系统,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
本发明的有益技术效果如下:
在本发明实施例提供的技术方案中,获取预设的提供程序开发框架,并基于提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;提供程序开发框架用于规定提供程序开发规范;将各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在多云管理平台运行各个运维工具各自对应的运维工具提供程序;通过多云管理平台将各个运维工具各自对应的运维工具提供程序授权给目标租户;获取目标租户的订阅信息,订阅信息包括目标租户所需订阅的目标运维工具的标识信息,并基于订阅信息,通过目标运维工具对应的运维工具提供程序,将目标运维工具开放给目标租户。通过这种方式,可以通过将多云环境下的各个运维工具开放给目标租户,目标租户无需对多云环境下原有的运维工具进行改造,可以解决现有技术中存在的运维工具改造难度大且成本高的问题,当存在多级组织时,任一级下级组织可以作为目标租户使用多云管理平台开放的运维工具进行多云资源的运维管理,从而可以提高多云环境下的运维管理效率。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本发明实施例提供的一种多云环境下面向租户开放运维工具的方法的流程示意图;
图2为本发明实施例提供的一种在目标目录下自动生成各个运维工具各自对应的运维工具提供程序的程序文件的实现过程示意图;
图3为本发明实施例提供的一种多云环境下面向租户开放运维工具的系统的架构示意图;
图4为本发明实施例提供的另一种多云环境下面向租户开放运维工具的系统的架构示意图。
具体实施方式
以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的实施方式的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本公开中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
请参考图1所示,本发明实施例提供的多云环境下面向租户开放运维工具的方法,可以包括如下步骤:
S11、获取预设的提供程序开发框架,并基于提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序。
在具体实施时,提供程序开发框架用于规定提供程序开发规范,也可以理解为提供程序开发框架规定了提供程序必须实现的类和方法。
在一些实施例中,提供程序开发框架可以预存在多云管理平台上,也可以预存在其它设备(如服务器)或云端上,本发明实施例不限定。
在一些实施例中,提供程序开发规范可以包括但不限于:
a、根据提供程序的注册信息获取提供程序的类。
示例性的,该注册信息可以包括但不限于提供程序的名称、存储路径。
在具体实施时,可以通过如下代码定义开发程序的类:Plugin1Component或get_component_class()。
b、提供程序开始执行方法。
在具体实施时,提供程序开始执行方法可以用于定义提供程序的相关功能的实现方法,例如查询虚拟机列表、虚拟机开机、虚拟机关机、磁盘挂载、磁盘卸载等功能的实现方法。
示例性的,可以采用代码execute()表示提供程序开始执行方法。
c、提供程序入参格式化方法。
在具体实施时,提供程序入参格式化方法可以用于定义提供程序所需的参数(例如同步云平台虚拟机所需的云账号)。
示例性的,可以采用代码inputs_format()提供程序入参格式化方法。
d、提供程序出参格式化方法。
在具体实施时,提供程序出参格式化方法用于格式化提供程序的返回结果(例如任务执行结果、过程信息等)。
示例性的,可以采用代码outputs_format()提供程序出参格式化方法。
e、应用接口程序(Application Programming Interface,API)转换的方法。
在具体实施时,可以通过适配器(Provider)提供API转换方法。示例性的,若不同云平台的鉴权方式不一样,则适配器封装的是不同云平台的鉴权方式,通过云平台的类型返回签名或令牌(token),以供API调用使用,或者,适配器可以可以封装对云平台的过滤器,根据用户角色不同返回不同的数据,以供API调用使用,从而可以实现数据隔离。
在一些实施例中,可以基于提供程序开发框架,创建各个运维工具各自对应的基础提供程序。
示例性的,以运维工具为云平台虚拟机的接入运维工具为例,可以采用如下代码创建该接入运维工具的基础提供程序:
class Plugin1(BasePlugin): # 继承BasePlugin类,提供__init__方法等
def execute(self, data):
#该提供程序实现的功能:获取云平台上的虚拟机列表信息
account_obj = data.get_inputs("account") # 获取入参
client = ResourceClient(
account_obj.account, aes_decrypt(account_obj.password),
account_obj.region, account_obj.cloud_type,
host=account_obj.host, project_id=account_obj.project_id,
domain_id=account_obj.domain_id, endpoint=account_obj.endpoint,version=account_obj.version
).cw
self.sync_client = SYNC_RESOURCE_MAPPING[account_obj.cloud_type](client, account_obj) # 根据云账号信息获取client
ret = self.sync_client.sync_vm() #调用client的sync_vm方法
return ret # 返回结果
def inputs_format(self):
# 该提供程序有一个入参,云账号对象account
return [
self.InputItem(
name=_("云账号"),
key="account",
type="object",
schema=IntItemSchema(description=_("云账号")),
)
]
def outputs_format(self):
# 定义返回参数,该提供程序有2个返回,执行结果result和执行信息message
return [
self.OutputItem(name=_(u'result'), key='result', type='str'),
self.OutputItem(name=_(u'执行信息'), key='message', type='str'),
]
.class Plugin1Component(Component, mateclass=ComponentMeta): name = _("提供程序1")
code = "Plugin1"
bound_service = Plugin1
version = "v1.0"
def get_component_class(self):
return self.bound_service
在一些实施例中,还可以基于提供程序开发框架,无代码生成各个运维工具各自对应的前端页面。其中,该前端页面可以提供可视化组件设计器,该可视化组件设计器支持采用可视化拖拽方式在前端页面上自定义各个运维工具各自对应的数据可视化效果。比如,该可视化组件设计器可以与包含丰富的开箱即可的可视化组件的组件库连接,可以实现PPT式便捷拖拽制作各个运维工具各自对应的数据可视化效果。
示例性的,可以基于提供程序开发框架,根据实际需求选择合适的图表类型,例如文件存储趋势表、租户myaql云硬盘分配表、租户myaql内存分配表等。然后,可以选择数据源,如选择API作为数据源。之后,可以根据实际需求选择所要监控的指标。选择方式可以有自定义新增指标,选择已有的指标以及从已有图表中选择指标。指标可以包括但不限于中央处理器(central processing unit,CPU)、内存等。最后,可以基于所选的图表类型、数据源和指标生成各个运维工具各自对应的前端页面,可以实现低成本构建报表和前端页面。
在一些实施例中,可以基于各个运维工具各自对应的前端页面,获取各个运维工具各自对应的API。
示例性,可以基于各个运维工具各自对应的前端页面所选用的API数据源,获取各个运维工具各自对应的API。
在一些实施例中,可以根据各个运维工具各自对应的API,补全各个运维工具各自对应的基础提供程序缺少的功能,并在目标目录下自动生成各个运维工具各自对应的运维工具提供程序的程序文件,完成各个运维工具各自对应的运维工具提供程序的创建。
在具体实施时,如图2所示,在目标目录下自动生成各个运维工具各自对应的运维工具提供程序的程序文件的实现过程可以如下:
S21、根据各个运维工具各自对应的API,创建API模板规则,使用变量替换关键元素。
在具体实施时,关键元素可以包括但不限于接口地址、请求参数和响应结果。
S22、基于API模板规则,解析各个运维工具各自对应的API的文档,识别出该文档中的关键元素。
示例性的,以API的文档的格式为json数据格式为例,可以采用如下代码解析API的文档:
#!/usr/bin/python3
import json
# Python转换为 JSON 对象
apiData = {
"url": "https: //monitor.canway.net",
"params": {
"name": "monitor",
"level": 1
},
"response": {
"name": "monitor ",
"task": "cpu监控"
}
}
json_str = json.dumps(data1)
print ("Python 原始数据:", repr(data1))
print ("JSON 对象:", json_str)
# 将 JSON 转换为 Python对象,以便后续的API模板解析
data2 = json.loads(json_str)
print ("data2['name']: ", data2['name'])
print ("data2['url']: ", data2['url'])
S23、根据各个运维工具各自对应的API的文档中的关键元素,生成各个运维工具各自对应的API的接入代码,并将该接入代码持久化到目标目录。
示例性的,可以通过适配器将该接入代码持久化到目标目录。
在本发明实施例中,通过基于提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序,可以便于后续租户根据实际需求订阅不同云平台的运维工具。
S12、将各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在多云管理平台运行各个运维工具各自对应的运维工具提供程序。
在一些实施例中,可以将各个运维工具各自对应的运维工具提供程序的程序文件上传到多云管理平台。之后,可以将该程序文件注册到多云管理平台中的提供程序列表,完成各个运维工具各自对应的运维工具提供程序的注册。
比如,上传各个运维工具各自对应的运维工具提供程序的程序文件后,由于提供程序中创建类时将会执行元类的__new__方法,可以在执行元类的__new__方法的过程中,将新的提供程序自动注册到多云管理平台中的提供程序列表中,可以理解为,若各个运维工具各自对应的运维工具提供程序不在该提供程序列表中,那么在上传各个运维工具各自对应的运维工具提供程序的程序文件后,即可将该程序文件自动注册到该程序列表中,实现各个运维工具各自对应的运维工具提供程序的自动注册。
示例性的,可以采用如下代码实现各个运维工具各自对应的运维工具提供程序的自动注册:
class ComponentMeta(type):
def __new__(mcs, name, bases, attrs):
# 获取指定该类为元类的类,并加载,用于获取其属性
super_new = super().__new__
module_name = attrs.pop("__module__")
new_cls = super_new(mcs, name, bases, {"__module__": module_name})
module = importlib.import_module(new_cls.__module__)
#根据其属性判断是否无需注册
if not getattr(module, "__register_ignore__", False):
# 调用ComponentLibrary的注册方法将提供程序自动注册到系统
ComponentLibrary.register_component(
component_code=new_cls.code, version=new_cls.version, component_cls=new_cls
)
return new_cls
在一些实施例中,可以采用Python的反射机制运行各个运维工具各自对应的运维工具提供程序。比如,可以采用现有的Python的反射机制运行各个运维工具各自对应的运维工具提供程序。
在具体实施时,Python的反射是一种基于字符串的事件驱动,如通过字符串导入模块(对象),以及通过字符串操作(比如查找、获取、删除和添加等)模块的成员。例如,Python中要加载plugins/plugin1.py文件,可写为import plugins.plugin1,即导入的语句与文件路径相对应,基于这个机制,可以通过路径字符串,来找到对应的模块和类,从而实现对应模块的动态加载。getattr()可以根据字符串获取对象的属性,通过getattr(plugin1,“Plugin1”),可以根据字符串“ Plugin1”获取模块plugin1下的类Plugin1,把需要的类加载进来之后就可以直接使用该类实例化对象并调用其方法。
示例性的,可以通过字符串的形式导入各个运维工具各自对应的运维工具提供程序的模块,以及可以通过字符串的形式去各个运维工具各自对应的运维工具提供程序的模块中寻找并执行指定函数,再利用字符串的形式去各个运维工具各自对应的运维工具提供程序的模块中操作成员,从而可以根据各个运维工具各自对应的运维工具提供程序的注册信息,加载各个运维工具各自对应的运维工具提供程序的模块。
作为一种示例,可以采用如下代码实现采用Python的反射机制动态加载运行各个运维工具各自对应的运维工具提供程序的模块并调用其execute方法:
def execute(self, component_code):
server_info = {}
component = ComponentLibrary.get_component_class(component_code)
module_path, cls_name = component.path.rsplit('.', maxsplit=1)
try:
# 动态加载模块
module = importlib.import_module(module_path)
cls = getattr(module, cls_name, None)
# 实例化提供程序对象
obj = cls()
# 调用execute方法
ret = obj.execute()
except ModuleNotFoundError as e:
status = False
msg = "模块[{cls_name}]未找到".format(cls_name=cls_name)
如上述代码,可以根据component_code获取提供程序的注册信息,将注册的路径字符串切分为module_path, cls_name,通过importlib.import_module模块加载模块module_path,效果等同于import module_path,再通过getattr(module, cls_name,None)获取module_path下的类cls_name,之后通过实例化这个类obj=cls()获取类实例obj,就可以调用该类的execute方法。
本发明实施例中,通过采用Python的反射机制运行各个运维工具各自对应的运维工具提供程序,可以在无需重启服务的前提下,实现各个运维工具各自对应的运维工具提供程序的模块的导入及调用。
S13、通过多云管理平台将各个运维工具各自对应的运维工具提供程序授权给目标租户。
在具体实施时,可以在多云管理平台上,将已正常运行的运维工具提供程序,授权给目标租户,也可以理解为指定租户。
示例性的,目标租户可以通过多云管理平台查看已授权的运维工具提供程序,确定已授权使用的运维工具。
S14、获取目标租户的订阅信息,并基于该订阅信息,通过目标运维工具对应的运维工具提供程序,将目标运维工具开放给目标租户。
在具体实施时,该订阅信息包括目标租户所需订阅的目标运维工具的标识信息。其中,该标识信息可以唯一标识目标运维工具。
在具体实施时,目标租户可以根据已授权的运维工具提供程序,根据实际需求订阅所需的目标运维工具,例如监控。
在具体实施时,为目标租户订阅目标运维工具后,可以在多云管理平台的运维工具列表中列出目标租户已订阅的运维工具,便于目标租户了解到自己已订阅的运维工具,方便目标租户后续根据实际需求使用相应的运维工具。
在一些实施例中,可以通过目标运维工具对应的运维工具提供程序,调用目标运维工具对应的API,再通过目标运维工具对应的API将目标运维工具开放给目标租户。
在具体实施时,目标运维工具的前端页面可以与目标运维工具对应的运维工具提供程序的前端页面一致,在目标租户需要使用目标运维工具时,可以通过目标运维工具对应的API获取目标运维工具的数据,并操作目标运维数据,便于目标租户开放使用目标运维工具。
示例性的,可以通过目标运维工具对应的API权限匹配多云管理平台中设定目标租户使用目标运维工具的数据权限。
本发明实施例中,通过将多云环境下的各个运维工具开放给目标租户,目标租户无需对多云环境下原有的运维工具进行改造,可以解决现有技术中存在的运维工具改造难度大且成本高的问题,当存在多级组织时,任一级下级组织可以作为目标租户使用多云管理平台开放的运维工具进行多云资源的运维管理,从而可以提高多云环境下的运维管理效率。
综上,在具体实施的过程中,通过采用本发明实施例提供的技术方案,可以为组织多云环境下的运维管理带来如下效果:
A、总成本降低:无需对原有工具进行改造,无需重复的工具建设成本,无需建设庞大的运维团队。通过采用预设的提供程序开发框架开发提供程序,可以降低提供程序的开发难度低、工作量,从而降低了总体成本。
B、管理效率提升:可以由一级组织负责云平台管理及运维工具建设,下级中的各级组织负责云资源及应用运维,减少了多级沟通及响应成本,提升了运维管理效率。
C、稳定性提升:云平台及运维工具由一级组织的较高水平运维团队负责,提升了运维工具的稳定性,下级中的各级组织无需维护运维工具,只需要利用运维工具维护其云资源及应用,从云平台到运维工具、从云资源到应用都得到较好的运维管理,提升了整体的稳定性。
D、自主可控:可以在运维工具提供程序中根据实际需求提供面向租户的运维工具以及运维工具中包含的功能,且无需运维工具的原厂商即可进行提供程序开发。
基于同一发明构思,本发明实施例还提供了一种多云环境下面向租户开放运维工具的系统,如图3所示,多云环境下面向租户开放运维工具的系统200可以包括:
创建单元201,用于获取预设的提供程序开发框架,并基于提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;提供程序开发框架用于规定提供程序开发规范;
注册单元202,用于将各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在多云管理平台运行各个运维工具各自对应的运维工具提供程序;
授权单元203,用于通过多云管理平台将各个运维工具各自对应的运维工具提供程序授权给目标租户;获取目标租户的订阅信息,订阅信息包括目标租户所需订阅的目标运维工具的标识信息,并基于订阅信息,通过目标运维工具对应的运维工具提供程序,将目标运维工具开放给目标租户。
在一种可能的设计中,提供程序开发规范包括:
根据提供程序的注册信息获取提供程序的类;
提供程序开始执行方法;
提供程序入参格式化方法;
提供程序出参格式化方法;
应用接口程序API转换的方法。
在一种可能的设计中,创建单元201具体用于:
基于提供程序开发框架,创建各个运维工具各自对应的基础提供程序;
基于提供程序开发框架,无代码生成各个运维工具各自对应的前端页面;前端页面提供可视化组件设计器,可视化组件设计器支持采用可视化拖拽方式,在前端页面上自定义各个运维工具各自对应的数据可视化效果;
基于前端页面,获取各个运维工具对应的API;
根据各个运维工具对应的API,补全各个运维工具各自对应的基础提供程序缺少的功能,并在目标目录下自动生成各个运维工具各自对应的运维工具提供程序的程序文件,完成各个运维工具各自对应的运维工具提供程序的创建。
在一种可能的设计中,创建单元201具体用于:
根据各个运维工具各自对应的API,创建API模板规则,使用变量替换关键元素;关键元素包括接口地址、请求参数和响应结果;
基于API模板规则,解析各个运维工具各自对应的API的文档,识别出文档中的关键元素;
根据关键元素,生成各个运维工具各自对应的API的接入代码,并将该接入代码持久化到目标目录。
在一种可能的设计中,注册单元202具体用于:
将各个运维工具各自对应的运维工具提供程序的程序文件上传到多云管理平台;
将程序文件注册到多云管理平台中的提供程序列表,完成各个运维工具各自对应的运维工具提供程序的注册。
在一种可能的设计中,注册单元202具体用于:
采用Python的反射机制运行各个运维工具各自对应的运维工具提供程序。
在一种可能的设计中,授权单元203具体用于:
通过目标运维工具对应的运维工具提供程序,调用目标运维工具对应的API,通过目标运维工具对应的API将目标运维工具开放给目标租户。
本发明实施例中的多云环境下面向租户开放运维工具的系统200与上述图1所示的多云环境下面向租户开放运维工具的方法是基于同一构思下的发明,通过前述对多云环境下面向租户开放运维工具的方法的详细描述,本领域技术人员可以清楚的了解本实施例中多云环境下面向租户开放运维工具的系统200的实施过程,所以为了说明书的简洁,在此不再赘述。
基于同一发明构思,本发明实施例还提供了一种多云环境下面向租户开放运维工具的系统,如图4所示,多云环境下面向租户开放运维工具的系统300可以包括:至少一个存储器301和至少一个处理器302。其中:
至少一个存储器301用于存储一个或多个程序。
当一个或多个程序被至少一个处理器302执行时,实现上述图1所示的多云环境下面向租户开放运维工具的方法。
多云环境下面向租户开放运维工具的系统300还可以可选地包括通信接口,通信接口用于与外部设备进行通信和数据交互传输。
需要说明的是,存储器301可能包含高速RAM存储器,也可能还包括非易失性存储器(nonvolatile memory),例如至少一个磁盘存储器。
在具体的实现过程中,如果存储器、处理器及通信接口集成在一块芯片上,则存储器、处理器及通信接口可以通过内部接口完成相互间的通信。如果存储器、处理器和通信接口独立实现,则存储器、处理器和通信接口可以通过总线相互连接并完成相互间的通信。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以存储有至少一个程序,当至少一个程序被处理器执行时,实现上述图1所示的多云环境下面向租户开放运维工具的方法。
应当理解,计算机可读存储介质为可存储数据或程序的任何数据存储设备,数据或程序其后可由计算机系统读取。计算机可读存储介质的示例包括:只读存储器、随机存取存储器、CD-ROM、HDD、DVD、磁带和光学数据存储设备等。
计算机可读存储介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。
计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等,或者上述的任意合适的组合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种多云环境下面向租户开放运维工具的方法,其特征在于,包括:
获取预设的提供程序开发框架,并基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;所述提供程序开发框架用于规定提供程序开发规范;
将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序;
通过所述多云管理平台将所述各个运维工具各自对应的运维工具提供程序授权给目标租户;
获取所述目标租户的订阅信息,所述订阅信息包括所述目标租户所需订阅的目标运维工具的标识信息,并基于所述订阅信息,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户。
2.如权利要求1所述的方法,其特征在于,所述提供程序开发规范包括:
根据提供程序的注册信息获取所述提供程序的类;
提供程序开始执行方法;
提供程序入参格式化方法;
提供程序出参格式化方法;
应用接口程序API转换的方法。
3.如权利要求1所述的方法,其特征在于,基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序,包括:
基于所述提供程序开发框架,创建所述各个运维工具各自对应的基础提供程序;
基于所述提供程序开发框架,无代码生成所述各个运维工具各自对应的前端页面;所述前端页面提供可视化组件设计器,所述可视化组件设计器支持采用可视化拖拽方式,在所述前端页面上自定义所述各个运维工具各自对应的数据可视化效果;
基于所述前端页面,获取所述各个运维工具对应的API;
根据所述各个运维工具对应的API,补全所述各个运维工具各自对应的基础提供程序缺少的功能,并在目标目录下自动生成所述各个运维工具各自对应的运维工具提供程序的程序文件,完成所述各个运维工具各自对应的运维工具提供程序的创建。
4.如权利要求3所述的方法,其特征在于,在目标目录下自动生成所述各个运维工具各自对应的运维工具提供程序的程序文件,包括:
根据所述各个运维工具各自对应的API,创建API模板规则,使用变量替换关键元素;所述关键元素包括接口地址、请求参数和响应结果;
基于所述API模板规则,解析所述各个运维工具各自对应的API的文档,识别出所述文档中的关键元素;
根据所述关键元素,生成各个运维工具各自对应的API的接入代码,并将该接入代码持久化到目标目录。
5.如权利要求3所述的方法,其特征在于,将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,包括:
将所述各个运维工具各自对应的运维工具提供程序的程序文件上传到所述多云管理平台;
将所述程序文件注册到所述多云管理平台中的提供程序列表,完成所述各个运维工具各自对应的运维工具提供程序的注册。
6.如权利要求1-5任一项所述的方法,其特征在于,在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序,包括:
采用Python的反射机制运行所述各个运维工具各自对应的运维工具提供程序。
7.如权利要求1-5任一项所述的方法,其特征在于,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户,包括:
通过所述目标运维工具对应的运维工具提供程序,调用所述目标运维工具对应的API,通过所述目标运维工具对应的API将所述目标运维工具开放给所述目标租户。
8.一种多云环境下面向租户开放运维工具的系统,其特征在于,包括:
创建单元,用于获取预设的提供程序开发框架,并基于所述提供程序开发框架,创建多云环境下的各个运维工具各自对应的运维工具提供程序;所述提供程序开发框架用于规定提供程序开发规范;
注册单元,用于将所述各个运维工具各自对应的运维工具提供程序注册到多云管理平台上,并在所述多云管理平台运行所述各个运维工具各自对应的运维工具提供程序;
授权单元,用于通过所述多云管理平台将所述各个运维工具各自对应的运维工具提供程序授权给目标租户;获取所述目标租户的订阅信息,所述订阅信息包括所述目标租户所需订阅的目标运维工具的标识信息,并基于所述订阅信息,通过目标运维工具对应的运维工具提供程序,将所述目标运维工具开放给所述目标租户。
9.一种多云环境下面向租户开放运维工具的系统,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器用于存储一个或多个程序;
当所述一个或多个程序被所述至少一个处理器执行时,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210575598.1A CN114679366B (zh) | 2022-05-25 | 2022-05-25 | 多云环境下面向租户开放运维工具的方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210575598.1A CN114679366B (zh) | 2022-05-25 | 2022-05-25 | 多云环境下面向租户开放运维工具的方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114679366A true CN114679366A (zh) | 2022-06-28 |
CN114679366B CN114679366B (zh) | 2022-08-09 |
Family
ID=82079554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210575598.1A Active CN114679366B (zh) | 2022-05-25 | 2022-05-25 | 多云环境下面向租户开放运维工具的方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114679366B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111177617A (zh) * | 2019-12-06 | 2020-05-19 | 上海上讯信息技术股份有限公司 | 基于运维管理系统的web直接运维方法、装置及电子设备 |
US20200257515A1 (en) * | 2019-02-12 | 2020-08-13 | Open Text Corporation | Methods and systems for packaging and deployment of applications in a multitenant platform |
CN112527379A (zh) * | 2020-12-01 | 2021-03-19 | 深圳市证通电子股份有限公司 | 基于Guacamole的堡垒机应用运维方法、装置、设备及介质 |
CN112732811A (zh) * | 2020-12-31 | 2021-04-30 | 广西中科曙光云计算有限公司 | 一种数据开放平台 |
CN114518934A (zh) * | 2021-12-31 | 2022-05-20 | 安徽海豚新媒体产业发展有限公司 | 一种统一运维平台架构系统 |
-
2022
- 2022-05-25 CN CN202210575598.1A patent/CN114679366B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200257515A1 (en) * | 2019-02-12 | 2020-08-13 | Open Text Corporation | Methods and systems for packaging and deployment of applications in a multitenant platform |
CN111177617A (zh) * | 2019-12-06 | 2020-05-19 | 上海上讯信息技术股份有限公司 | 基于运维管理系统的web直接运维方法、装置及电子设备 |
CN112527379A (zh) * | 2020-12-01 | 2021-03-19 | 深圳市证通电子股份有限公司 | 基于Guacamole的堡垒机应用运维方法、装置、设备及介质 |
CN112732811A (zh) * | 2020-12-31 | 2021-04-30 | 广西中科曙光云计算有限公司 | 一种数据开放平台 |
CN114518934A (zh) * | 2021-12-31 | 2022-05-20 | 安徽海豚新媒体产业发展有限公司 | 一种统一运维平台架构系统 |
Non-Patent Citations (1)
Title |
---|
冷迪: "自动化运维管理平台设计及实现", 《技术与市场》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114679366B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
US11620117B2 (en) | Systems and methods for code clustering analysis and transformation | |
CN110023923B (zh) | 生成数据变换工作流 | |
US11188319B2 (en) | Systems and methods for entry point-based code analysis and transformation | |
US10481884B2 (en) | Systems and methods for dynamically replacing code objects for code pushdown | |
US9823907B2 (en) | Extensible device object model | |
US9772890B2 (en) | Sophisticated run-time system for graph processing | |
US8019791B2 (en) | Method and system for transforming metadata modeled in the common information model into grid control target metadata | |
US11593342B2 (en) | Systems and methods for database orientation transformation | |
US11036560B1 (en) | Determining isolation types for executing code portions | |
US8966442B2 (en) | Custom code innovation management | |
CN116860223A (zh) | 一种基于云原生的低代码开发交付方法 | |
US20170185661A1 (en) | Extensible extract, transform and load (etl) framework | |
CN111563015A (zh) | 数据监控方法及装置、计算机可读介质及终端设备 | |
CN114816361A (zh) | 拼搭工程生成方法、装置、设备、介质和程序产品 | |
US11615061B1 (en) | Evaluating workload for database migration recommendations | |
US20140122159A1 (en) | License Meta-Model for Automatic License Reasoning | |
US9037542B2 (en) | Reducing programming complexity in client applications when interfacing with database servers operating with different programming interfaces | |
CN102222193A (zh) | 数据权限设置装置和数据权限设置方法 | |
KR101902191B1 (ko) | 질의 기반 소프트웨어 논리의 동적 변경 및 실행을 위한 멀티테넌트 지원 장치 및 방법 | |
CN114679366B (zh) | 多云环境下面向租户开放运维工具的方法、系统及介质 | |
US9189299B2 (en) | Framework for system communication for handling data | |
CN114217796A (zh) | 一种基于元数据的应用渲染方法、装置、介质 | |
CN113342399A (zh) | 应用项目的结构配置方法、装置及可读存储介质 | |
CN114579085A (zh) | 网关的api开发方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |