一种云平台服务创建方法及装置
技术领域
本申请涉及云计算技术,具体涉及一种云平台服务创建方法及装置。
背景技术
PaaS(Platform-as-a-Service,平台即服务)是云计算技术中重要的服务类型。PaaS平台是一个自动化的平台,它的作用可以概括为两个方面:应用和服务。其中服务是PaaS平台上重要的组成部分,也是能体现出PaaS平台产品特色的部分。服务是指PaaS平台可以将各种开发过程需要的软件产品(如数据库、中间件、存储等产品)作为一种在线服务资源提供给开发人员。
Cloud Foundry是VMware公司推出的PaaS平台产品,它是一种开源的、松散耦合的PaaS云平台。Cloud Foundry利用服务中介Service Broker实现平台与服务的交互,它的功能包括服务的注册、创建服务实例与销毁、服务认证信息的创建与销毁、与云平台用户的应用进行绑定和解绑。
服务中介处于云平台与用户之间,用户可以将自己的数据中心或者第三方软件提供商可以将自己的应用软件服务通过服务中介注册到云平台的服务集市上,云平台的用户可以通过云平台获取自己需要的服务,如图1所示。
本申请中,将云平台的服务抽象成一个服务的节点,这个节点可以由两个部分组成:服务器Server和服务中介(Service Broker)。Server就是具体的部署了应用服务软件的服务器(如数据库服务器、Web服务器);服务中介可以由用户、第三方软件提供商、云平台运营商提供,它是一个独立的、可移植的组件,方便开发人员根据自己的需求进行服务中介的实现。
Cloud Foundry的Service Broker所能提供的服务包括数据服务、消息服务以及其他服务。数据服务是数据库服务,如Mysql数据库。消息服务是消息中间件,支持RabbitMQ。这些服务都是部署在云计算环境中,由Cloud Foundry提供服务支持的。
云平台用户或者第三方也可以根据Cloud Foundry提供的接口去实现某一个具体服务的Service Broker,通过自己实现的Service Broker可以帮助云平台用户将自己本地服务或者第三方的服务融入到Cloud Foundry平台中。
虽然Cloud Foundry平台利用Service Broker和服务功能保持松散的耦合关系,增强了平台的可扩展性,但是在实现本申请的过程中,发明人发现Cloud Foundry的Service Broker实现也存在着一些缺陷:例如,能够与云平台进行融合的服务产品种类繁多,各有各的特点;而Cloud Foundry的Service Broker没有充分地考虑到这些服务的特点,所提供的接口往往不能与一些具体服务相匹配。例如,Cloud Foundry的ServiceBroker要求注册的服务必须能够支持创建服务实例,而常用的一些中间件,例如,tomcat并不支持创建服务实例,此时这些中间件服务将无法注册至云平台,即,云平台中无法创建相应的服务。
采用现有技术中的云平台服务的创建方法,某些不满足要求的服务无法被创建,导致云平台创建的服务种类较少。
发明内容
本申请实施例中提供了一种云平台服务创建方法及装置,用于解决现有技术中的云平台创建的服务种类较少的问题。
根据本申请实施例的一个方面,提供了一种云平台服务创建方法,包括:服务中介Service Broker接收用户对待创建服务的属性设置;将用户设置的属性发送至云平台;触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定。
根据本申请实施例的一个方面,提供了一种应用于服务中介Service Broker的云平台服务创建装置,包括:第一接收模块,用于接收用户对待创建服务的属性设置;第一发送模块,用于将用户设置的属性发送至云平台;第一触发模块,用于触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定。
本申请实施例中的云平台服务创建方案,服务中介Service Broker接收用户对待创建服务的属性设置;将用户设置的属性发送至云平台;触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定;使得云平台能够根据服务的属性来创建服务,避免现有技术中的服务中介接口固定导致的某些不满足要求的服务无法被创建,导致云平台创建的服务种类较少的问题,使得用户通过Service Broker能够在云平台上创建各种属性的服务。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为现有技术中的服务中介、云平台及用户之间的关系示意图;
图2为本申请实施例中的服务中介接口示意图;
图3为本申请实施例一所示的云平台服务创建方法流程图;
图4为本申请实施例一所示的创建服务器的方法流程图;
图5为根据本申请实施例二的服务中介工作的流程图;
图6是根据本申请实施例三的云平台服务创建装置的结构示意图。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,Cloud Foundry的Service Broker没有充分地考虑到现有服务的特点,所提供的接口往往不能与一些具体服务相匹配。
另一方面,Cloud Foundry的Service Broker没有使服务充分发挥云计算环境的优势。云计算技术的基础是将各种物理资源进行虚拟化,形成抽象的资源池供用户使用。Cloud Foundry的Service Broker没有提供任何利用资源池创建服务节点的接口API,没能有效地利用云平台提供的虚拟化资源。例如,Cloud Foundry上的Mysql服务的ServiceBroker,只能创建一个服务器,不能创建多个服务器,不仅造成平台资源利用率低,而且不能发挥出Mysql数据库服务的功能特性,不能满足用户针对数据库进行数据隔离的需求。
针对上述问题,本申请实施例中提供了一种云平台的服务创建方案,预先定义待创建的服务的服务中介接口,以实现对云平台服务功能的扩展,如图2所示;实现了服务中介接口的组件就可以完成云平台上的服务中介的功能。
注册服务信息(regist)是本申请实施例中的服务中介必须要实现的接口。云平台需要通过regist接口从服务中介处获取服务中介所支持的所有服务的信息。通过注册服务信息(regist)接口可以设置的属性包括:enable_server(定义该服务是否支持服务Server的创建)、enable_instance(定义该服务是否支持创建服务实例)、enable_bind(定义该服务是否支持用户信息的绑定)。注册服务信息之后,云平台的用户就可以通过云服务集市看到服务的相关信息。
本申请实施例中提供了一种云平台的服务创建方案,通过在服务中介ServiceBroker接收用户对待创建服务的属性设置;将用户设置的属性发送至云平台;触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定;使得云平台能够根据服务的属性来创建服务,避免现有技术中的服务中介接口固定导致的某些不满足要求的服务无法被创建,导致云平台创建的服务种类较少的问题,使得用户通过Service Broker能够在云平台上创建各种属性的服务。
本申请实施例中的服务中介可以通过HTTP协议与云平台进行交互,利用能够进行网络编程的开发语言即可实现,没有限制开发人员的开发环境、开发语言、技术框架等,可以满足各种开发平台用户的需求。
实施例一
图3为本申请实施例一所示的云平台服务创建方法流程图。
如图3所示,本申请实施例一所示的云平台服务创建方法包括:
S301,服务中介Service Broker接收用户对待创建服务的属性设置;
S302,将用户设置的属性发送至云平台;
S303,触发云平台根据属性创建服务;
其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定。
为了使服务中介更加切合实际、更加有效地被利用,服务中介的接口可以具备很好的可变性,即,可设置性,用户可以通过接口对该服务是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定进行设置;本方案利用可变性来提高服务中介组件的开放性;针对不同的服务产品,服务中介只需要将可变的部分进行适当的设置与调节,也就是专化(Specialize)来实现服务中介和服务产品的融合。
例如,对于数据库类型的服务,为了提高数据的安全性,通常将数据保存在服务供应商本地的数据中心;因此,在进行注册时,可以设置不支持创建服务器;对于web中间件的服务,例如tomcat,它作为一种运行web应用程序的容器,不存在创建服务实例的概念;因此,在进行注册时,可以设置不支持创建服务实例;对于云资源监控服务,它收集云平台上虚拟资源的使用信息,进行实时监控,与用户上传到云平台的各种应用,没有直接的调用与访问关系;因此,在进行注册时,可以设置为不支持用户绑定。
创建服务器Server(create_server)是服务中介可选的接口。在云计算环境下,create_server接口可以有效地利用云平台的资源池进行多个服务节点的创建,保证服务的高可用性和高性能。
在具体实施时,创建服务器的步骤可以包括:Service Broker接收用户创建服务器的请求;向云资源池发送资源获取请求;触发云资源池根据所述资源获取请求创建服务器,并将服务器的信息发送给Service Broker;Service Broker将所述服务器的信息发送用户。
在具体实施时,创建服务器的流程可以如图4所示。
如图4所示,创建服务器的流程可以包括以下步骤:
S401,用户通过云平台用户客户端发送创建服务器的请求;
S402,云平台控制器在接收到创建服务器的请求时,将创建服务器的请求发送给服务中介Service Broker;
S403,Service Broker接收用户创建服务器的请求后,向云资源池发送资源获取请求;
S404,云资源池根据所述资源获取请求创建服务器;
S405,云资源池将服务器的信息发送给Service Broker;
S406,Service Broker将所述服务器的信息携带在创建服务器的响应消息中发给云平台控制器;
S407,云平台控制器向用户返回服务器创建成功的消息。
创建服务Server之后,云计算环境中就新增了新的服务节点,服务实例、服务用户等服务相关的对象都会在服务Server上运行和创建。
销毁Server(destroy_server)也是服务中介可选的接口。服务中介进行服务器销毁的过程,就是创建服务器的逆过程,服务中介会回收Server创建过程中分配的各种资源。
在具体实施时,在创建服务器之后,属性还包括支持销毁服务器,还可以包括:Service Broker接收用户发送的销毁服务器请求,销毁服务器请求中携带服务器的信息;向云资源池发送销毁服务器请求,销毁服务器请求中携带服务器的信息;触发云资源池回收为服务器分配的资源。
创建实例(create_instance)是服务中介可选的接口。服务中介接受到云平台的请求后,会采取一系列动作分配服务资源,在服务器上创建新的服务实例,创建服务实例的最终结果会因服务类型的不同而不同。以Mysql数据库服务为例,创建服务实例意味着在Mysql数据库服务器创建了一个空白的数据库。
以mysql数据库为例,创建服务实例,会发生以下几个步骤:
1、创建数据库服务实例的物理结构:设置数据库的存储引擎类型,为数据库服务实例分配数据文件以及存储容量;
2、创建数据库服务实例的逻辑结构:设置数据库服务实例占用的内存、数据缓存、日志缓存等;
3、利用上述资源与设置,创建并启动数据库服务实例。
在具体实施时,在属性包括支持创建服务实例时,在云平台根据属性创建服务之后,进一步包括:Service Broker接收用户创建服务实例的请求;向预先创建的服务器发送服务资源获取请求;触发服务器根据服务资源获取请求创建服务实例,并将服务实例的信息发送给Service Broker;Service Broker将所服务实例的信息发送用户。
销毁实例(destroy_instance)也是服务中介可选的接口。服务中介进行服务实例销毁的过程,就是创建服务实例的逆过程,服务中介会回收实例创建过程中分配的各种资源。
在具体实施时,在创建服务实例之后,在属性包括支持创建服务实例时,还可以包括销毁服务实例的步骤。该步骤可以如下:Service Broker接收用户发送的销毁实例请求,销毁实例请求中携带服务实例的信息;向服务器发送销毁实例请求,销毁实例请求中携带服务实例的信息;触发服务器回收为服务实例分配的资源。
用户信息绑定(bind)也是服务中介可选的接口。服务中介进行用户信息绑定时,可以创建服务的认证信息,并将认证信息返回给云平台,可以由云平台将信息发送给请求绑定的应用。应用可以通过服务的认证信息获取服务,完成服务实例与应用的绑定。实现服务绑定之后,云计算环境中的用户应用可以根据绑定信息去访问相应的服务,获取云计算平台的计算服务和资源。
在具体实施时,用户信息绑定可以包括以下步骤:Service Broker接收用户绑定用户信息的请求,用户信息包括应用信息;根据用户信息创建应用的认证信息;将认证信息发送至云平台;触发云平台将认证信息发送至应用。
在用户信息绑定之后,还可以包括解绑的过程。
解绑(unbind)也是服务中介可选的接口。服务中介进行解绑动作的过程,就是进行绑定的逆过程,服务中介会回收绑定过程中创建的各种资源。实现服务解绑之后,云计算环境中的应用失去了服务的认证信息,无法再去获取服务。
在具体实施时,属性还包括支持用户信息的解绑定,解绑流程可以包括以下步骤:Service Broker接收用户发送的解除绑定请求,解除绑定请求中携带应用信息;ServiceBroker删除应用的认证信息。
采用本申请实施例提供的云平台服务创建方法,通过在服务中介Service Broker接收用户对待创建服务的属性设置;将用户设置的属性发送至云平台;触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定;使得云平台能够根据服务的属性来创建服务,避免现有技术中的服务中介接口固定导致的某些不满足要求的服务无法被创建,导致云平台创建的服务种类较少的问题,使得用户通过Service Broker能够在云平台上创建各种属性的服务。
本申请实施例中的服务中介接口还增加了资源分配与回收功能,使其可以参与创建与销毁服务的服务器,充分利用云计算资源。
实施例二
图5中提供了根据本申请实施例二的服务中介工作的流程图。
本申请实施例二的服务中介接口定义了服务信息注册、创建服务器、创建服务实例、绑定、解绑、销毁服务实例、销毁服务器等几个步骤,根据本申请实施例二的服务中介工作的如图5所示。
根据本申请实施例二的服务中介工作流程包括以下步骤:
S501,接收用户的注册服务信息,该信息中包括用户设置的服务属性;
S502,判断该服务是否支持创建服务器;如果支持,则执行S503,如果不支持,则执行S504;
S503,创建服务器;
S504,判断该服务是否支持创建服务实例;如果支持,则执行S505,如果不支持,则执行S506;
S505,创建服务实例;
S506,判断该服务是否支持用户信息绑定;如果支持,则执行S507和S508,如果不支持,则执行S509;
S507,与应用进行绑定;
S508,与应用解除绑定;
S509,判断该服务是否支持销毁服务实例;如果支持,则执行S510,如果不支持,则执行S511;
S510,销毁服务实例;
S511,判断该服务是否支持销毁服务器;如果支持,则执行S512,如果不支持,则结束;
S512,销毁服务器。
在云计算环境下,通过本申请实施例中的服务中介接口,可以利用云平台的资源池完成服务器的创建,还可以创建服务的一个或多个服务器,提高用户数据的隔离性,充分发挥云计算技术的优势,提高资源的利用率。本申请实施例中的服务中介接口还增加了资源分配与回收功能,使其可以参与创建与销毁服务的服务器,充分利用云计算资源。
利用PaaS平台上的Mysql服务进行实验,利用本申请实施例中的服务中介的接口创建服务器,可以在PaaS平台上创建多个单一或者集群的数据库服务,还可以设定这些服务Server的可见性,实现服务的独享和共享模式,极大地丰富云平台的服务类型,满足用户数据隔离的需求。
基于同一发明构思,本申请实施例中还提供了一种云平台服务创建装置,由于该装置解决问题的原理与本申请实施例一中的云平台服务创建方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
实施例三
图6是根据本申请实施例三的云平台服务创建装置的结构示意图。
如图6所示,根据本申请实施例三的云平台服务创建装置600包括:第一接收模块601,用于接收用户对待创建服务的属性设置;第一发送模块602,用于将用户设置的该属性发送至云平台;第一触发模块603,用于触发该云平台根据该属性创建服务;其中,该属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定。
优选地,在该属性包括支持创建服务器时,进一步包括:第二接收模块,用于接收用户创建服务器的请求;第二发送模块,用于向云资源池发送资源获取请求;第二触发模块,用于触发云资源池根据该资源获取请求创建服务器,并将该服务器的信息发送给该Service Broker;第三发送模块,用于将该服务器的信息发送用户。
优选地,在该属性还包括支持销毁服务器时,进一步包括:第三接收模块,用于接收用户发送的销毁服务器请求,该销毁服务器请求中携带服务器的信息;第四发送模块,用于向云资源池发送销毁服务器请求,该销毁服务器请求中携带服务器的信息;第三触发模块,用于触发云资源池回收为该服务器分配的资源。
优选地,该属性包括支持创建服务实例时,进一步包括:第四接收模块,用于接收用户创建服务实例的请求;第五发送模块,用于向预先创建的服务器发送服务资源获取请求;第四触发模块,用于触发服务器根据该服务资源获取请求创建服务实例,并将该服务实例的信息发送给Service Broker;第六发送模块,用于将该服务实例的信息发送用户。
优选地,该属性包括支持销毁服务实例时,进一步包括:第五接收模块,用于接收用户发送的销毁实例请求,该销毁实例请求中携带服务实例的信息;第七发送模块,用于向服务器发送销毁实例请求,该销毁实例请求中携带服务实例的信息;第五触发模块,用于触发服务器回收为该服务实例分配的资源。
优选地,该属性包括支持用户信息绑定时,进一步包括:第六接收模块,用于接收用户绑定用户信息的请求,该用户信息包括应用信息;创建模块,用于根据该用户信息创建该应用的认证信息;第八发送模块,用于将该认证信息发送至云平台;第六触发模块,用于触发该云平台将该认证信息发送至该应用。
优选地,该属性包括支持用户信息解绑定时,进一步包括:第七接收模块,用于接收用户发送的解除绑定请求,该解除绑定请求中携带应用信息;删除模块,用于删除该应用的认证信息。
采用本申请实施例提供的云平台服务创建装置,通过在服务中介Service Broker接收用户对待创建服务的属性设置;将用户设置的属性发送至云平台;触发云平台根据属性创建服务;其中,属性包括下述至少一种:是否支持创建服务器、是否支持创建服务实例、是否支持用户信息绑定;使得云平台能够根据服务的属性来创建服务,避免现有技术中的服务中介接口固定导致的某些不满足要求的服务无法被创建,导致云平台创建的服务种类较少的问题,使得用户通过Service Broker能够在云平台上创建各种属性的服务。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-RON、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。