本发明涉及一种基于混合模式的分布式云管理系统及方法,属于云服务和计算技术领域。
背景技术:
云计算发展日新月异,目前云计算仍着重解决单个数据中心内部的问题,但随着全球化互联网的发展,越来越多的企业有跨地域建立分支机构的需要,各区域、各层级的数据中心应运而生,而这些众多的数据中心还是处于烟囱式的建设和管理状态,这使得单个数据中心的云管理系统存在以下问题:(1)云服务呈现多源异构性,管理复杂。各个数据中心的云服务在管理方式上差异较大,如私有云支持对物理资源的管理,而公有云支持对上层服务的管理,同时各个数据中心的资源异构,使得管理成本很高;(2)业务耦合程度高。由于单个数据中心承载的业务类型不同,软硬件系统差异较大,物理资源和应用紧耦合,业务的部署上线、管理运维等操作不可复用,使得维护成本很高;(3)业务逻辑描述困难。当需求增长、系统变得庞大、业务逻辑变得复杂时,已有的业务逻辑需要不断修改甚至重定义,使得系统的扩展难度增加,系统灵活性下降。
而分布式云管理系统能够有效解决以上问题,其核心理念是提出云间的互操作标准,建立统一的接口,设计合理的分布式云模型,为跨云之间的数据交换和服务部署提供支撑。分布式云正逐步成为产业界和学术界的关注热点,Gartner报告指出,分散构建数据中心将成为未来“影响数据中心的十大颠覆性技术”之一,数据中心逐渐分散修建,而不是作为一个整体结构来建立。
已有的分布式云管理系统如Eucalyptus、OpenStack、OpenNebula,将私有云和一个或多个公有云组成混合架构模型以保障服务质量SLA,在混合架构中,私有云和公有云的地位为非对等关系,私有云占主导地位,公有云作为改善私有云响应应用峰值需求的后备资源,但混合架构对公有云的控制能力有限,只能在公有云厂商的授权范围内进行资源的简单控制,而不支持高级控制。另一种聚合模式的分布式云管理系统如Reservior、InterCloud,将不同的云服务供应商看作合作伙伴的对等关系,在一方资源不充足的时候从别的云服务供应商租借,以充分利用资源,这种模式对云服务接口的匹配度有严格的要求,一般同一云服务供应商的不同产品之间耦合度更高,更适合使用该模式。
技术实现要素:
本发明要解决的技术问题是:克服现有技术的不足,提供一种基于混合模式的分布式云管理系统及方法,具有扩展性和可维护性高的特点,以提升现有分布式云管理系统对云服务的管理能力,提升系统的可维护性。
本发明的技术解决方案是:一种基于混合模式的分布式云管理系统,包括客户服务端、控制中心、配置中心、代理服务器和云服务端;
客户服务,为前台的交互服务,服务的主体可以是具体的人也可以是应用,当客户对某种服务资源有需求时,客户服务端向控制中心发起包含业务逻辑的请求;
控制中心,为核心部分,包括服务管理器和工作流管理器;服务管理器采用基于树型结构的配置模型,使得多源异构的云服务端可配置,服务管理器管理的目标对象为不同类型的云服务端,包括公有云和私有云。对于私有云而言,服务管理器通过配置中心部署一个新的私有云,或接管一个已有的私有云,并对客户提供服务;对于公有云而言,服务管理器通过配置中心从代理服务器获取云服务端的接入方式,通常为HTTP协议的服务调用接口,服务管理器对这些接口进行统一封装,并对客户提供服务;工作流管理器采用工作流模板,使得云服务端的业务逻辑可配置,当控制中心接收到客户服务端发来的请求时,由工作流管理器进行处理,工作流管理器将客户的请求转化为工作流,并通过服务管理器协调云服务端的各个服务组件执行工作流中的步骤,根据工作流的类型处理执行结果,当有步骤执行发生错误时,工作流管理器将回退已执行步骤,避免冗余数据的产生;
配置中心,负责将云服务端所提供的服务描述成统一格式的配置文件,当需要接入新的云服务端时,配置中心从云服务供应商获取接入所需要的详细信息,包括云服务类型、云服务名称、云服务版本、云服务内容等,配置中心将收集到的信息转化为统一格式的配置文件,服务管理器根据配置文件配置云服务,配置文件作为云服务端所提供服务的标准,能够直观描述不同云的服务差异性,同时配置文件决定服务管理器对客户提供哪些服务,对配置文件的修改能够快速调整云服务端的服务内容;
代理服务器,是公有云特有的服务中间层,封装了公有云服务供应商所提供的服务接口,当客户服务端发起一个公有云的资源访问请求时,工作流管理器转发该请求到服务管理器,服务管理器再通知代理服务器响应客户的请求,代理服务器通过远程调用的方式访问公有云上的资源;
云服务端,是指接入的云服务供应商的集合,每个云服务供应商都对外提供一种或多种类型的服务。
进一步地,所述服务管理器包含云配置接口,所述接口的具体实现与所述接口具体的工作方式包括:
创建所述云配置接口,设计云配置接口的参数,所述参数包括云服务类型、云服务名称、云服务版本、云服务内容;
定义所述云配置接口参数的属性,所述属性包括参数的类型、取值范围和该参数是否为必须参数的标识;
调用云配置接口的返回对应的结果,所述云配置接口返回的结果是一个XML表示的树型结构,树的深度为3,树的第1层即根节点为云的身份验证服务,树的第2层为云的各个核心服务,树的第3层为云服务的操作,所述云核心服务包括但不局限于计算服务、存储服务、网络服务、备份服务、安全服务、镜像服务,所述云服务的操作包括但不局限于创建、启动、关闭、删除、挂载、卸载、配置、启用、连接、断开。
进一步地,所述工作流管理器由以下部分组成:任务调度器、过程管理单元、任务管理器、服务调用单元和异常处理单元,其中:
任务调度器,负责接收客户的请求,并根据请求类型触发过程管理单元,最终将调用服务的结果返回给客户;
过程管理单元,负责管理工作流模板,能够依据不同的业务逻辑生成工作流模板,以XML格式保存,流程执行过程中,根据请求内容匹配相应的工作流模板,并按照模板生成序列化事件传递给任务管理器;
任务管理器,负责管理工作流实例,能够根据序列化事件创建并运行工作流实例,并能够根据异常处理单元的反馈终止工作流实例,流程执行过程中,根据序列化事件创建并运行工作流实例,向服务调用单元发起工作流步骤的执行命令;
服务调用单元,负责分析执行命令,调用相应的服务,同时将服务调用的结果返回给任务调度器,流程执行过程中,记录已执行的步骤,当有步骤发生失败时,将触发异常处理单元进行异常处理;
异常处理单元,负责根据异常类型处理异常,并回退流程中已执行步骤,异常处理结果将记录到日志中,并将结果反馈给任务管理器。
进一步地,所述同一个工作流模板中的步骤可以跨度多个云服务供应商访问资源,以满足业务逻辑的需求,如私有云虚拟机创建时可以申请公有云上的云盘服务。
进一步地,所述过程管理单元中,依据不同的业务逻辑生成工作流模板具体如下:
创建生成工作流模板的接口,设计工作流模板接口的参数,所述工作流模板接口的参数包括工作流名称,工作流步骤名称,工作流步骤类型,工作流步骤ID,工作流步骤源;
定义工作流模板参数的属性,所述属性包括工作流模板参数的类型、以及表示该参数是否为必须的标识;
调用生成工作流模板接口的返回所对应的结果,返回结果为XML格式的工作流模板。
返回结果为XML格式的工作流模板,所述工作流模板的格式示例如下:
<?xml version="1.0"encoding="UTF-8"?>
<workflow name="createVmFlow">
<list>
<setp name="VmAllocateHostFlow"class="sequence"id="1"source="KVM"></step>
<setp name="VmCreateVolumeFlow"class="sync"id="2"source="KVM"></step>
<setp name="VmCreateDataVolumeFlow"class="sync"id="2"source="ECS"></step>
<setp name="VmCreateInterfaceFlow"class="sync"id="2"source="KVM"></step>
<setp name="VmCreateOnHostFlow"class="sequence"id="3"source="KVM"></step>
</list>
</workflow>
所述工作流模板的作用是将工作流的步骤关系图,通常为有向无环图,转化成XML格式的描述文件,工作流模板的内容包括工作流名称、工作流步骤名称、工作流步骤类型、工作流步骤ID,工作流步骤源。
工作流名称,通常对应客户服务端的一个功能点,如创建虚拟机;
工作流步骤名称,通常对应客户服务端的一系列操作,如创建虚拟机中对计算、存储、网络资源的选择;
工作流步骤类型,是由工作流管理器定义的执行过程基本属性,表示该步骤与其他步骤之间的关联关系,如同步执行、异步执行、并发执行、顺序执行等;
工作流步骤ID,是工作流管理器根据工作流步骤类型自动生成的步骤执行ID,用来辅助标识步骤在工作流中的执行顺序;
工作流步骤源,标识该步骤访问的云服务供应商,通常为云服务供应商的名称。
所述工作流步骤支持的类型如下所示:
进一步地,所述工作流实例的描述记录在数据库和文件中,以供故障发生时重新生成实例。
进一步地,工作流实例的描述内容包括实例ID、已执行步骤名称和执行结果。
进一步地,所述分布式云管理方法还包括工作流的回退操作,回退操作将执行以下步骤:
工作流执行过程中,记录已执行步骤名称和结果到数据库,同时记录到本地文件;
当工作流在执行过程中发生错误时,工作流终止执行,优先从数据库读取已执行步骤名称和结果,并调用相关服务进行工作流回退;
当数据库无法访问时,从本地文件读取已执行步骤名称和结果,并调用相关服务进行工作流回退;
将回退操作的执行结果记录到日志文件。
进一步地,所述数据库部署在控制中心所在的服务器上。
进一步地,所述XML描述文件保存在控制中心所在的服务器上。
本发明与现有技术相比的优点在于:
(1)本发明针对现有云管理平台同时管理多个多源、异构的云服务供应商效果不佳的问题,将服务管理器作为云服务端的软件适配层,对不同云服务供应商提供的云服务进行一致性配置,并对不同的云服务接口进行统一封装,能够以统一的模型管理多源异构的云服务端;
(2)本发明针对现有云管理平台对于用户请求中的复杂业务逻辑可维护性和扩展性低的问题,采用了工作流的管理模式,将请求中的业务逻辑描述成工作流,使用工作流模板和工作流实例对工作流进行生命周期管理,提高系统的可维护性;同时,工作流执行步骤源可配置,支持工作流实例执行过程中访问不同云服务供应商的资源,提高系统的扩展性。
附图说明
图1为本发明的实施例的基于混合模式的分布式云管理系统的结构示意图;
图2为本发明的实施例的基于混合模式的分布式云管理系统的云配置的结构示意图;
图3为本发明的实施例的基于混合模式的分布式云管理方法的工作流管理器流程示意图;
图4为本发明的实施例的基于混合模式的分布式云管理方法的工作流回退流程示意图。
具体实施方法
下面将结合本发明的附图,进一步说明本发明的技术方案,所描述的实施例是本发明一部分实施例,而不代表全部的实施例。
对于本领域的技术人员来说,一些公知技术可能未进行详细阐述。
本实施例中,一种基于混合模式的分布式云管理系统,如图1所示,一种基于混合模式的分布式云管理方法,其特征在于步骤如下:
步骤101:配置中心从云服务供应商获取接入该云服务端所需的信息,包括云服务类型、云服务名称、云服务版本、云服务内容等;
步骤102:服务管理器调用云配置接口,将配置中心收集到的关于云服务端的信息转化成XML格式的描述文件,配置中心将调用云配置接口的执行结果返回给服务管理器;
步骤103:服务管理器根据配置中心的返回结果将云服务端所提供的服务进行统一封装,并对客户服务端提供与其他云服务同构的服务接口;
步骤104:客户通过客户服务端发起一个云服务端的资源访问请求,请求由控制中心的工作流管理器进行处理;
步骤105:工作流管理器将请求内容转化成工作流,并根据工作流的执行步骤调用服务管理器的相关接口,服务管理器将接口的执行结果返回给工作流管理器,如果步骤中的接口调用返回结果为失败,则启用工作流回退操作,工作流管理器调用服务管理器的回退相关接口,服务管理器将回退接口的执行结果返回给工作流管理器;
步骤106:服务管理器执行接口调用过程,访问云服务的相关资源,并接收云服务的返回结果。
本实施例中,一种基于混合模式的分布式云管理系统的云配置的结构示意图,如图2所示,云的各个服务和操作表示成一个树型结构模型,树的基本约束是:树的深度为3,树的第1层也就是根节点为云的身份验证服务;树的第2层为云的各个核心服务,包括计算服务、存储服务、网络服务、备份服务、安全服务、镜像服务等;树的第3层为云服务的操作,包括但不局限于创建、启动、关闭、删除、挂载、卸载、配置、启用、连接、断开。云配置模型以统一模型描述云服务端所提供的服务和操作,提升系统的可配置性和扩展性。
本实施例中,一种基于混合模式的分布式云管理方法工作流管理器的流程如图3所示,具体实施步骤如下:
步骤301:客户提交一个包含系统中已定义业务逻辑的请求到任务调度器,任务调度器分析请求类型;
步骤302:根据请求类型,任务调度器触发相对应的过程管理单元;
步骤303:过程管理单元分析请求内容,将其与已有的工作流模板进行匹配;
步骤304:过程管理单元依据工作流模板,生成序列化事件作为参数传递给任务管理器;
步骤305:任务管理器接收序列化事件,创建并运行工作流实例,当接收到来自异常处理单元的异常反馈时,则立即终止工作流实例的运行状态;
步骤306:任务管理器向服务调用单元发起包含工作流的执行步骤的执行命令;
步骤307:服务调用单元按照步骤执行工作流,调用相关服务,所述服务是指控制中心的服务管理器对云服务端服务接口的统一封装;
步骤308:服务调用单元负责将工作流的执行结果返回给任务调度器;
步骤309:任务管理器负责将客户提交请求的工作流执行结果返回给客户;
步骤310:当服务调用失败时,服务调用单元将触发异常处理单元进行异常处理;
步骤311:异常处理单元负责对已执行工作流步骤进行回退操作;
步骤312:异常处理的结果反馈给任务管理器,任务管理器终止工作流实例;
步骤313:同时异常处理的结果记录到异常日志文件中。
本实施例中一种基于混合模式的管理方法的工作流回退方法,如图4所示:
步骤401:服务调用模块中,工作流表示为具体的执行步骤,以服务调用的方式执行;
步骤402:当服务调用成功时,将工作流实例中已执行步骤的名称和结果记录到数据库和文件;
步骤403:任务管理器根据异常处理单元的反馈结果,终止工作流实例的运行;
步骤404:异常处理单元从数据库读取已完成步骤的名称和结果,用于进行工作流回退操作;
步骤405:当从数据库读取成功时,异常处理单元调用相关服务进行工作流回退操作;
步骤406:当从数据库读取失败时,异常处理单元从文件读取已完成步骤的名称和结果,用于进行工作流回退操作;
步骤407:当从文件读取成功时,异常处理单元调用相关服务进行工作流回退操作。
以上对于本发明实施例的具体实施方法的描述只是举例说明,本发明的保护范围由所述权利要求书阐述。本领域的技术人员在理解了上述说明的基础之上,进行的任何形式的变化和改动均落入本发明的保护范围之内。