CN111582824B - 云资源同步方法、装置、设备及存储介质 - Google Patents
云资源同步方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111582824B CN111582824B CN202010383720.6A CN202010383720A CN111582824B CN 111582824 B CN111582824 B CN 111582824B CN 202010383720 A CN202010383720 A CN 202010383720A CN 111582824 B CN111582824 B CN 111582824B
- Authority
- CN
- China
- Prior art keywords
- synchronization
- resource
- class
- target
- workflow
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了云资源同步方法、装置、设备及存储介质。该方法包括:获取目标同步项目的类型信息和目标云平台的属性信息;利用类型信息和属性信息调用预先组装的工作流,其中,工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;通过执行所述工作流实现在云管理平台与目标云平台之间的针对目标同步项目的资源同步操作。本发明实施例通过采用上述技术方案,可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性,在进行资源同步时,也可避免调用不同的同步程序,通过调用统一的工作流,降低出错概率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及云资源同步方法、装置、设备及存储介质。
背景技术
云计算平台也称为云平台,是指可以提供基础设施即服务(Infrastructure as aService,IaaS)、平台即服务(Platform as a Service,PaaS)及软件即服务(Software asa Service,SaaS)等各种云服务的平台。云管理平台(Cloud Management Platform,CMP),简称云管平台,为数据中心资源的统一管理平台,可以管理多个开源或者异构的云计算技术或者产品,比如同时管理CloudStack、OpenStack及Docker等等。CMP是提供对公有云、私有云和混合云等云平台整合管理的产品。
在CMP软件***设计中,都存在需要做CMP和云平台资源的同步功能,即要保持CMP与云平台的资源数量以及资源状态的一致性。需要同步的资源例如有主机、硬盘、以及子网等等;需要同步的状态例如有主机开关机状态、硬盘绑定状态等等。针对这些资源,不同的公有云或私有云同步资源又有各自的特点。现有技术采用的方法一般都是针对不同的云厂商、不同的资源及其资源状态分别撰写对应的同步程序,然后用定时器分别调用各个资源同步方法。因此,现有的资源同步方法存在同步程序编写工作量大以及灵活性差的问题,需要改进。
发明内容
本发明实施例提供了云资源同步方法、装置、设备及存储介质,可以优化现有的云资源同步方案。
第一方面,本发明实施例提供了一种云资源同步方法,应用于云管理平台,包括:
获取目标同步项目的类型信息和目标云平台的属性信息;
利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;
通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
第二方面,本发明实施例提供了一种云资源同步装置,包括:
信息获取模块,用于获取目标同步项目的类型信息和目标云平台的属性信息;
工作流调用模块,用于利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;
资源同步模块,用于通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
第三方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的云资源同步方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的云资源同步方法。
本发明实施例中提供的云资源同步方案,获取目标同步项目的类型信息和目标云平台的属性信息,利用类型信息和属性信息调用预先组装的工作流,其中,该工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类,通过执行工作流实现在云管理平台与目标云平台之间的针对目标同步项目的资源同步操作。通过采用上述技术方案,可以利用工作流将多种同步项目的资源同步流程整合到一起,且存在共用的业务层类和/或数据操作层类,在需要进行某个或某些同步项目的资源同步时,直接通过调用该工作流自动完成相应的同步操作,可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性,在进行资源同步时,也可避免调用不同的同步程序,通过调用统一的工作流,降低出错概率。
附图说明
图1为现有技术中一种云资源同步流程时序图;
图2为本发明实施例提供的一种云资源同步方法的流程示意图;
图3为本发明实施例提供的又一种云资源同步方法的流程示意图;
图4为本发明实施例提供的一种向云平台发送请求的流程示意图;
图5为本发明实施例提供的一种工作流结构示意图;
图6为本发明实施例提供的又一种工作流结构示意图;
图7为本发明实施例提供的一种云资源同步流程时序图;
图8为本发明实施例提供的一种云资源同步装置的结构框图;
图9为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
为了便于理解本发明实施例技术方案,下面先对现有相关方案进行介绍。为便于说明,现简化场景,以下仅以同步一个云平台的image(镜像)和instance(主机)为例,介绍现有的CMP同步资源的流程。图1为现有技术中一种云资源同步流程时序图,图中同步入口可理解为云管理平台在应用层向用户提供的用于触发资源同步的用户界面控件,如以按钮等形式呈现。如图1所示,该流程主要包括如下步骤:
1.syncImages():调用imageService的同步image的方法。
2.describeImages():调用云cloudAdapter的describeImages方法查询需要同步的image列表。CloudAdapter是一个对接不同云厂商(也即云平台)的应用程序接口(Application Programming Interface,API),可以把针对不同的云厂商的请求分发到对应的云厂商API上。
3.return imageList:返回从云厂商获取到的需要同步到CMP的所有image信息。
4.cloudImageVo2DbImageVo():云厂商返回的数据名称可能和CMP中的数据库(DataBase,DB)保存的字段名称不一致,若不一致,可通过此方法做转换。
5.queryImage():调用imageDao的queryImage方法,查询CMP中已经存在的image。
6.return dbImageList:返回CMP中存在的image列表。
7.imageUpdate():比较云厂商的image和CMP的image,对于云厂商中存在而CMP中不存在的image,需要***(insert)到DB;对于状态需要更新的image,需要更新(update)到DB;对于CMP中存在而云厂商中不存在的image,需要从DB中删除(delete)。
8.return imageMap:返回imageMap记录image在云厂商中的id和在CMP中的id对应关系。可能需要在后续同步instance中用到,因为主机可能运行在镜像中。云厂商中的资源id在CMP中都会映射为CMP中的唯一id号。
9.syncInstances(imageMap):调用instanceService的同步intance的方法。
10.describeInstance():调用云cloudAdapter的describeInstance方法查询需要同步的instance列表。
11.return instanceList:返回从云厂商获取到的需要同步到CMP的所有instance信息。
12.cloudInstanceVo2DbInstanceVo():把云厂商返回的数据转换成可以保存在CMP DB中的对象。
13.fillImageId():因为返回instance中有这个instance的imageId,需要把对应的imageId转换成在CMP中的id。
14.queryInstance():调用imageDao的queryInstance方法,查询CMP中已经存在的instance。
15.return dbInstanceList:返回CMP中存在的instance列表。
16.instanceUpdate():比较云厂商的instance和CMP的instance,对于云厂商中存在而CMP中不存在的instance,需要insert到DB;对于状态需要更新的instance,需要update到DB;对于CMP中存在而云厂商中不存在的instance,需要从DB中delete。
17.return instanceMap:返回instanceMap记录instance在云厂商中的id和在CMP中的id对应关系。
如上所述,在需要进行image同步和instance同步时,需要分别调用各自同步程序中的方法,也即预先编写不同的同步程序,不同同步程序中的方法各不相同,需要单独编写。如image同步,需要编写imageService.syncImage()方法、imageDao.queryImage()方法、cloudAdapter.describeImage()方法、imageDao.updateImage()等方法完成同步image的任务;而instance同步,需要编写instanceService.syncInstance()方法、instanceDao.queryInstance()方法、cloudAdapter.describeInstance()方法、instanceDao.updateInstance()等方法完成同步volume的任务。因此,现有的资源同步方法存在同步程序编写工作量大以及灵活性差的问题,需要改进。本发明实施例中,可以利用工作流将多种同步项目的资源同步流程整合到一起,且存在共用的业务层类和/或数据操作层类,在需要进行某个或某些同步项目的资源同步时,直接通过调用该工作流自动完成相应的同步操作,可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性。
图2为本发明实施例提供的一种云资源同步方法的流程示意图,该方法可适用于云管理平台与云平台之间的资源同步场景,可以由云资源同步装置执行,其中该装置可由软件和/或硬件实现,一般可集成在计算机设备中,该计算机设备例如可以是云管理平台中的服务器等设备。如图2所示,该方法包括:
步骤201、获取目标同步项目的类型信息和目标云平台的属性信息。
示例性的,CMP和云平台之间需要同步的资源可以有主机、镜像、硬盘、虚拟私有云(虚拟私有云,VPC)、企业信息门户(Enterprise Information Portal,EIP)、子网、防火墙、防火墙规则以及负载均衡等等各种各样的资源。其中,目标同步项目可以包括其中的任意一个或多个项目,当然还可以包括其他项目。类型信息例如可以是同步项目的名称或代号等。目标云平台可包括需要与CMP进行资源同步的一个或多个云平台。属性信息可包括云平台的名称或代号等。
示例性的,在由用户进行主动资源同步控制时,可以由用户通过同步入口选择需要同步的目标同步项目以及目标云平台,CMP根据用户的选择操作获取相应的类型信息和属性信息。此外,也可以在CMP中设置自动同步功能,在该功能开启的情况下,可以根据预设自动同步策略自动触发目标同步项目的资源同步流程,自动获取类型信息和属性信息。
步骤202、利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类。
示例性的,所述至少两种同步项目可以包括上述举例的任意两个或多个同步项目。目标同步项目为至少两种同步项目中的任意一个或任意多个。
本发明实施例中,可以提取针对至少两种同步项目的资源同步流程的共性,针对共性撰写各个功能,并利用工作流把各个功能编排起来,在需要进行某个或某些同步项目的资源同步时,直接通过调用该工作流自动完成相应的同步操作。例如,可以通过将所述类型信息和所述属性信息传入工作流中,指示工作流当前需要执行哪个同步项目对应的资源同步流程,以及用于同步的资源来源于哪个云平台。
示例性的,资源同步流程中的各功能可以通过编写业务层类和/或数据操作层类来实现,也就是说,不同同步项目对应的资源同步流程可以共用全部或部分的业务层类和/或数据操作层类。
步骤203、通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
示例性的,在利用类型信息和属性信息调用预先组装的工作流后,便可以通过执行工作流自动执行目标同步项目对应的资源同步流程,实现在云管理平台与目标云平台之间的针对目标同步项目的资源同步操作。
需要说明的是,当仅需要同步一种资源时,也可采用本发明实施例所提供的方法来实现,也即工作流中也可以包含一种同步项目对应的资源同步流程。
本发明实施例中提供的云资源同步方法,获取目标同步项目的类型信息和目标云平台的属性信息,利用类型信息和属性信息调用预先组装的工作流,其中,该工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类,通过执行工作流实现在云管理平台与目标云平台之间的针对目标同步项目的资源同步操作。通过采用上述技术方案,可以利用工作流将多种同步项目的资源同步流程整合到一起,且存在共用的业务层类和/或数据操作层类,在需要进行某个或某些同步项目的资源同步时,直接通过调用该工作流自动完成相应的同步操作,可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性,在进行资源同步时,也可避免调用不同的同步程序,通过调用统一的工作流,降低出错概率。此外,同步流程集中控制,使不同资源同步时,业务逻辑、日志和异常的处理方式都保持一致,便于定位问题及集中修改。
在一些实施例中,所述工作流中包括同步服务类、消息发送类和数据库操作类。所述利用所述类型信息和所述属性信息调用预先组装的工作流,包括:将所述类型信息和所述属性信息传入所述同步服务类。所述通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作,包括:通过所述同步服务类调用所述消息发送类,并通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求;通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类;通过所述数据库操作类查询所述云管理平台的数据库中与所述目标同步项目对应的第二资源信息列表并返回至所述同步服务类;通过所述同步服务类对所述第一资源信息列表和所述第二资源信息列表进行比对,并根据比对结果指示所述数据库操作类执行相应的操作,以在所述云管理平台与所述目标云平台之间针对所述目标同步项目进行资源同步。其中,同步服务类和消息发送类为业务层类,数据库操作类为数据操作层类。这样设置的好处在于,对于工作流中任意的同步项目对应的资源同步流程,可以共用同步服务类、消息发送类和数据库操作类,能够较大限度地减少重复代码的编写,且有利于控制工作流的规模。
示例性的,同步服务类可以是SyncService,可以处理传入参数,调起流程;消息发送类可以是SendCloudAdapter,可以负责向云厂商API发送请求,查询相应的资源信息;数据库操作类可以是DBOperater,可以负责操作数据库。
示例性的,根据比对结果指示所述数据库操作类执行相应的操作,可包括以下至少一项:当第一资源信息列表中存在第一项目,且第二资源信息列表不存在第一项目时,将第一项目添加至云管理平台的数据库中;当第一资源信息列表中不存在第二项目,且第二资源信息列表存在第二项目时,将第二项目从云管理平台的数据库中删除;当第一资源信息列表和第二资源信息列表中同时存在第三项目,且第三项目在第一资源信息列表和第二资源信息列表中的状态信息不一致时,将云管理平台的数据库中第三项目的第一状态信息更新为第三项目在第一资源信息列表中的第二状态信息。其中,状态信息的类型可包括如主机开关机状态、硬盘绑定状态、EIP绑定状态以及资源是否删除状态等等。
在一些实施例中,所述工作流中还包括查询表关系类。在所述目标同步项目存在关联项目的情况下,在所述通过所述数据库操作类查询所述云管理平台的数据库中的第二资源信息列表并返回至所述同步服务类之前,还包括:通过所述查询关系表类查询所述关联项目在所述目标云平台中的第一标识与在所述云管理平台中的第二标识的对应关系,并将所述对应关系返回至所述同步服务类;通过所述同步服务类将所述第一资源信息列表中包含的所述第一标识替换为所述第二标识。这样设置的好处在于,对于存在关联项目的同步项目,在资源同步流程中需要有对应关系查询的功能,针对该功能单独设置一个业务层类,避免对其他功能产生干扰,且方便工作流的快速组装。其中,查询表关系类可以是QueryTableForMap,可以负责查询云厂商id和CMP id的对应关系的任务。一个同步项目的关联项目可以理解为,在查询该同步项目时所需要依赖的项目,例如,上述举例中的instance和image,当目标同步项目为instance时,其关联项目为image。
在一些实施例中,所述通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求,包括:通过所述消息发送类读取所述目标同步项目对应的配置文件,其中,所述配置文件中包括同步项目类型和发送给目标云平台请求的配置信息;通过所述消息发送类根据所述配置文件中的信息向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求。这样设置的好处在于,通过编写配置文件可以实现不同同步项目的资源同步流程的个性化设置,消息发送类可以根据配置文件中的信息生成需要向目标云平台发送的资源信息获取请求并进行发送。
在一些实施例中,配置文件中还可包括读取数据库接口的配置信息,这样,数据库操作类可以根据读取数据库接口的配置信息来查询第二资源信息列表以及在同步服务类完成比对之后执行相应的数据库更新操作。示例性的,可以采用预设数据库访问框架来编写读取数据库接口的配置信息。例如,预设数据库访问框架可以是Spring Data Rest,该框架对数据访问做了很好的封装,基本DB操作不需要自己写代码,一些特别的查询仅需要编写controller层的接口,且有很好的扩展性,很容易实现自己的方法,因此,利用该框架编写query、update、insert、delete CMP DB针对不同的表和不同的字段,可以有效节约程序编写成本。
在一些实施例中,上述配置文件可以称为第一类配置文件,该配置文件可用于对整个同步流程进行配置,其中可包含发送给目标云平台请求的请求模板的名称,该请求模板可单独作为一个配置文件进行编写,称为第二类配置文件。示例性的,第一类配置文件可以是.yml格式的配置文件,第二类配置文件可以是.json格式的配置文件。
在一些实施例中,所述配置文件中还包括所述目标云平台和所述云管理平台数据库字段的映射配置信息。所述通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类,包括:通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,根据所述映射配置信息对所述第一资源信息列表进行转换,并将转换后的第一资源信息列表返回至所述同步服务类。这样设置的好处在于,云厂商返回的数据名称可能和CMP中的数据库保存的字段名称不一致,若不一致,可通过消息发送类利用配置文件中的映射配置信息进行转换后,再返回至同步服务类,利用配置文件实现了字段转换的个性化。
在一些实施例中,在所述获取目标同步项目的类型信息和目标云平台的属性信息之前,还包括:获取所述至少两种同步项目对应的配置文件,并基于所述至少两种同步项目对应的配置文件组装工作流。这样设置的好处在于,可利用配置文件以及业务层类和数据操作层类快速组装包含多个同步项目的资源同步流程的工作流。示例性的,可以采用预设工作流组装工具进行工作流的组装,预设工作流组装工具例如可以是工作流引擎,例如Activiti、piper和k2BPM等。
在一些实施例中,还包括:在检测到新增同步项目事件时,获取所述新增同步项目对应的第一配置文件;基于所述第一配置文件在所述工作流中增加所述新增同步项目的判断步骤,以实现所述工作流的更新。这样设置的好处在于,新增一种同步项目的同步仅需要新增流程编排及配置文件就可以完成,新增代码很少,降低新增同步项目的成本,有效提高云资源同步的灵活性。
图3为本发明实施例提供的又一种云资源同步方法的流程示意图,该方法包括如下步骤:
步骤301、获取至少两种同步项目对应的配置文件,并采用预设工作流引擎基于配置文件组装工作流,其中,工作流中包括同步服务类、消息发送类、数据库操作类和查询表关系类。
步骤302、获取目标同步项目的类型信息和目标云平台的属性信息。
步骤303、将类型信息和属性信息传入工作流中的同步服务类。
步骤304、通过同步服务类调用消息发送类,并通过消息发送类读取目标同步项目对应的配置文件。
其中,所述配置文件中包括同步项目类型、发送给目标云平台请求的配置信息、读取数据库接口的配置信息以及目标云平台和云管理平台数据库字段的映射配置信息。
步骤305、通过消息发送类根据配置文件中的信息向目标云平台发送与目标同步项目对应的资源信息获取请求。
步骤306、通过消息发送类接收目标云平台返回的第一资源信息列表,根据映射配置信息对第一资源信息列表进行转换,并将转换后的第一资源信息列表返回至所述同步服务类。
步骤307、在目标同步项目存在关联项目的情况下,通过查询关系表类查询关联项目在目标云平台中的第一标识与在云管理平台中的第二标识的对应关系,并将对应关系返回至同步服务类,通过同步服务类将第一资源信息列表中包含的第一标识替换为第二标识。
需要说明的是,在目标同步项目不存在关联项目的情况下,可直接略过本步骤,执行步骤308。
步骤308、通过数据库操作类查询云管理平台的数据库中与目标同步项目对应的第二资源信息列表并返回至同步服务类。
步骤309、通过同步服务类对第一资源信息列表和所述第二资源信息列表进行比对,并根据比对结果指示数据库操作类执行相应的操作,以在云管理平台与目标云平台之间针对目标同步项目进行资源同步。
本发明实施例提供的云资源同步方法,提取同步资源的共性,针对共性撰写各个类,并根据同步资源的个性编写配置文件,利用工作流把各个类编排起来,形成不同同步项目对应的同步流程,且各同步流程共用各个类,在编写各个类时充分考虑了字段转换以及id映射关系等功能,在需要进行资源同步时,直接通过调用工作流自动完成相应的完整的同步操作。通过采用上述方案,把大量的撰写程序的流程打撒,从中提取出共性的任务,针对共性任务编写程序,任务通过配置实现对多种不同资源的操作,使程序更加灵活,通过工作流引擎,灵活组装任务,从而达到扩展功能不需要撰写程序,而是通过灵活组装实现。
在上述实施例基础上,对相关技术细节做进一步示例性介绍。
示例性的,配置文件的组成,主要分为如下内容:
Name:配置文件的名称;ResourceType:资源类型,例如image、instance、volume、eip等;QueryIaas:发送给云厂商请求的配置;IfcloudConfig:读取DB的接口、主键等配置;MapRelation:云厂商和CMP DB字段的映射配置。
以image同步为例,配置文件(上文所述第一类配置文件)可包括如下内容(由于内容过长,省略了mapRelation的部分字段):
以下是读取image的request json(上文所述第二类配置文件)的内容,${}表达式将会被传入的参数代替,其中,传入的参数可以从云管理平台中读取:
图4为本发明实施例提供的一种向云平台发送请求的流程示意图。如图4所示,SendCloudAdapter根据传入的资源类型(resourceType,也即同步项目类型)读取对应的配置文件(第一类配置文件),如resourceType为image,可以读取qingcloud.image.yaml文件。随后,根据配置文件的信息(如请求模板的名称)读取request请求json(第二类配置文件),如qingcloud.req_image.json。在请求模板中填入变量,发送请求给CloudAdapter,接收response请求结果,然后按照配置文件的MapRelation定义吧response转换成CMP中的字段名称及值,即得到了用于比较的第一资源信息列表。
在一些实施例中,DBOperator可以采用spring Data Rest框架实现。以image为例展示需要完成的代码,仅需声明两个接口即可(如下文中的findEImagesByCloudIdAndRegionIdAndTenantIdAndIsDeletedAndCloudResourceI dIn和findNeedDelete),单表的简单query、update、save不需要写任何代码。具体如下(省略了部分代码):
在配置文件中还配置了查询更新的数据库接口地址,例如:
在一些实施例中,采用activiti工作流组装任务,仍以image和instance为例。图5为本发明实施例提供的一种工作流结构示意图,如图5所示,image的同步流程和instance的同步流程均用到了SyncService类、SendCloudAdapter类和DBOperater类,其中SyncService类未画出,SendCloudAdapter类根据传入image或instance读取配置,并调用相应请求参数,DBOperater类读取配置,根据映射关系写入DB对应值,并调用数据库访问对应API写入DB。对于instance来说,同步流程中还存在QueryTableForMap类,根据参数查询对应的id映射关系,并进行必要的转换。
当需要新增其他同步项目的同步程序时,不需要写很多程序来实现,而仅需要写如下配置及很少的程序:Volume.yml配置文件;Req_volume.json请求云厂商的请求文件;DBOperater访问DB接口部分需要多加两个接口声明;Activiti流程组装增加volume的判断。图6为本发明实施例提供的又一种工作流结构示意图,在图5基础上增加了volume的判断,进而实现了工作流的灵活组装。
图7为本发明实施例提供的一种云资源同步流程时序图,如图7所示,该流程主要包括如下步骤:
1.sync(image):调用synService的同步方法,告知同步image。
2.describeResource(image):调用SendCloudAdapter功能发送请求给云厂商API,describeResource会根据配置文件发送对应请求。
3.post(image):发送请求。
4.return resourceList:返回请求资源。
5.return resrouceList:返回请求到syncService调用处。
6.query(image):通过DBOperator任务查询CMP中已经存在的image。
7.return dbImageList:返回CMP中存在的imgageList。
8.update(image):比较云厂商的image和CMP的image,对于云厂商中存在而CMP中不存在的image,需要insert到DB;对于状态需要更新的image,需要update到DB;对于CMP中存在而云厂商中不存在的image,需要从DB中delete。
9.return success:向上一层返回结果。
10.return success:向上一层返回结果。
11.sync(instance):调用synService的同步方法,告知同步instance。
12.describeResource(instance):调用SendCloudAdapter功能发送请求给云厂商API,describeResource会根据配置文件发送对应请求。
13.post(instance):发送请求。
14.return resourceList:返回请求资源。
15.return resrouceList:返回请求到syncService调用处。
16.queryMap(image):通过QueryTableForMap功能查询image的云id与CMP id对应关系。
17.return map:返回结果。
18.fill(map):把从云厂商查到的instance里的imageId替换成CMP对应的imageId。
19.query(instance):通过DBOperator任务查询CMP中已经存在的instance。
20.return dbInstanceList:返回CMP中存在的instanceList。
21.update(instance):比较云厂商的instance和CMP的instance,对于云厂商中存在而CMP中不存在的instance,需要insert到DB;对于状态需要更新的instance,需要update到DB;对于CMP中存在而云厂商中不存在的instance,需要从DB中delete。
22.return success:向上一层返回结果。
23.return success:向上一层返回结果。
从图7中可以看出,同步不同的资源(image和instance),采用的任务模块是一样的,也即通过调用相同的类实现。同理,新增一种资源的同步,也不需要新增过多编码,流程与图7中基本一致,不同的只是配置不同。与图1对比,可以明显看出,本发明实施例可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性,在进行资源同步时,也可避免调用不同的同步程序,通过调用统一的工作流,降低出错概率。
图8为本发明实施例提供的一种云资源同步装置的结构框图,该装置可由软件和/或硬件实现,配置于云管理平台,一般可集成在计算机设备中,可通过执行云资源同步方法来进行云资源同步。如图8所示,该装置包括:
信息获取模块801,用于获取目标同步项目的类型信息和目标云平台的属性信息;
工作流调用模块802,用于利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;
资源同步模块803,用于通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
本发明实施例中提供的云资源同步装置,可以利用工作流将多种同步项目的资源同步流程整合到一起,且存在共用的业务层类和/或数据操作层类,在需要进行某个或某些同步项目的资源同步时,直接通过调用该工作流自动完成相应的同步操作,可以大大减少同步程序编写的工作量,提高同步程序的编写效率以及灵活性,在进行资源同步时,也可避免调用不同的同步程序,通过调用统一的工作流,降低出错概率。
可选的,所述工作流中包括同步服务类、消息发送类和数据库操作类。所述利用所述类型信息和所述属性信息调用预先组装的工作流,包括:将所述类型信息和所述属性信息传入所述同步服务类。所述通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作,包括:通过所述同步服务类调用所述消息发送类,并通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求;通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类;通过所述数据库操作类查询所述云管理平台的数据库中与所述目标同步项目对应的第二资源信息列表并返回至所述同步服务类;通过所述同步服务类对所述第一资源信息列表和所述第二资源信息列表进行比对,并根据比对结果指示所述数据库操作类执行相应的操作,以在所述云管理平台与所述目标云平台之间针对所述目标同步项目进行资源同步。
可选的,所述工作流中还包括查询表关系类。在所述目标同步项目存在关联项目的情况下,在所述通过所述数据库操作类查询所述云管理平台的数据库中的第二资源信息列表并返回至所述同步服务类之前,还包括:通过所述查询关系表类查询所述关联项目在所述目标云平台中的第一标识与在所述云管理平台中的第二标识的对应关系,并将所述对应关系返回至所述同步服务类;通过所述同步服务类将所述第一资源信息列表中包含的所述第一标识替换为所述第二标识。
可选的,所述通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求,包括:通过所述消息发送类读取所述目标同步项目对应的配置文件,其中,所述配置文件中包括同步项目类型、发送给目标云平台请求的配置信息、读取数据库接口的配置信息;通过所述消息发送类根据所述配置文件中的信息向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求。
可选的,所述配置文件中还包括所述目标云平台和所述云管理平台数据库字段的映射配置信息。所述通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类,包括:通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,根据所述映射配置信息对所述第一资源信息列表进行转换,并将转换后的第一资源信息列表返回至所述同步服务类。
可选的,该装置还包括:工作流组装模块,用于在所述获取目标同步项目的类型信息和目标云平台的属性信息之前,获取所述至少两种同步项目对应的配置文件,并基于所述至少两种同步项目对应的配置文件组装工作流。
可选的,该装置还包括:新增配置文件获取模块,用于在检测到新增同步项目事件时,获取所述新增同步项目对应的新增配置文件;工作流更新模块,用于基于所述新增配置文件在所述工作流中增加所述新增同步项目的判断步骤,以实现所述工作流的更新。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的云资源同步装置。图9为本发明实施例提供的一种计算机设备的结构框图。计算机设备900可以包括:存储器901,处理器902及存储在存储器901上并可在处理器运行的计算机程序,所述处理器902执行所述计算机程序时实现如本发明实施例所述的云资源同步方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行云资源同步方法。
上述实施例中提供的云资源同步装置、设备及存储介质可执行本发明任意实施例所提供的云资源同步方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的云资源同步方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种云资源同步方法,其特征在于,应用于云管理平台,包括:
获取目标同步项目的类型信息和目标云平台的属性信息;
利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;
通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
2.根据权利要求1所述的方法,其特征在于,所述工作流中包括同步服务类、消息发送类和数据库操作类;
所述利用所述类型信息和所述属性信息调用预先组装的工作流,包括:
将所述类型信息和所述属性信息传入所述同步服务类;
所述通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作,包括:
通过所述同步服务类调用所述消息发送类,并通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求;
通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类;
通过所述数据库操作类查询所述云管理平台的数据库中与所述目标同步项目对应的第二资源信息列表并返回至所述同步服务类;
通过所述同步服务类对所述第一资源信息列表和所述第二资源信息列表进行比对,并根据比对结果指示所述数据库操作类执行相应的操作,以在所述云管理平台与所述目标云平台之间针对所述目标同步项目进行资源同步。
3.根据权利要求2所述的方法,其特征在于,所述工作流中还包括查询表关系类;
在所述目标同步项目存在关联项目的情况下,在所述通过所述数据库操作类查询所述云管理平台的数据库中的第二资源信息列表并返回至所述同步服务类之前,还包括:
通过所述查询关系表类查询所述关联项目在所述目标云平台中的第一标识与在所述云管理平台中的第二标识的对应关系,并将所述对应关系返回至所述同步服务类;
通过所述同步服务类将所述第一资源信息列表中包含的所述第一标识替换为所述第二标识。
4.根据权利要求3所述的方法,其特征在于,所述通过所述消息发送类向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求,包括:
通过所述消息发送类读取所述目标同步项目对应的配置文件,其中,所述配置文件中包括同步项目类型、发送给目标云平台请求的配置信息、读取数据库接口的配置信息;
通过所述消息发送类根据所述配置文件中的信息向所述目标云平台发送与所述目标同步项目对应的资源信息获取请求。
5.根据权利要求4所述的方法,其特征在于,所述配置文件中还包括所述目标云平台和所述云管理平台数据库字段的映射配置信息;
所述通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,并将所述第一资源信息列表返回至所述同步服务类,包括:
通过所述消息发送类接收所述目标云平台返回的第一资源信息列表,根据所述映射配置信息对所述第一资源信息列表进行转换,并将转换后的第一资源信息列表返回至所述同步服务类。
6.根据权利要求4所述的方法,其特征在于,在所述获取目标同步项目的类型信息和目标云平台的属性信息之前,还包括:
获取所述至少两种同步项目对应的配置文件,并基于所述至少两种同步项目对应的配置文件组装工作流。
7.根据权利要求6所述的方法,其特征在于,还包括:
在检测到新增同步项目事件时,获取所述新增同步项目对应的新增配置文件;
基于所述新增配置文件在所述工作流中增加所述新增同步项目的判断步骤,以实现所述工作流的更新。
8.一种云资源同步装置,其特征在于,配置于云管理平台,包括:
信息获取模块,用于获取目标同步项目的类型信息和目标云平台的属性信息;
工作流调用模块,用于利用所述类型信息和所述属性信息调用预先组装的工作流,其中,所述工作流中包含至少两种同步项目对应的资源同步流程,不同同步项目对应的资源同步流程中存在共用的业务层类和/或数据操作层类;
资源同步模块,用于通过执行所述工作流实现在所述云管理平台与所述目标云平台之间的针对所述目标同步项目的资源同步操作。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010383720.6A CN111582824B (zh) | 2020-05-08 | 2020-05-08 | 云资源同步方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010383720.6A CN111582824B (zh) | 2020-05-08 | 2020-05-08 | 云资源同步方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111582824A CN111582824A (zh) | 2020-08-25 |
CN111582824B true CN111582824B (zh) | 2023-03-24 |
Family
ID=72120727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010383720.6A Active CN111582824B (zh) | 2020-05-08 | 2020-05-08 | 云资源同步方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111582824B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297158B (zh) * | 2021-05-26 | 2023-05-12 | 杭州安恒信息技术股份有限公司 | 一种云安全产品管理方法、装置、设备及存储介质 |
CN113986243B (zh) * | 2021-10-26 | 2023-06-13 | 腾讯科技(深圳)有限公司 | 资源同步方法以及相关设备 |
CN115630124A (zh) * | 2022-12-06 | 2023-01-20 | 北京志翔科技股份有限公司 | 数据互联方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437739B1 (en) * | 2002-11-26 | 2008-10-14 | Unisys Corporation | Synchronizing data between a data store and a project management client tool |
US9213540B1 (en) * | 2015-05-05 | 2015-12-15 | Archive Solutions Providers | Automated workflow management system for application and data retirement |
CN107689982A (zh) * | 2017-06-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、应用服务器及计算机可读存储介质 |
CN108491457A (zh) * | 2018-03-02 | 2018-09-04 | 上海云轴信息科技有限公司 | 一种用于同步公共云资源的方法及设备 |
CN109388676A (zh) * | 2018-08-21 | 2019-02-26 | 中国平安人寿保险股份有限公司 | 数据同步生成方法、装置、计算机设备以及存储介质 |
CN111061786A (zh) * | 2019-11-11 | 2020-04-24 | 国云科技股份有限公司 | 一种多云环境下的资源同步方法及其*** |
-
2020
- 2020-05-08 CN CN202010383720.6A patent/CN111582824B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437739B1 (en) * | 2002-11-26 | 2008-10-14 | Unisys Corporation | Synchronizing data between a data store and a project management client tool |
US9213540B1 (en) * | 2015-05-05 | 2015-12-15 | Archive Solutions Providers | Automated workflow management system for application and data retirement |
CN107689982A (zh) * | 2017-06-25 | 2018-02-13 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、应用服务器及计算机可读存储介质 |
CN108491457A (zh) * | 2018-03-02 | 2018-09-04 | 上海云轴信息科技有限公司 | 一种用于同步公共云资源的方法及设备 |
CN109388676A (zh) * | 2018-08-21 | 2019-02-26 | 中国平安人寿保险股份有限公司 | 数据同步生成方法、装置、计算机设备以及存储介质 |
CN111061786A (zh) * | 2019-11-11 | 2020-04-24 | 国云科技股份有限公司 | 一种多云环境下的资源同步方法及其*** |
Non-Patent Citations (2)
Title |
---|
Resource-efficient workflow scheduling in clouds;Young ChoonLee等;《Knowledge-Based Systems》;20150531;第80卷;153-162 * |
基于REST风格的资源化工作流引擎的研究;谢凌奇等;《微型电脑应用》;20130220(第02期);22-26 * |
Also Published As
Publication number | Publication date |
---|---|
CN111582824A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111582824B (zh) | 云资源同步方法、装置、设备及存储介质 | |
US6081826A (en) | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application | |
US20210064442A1 (en) | Implementing An Application Manifest In A Node-Specific Manner Using An Intent-Based Orchestrator | |
US20200326876A1 (en) | Object Migration Method, Device, and System | |
US8601466B2 (en) | Software deployment method and system, software deployment server and user server | |
US11249788B2 (en) | Cloud management platform, and virtual machine management method and system | |
CN108737176B (zh) | 一种数据网关控制方法、电子设备、存储介质及架构 | |
JP2005276177A (ja) | ネットワーク構成のチェックおよび修理のための方法、システムおよびプログラム | |
CN109033328B (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
CN113485786B (zh) | 一种基于云物理机实现pod挂载cinder卷的方法及*** | |
CN113590169B (zh) | 应用部署方法、应用部署***和计算机可读存储介质 | |
CN103885865A (zh) | 一种传感器管理方法及装置 | |
CN108667660B (zh) | 路由管理和业务路由的方法和装置及路由*** | |
CN109729121B (zh) | 一种云存储***及用于云存储***中实现自定义数据处理的方法 | |
US20130238673A1 (en) | Information processing apparatus, image file creation method, and storage medium | |
JP6418419B2 (ja) | ハードディスクがアプリケーションコードを実行するための方法および装置 | |
CN116339927A (zh) | 设备确定方法、装置、存储介质及电子装置 | |
CN115037757B (zh) | 一种多集群服务管理*** | |
CN110798358A (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN106789198B (zh) | 一种计算节点管理方法及*** | |
US11757976B2 (en) | Unified application management for heterogeneous application delivery | |
CN115422277A (zh) | 数据源连接池控制方法、装置及服务器 | |
CN114553859A (zh) | 一种bmc配置管理方法、装置、电子设备及存储介质 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
WO2019021074A1 (en) | CONNECTOR RENTAL FOR LONG-TERM SOFTWARE OPERATIONS |
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 | ||
CB02 | Change of applicant information |
Address after: 100000 Unit 501A, Floor 5, 101, Building 1, Yard 5, Laiguangying West Road, Chaoyang District, Beijing Applicant after: Beijing Qingyun Science and Technology Co.,Ltd. Address before: 100020 601, 6 floor, 16 building, No. 36 Chuang Yuan Road, Chaoyang District, Beijing. Applicant before: Beijing Qingyun Science and Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |