本发明涉及云计算技术领域,尤其涉及基于osb的应用服务扩展方法、系统、存储介质及装置。
背景技术:
随着云计算技术的不断发展,企业应用也逐渐趋向微服务架构进行转型。同时,会通过理解业务架构来设计容器化的应用服务,因此,在设计容器化服务时,会更加关注性能、可用性、可扩展性和安全性等。
其中,osb(openservicebroker,开放式服务代理者)是微服务领域的一种通用的协议,可以为基础设施软件或应用软件的服务化提供标准化的入口。然而,osb仅仅是一种接口,其具体技术实现是多样的。伴随着各种云化服务的层出不穷,微服务的类型也是越来越多。当前并没有一类较好的技术方案来达成应用服务的易扩展性,当前应用服务的可扩展性较差。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现要素:
本发明的主要目的在于提供基于osb的应用服务扩展方法、系统、存储介质及装置,旨在解决当前应用服务的可扩展性较差的技术问题。
为实现上述目的,本发明提供一种基于osb的应用服务扩展方法,所述基于osb的应用服务扩展方法包括以下步骤:
获取目标应用服务的服务配置参数;
确定与所述目标应用服务对应的目录包;
将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
优选地,所述获取目标应用服务的服务配置参数之后,所述基于osb的应用服务扩展方法还包括:
对所述服务配置参数进行解析,以得到包标识;
相应地,所述确定与所述目标应用服务对应的目录包,具体包括:
根据所述包标识在包管理器中确定与所述目标应用服务对应的目录包。
优选地,所述获取目标应用服务的服务配置参数之前,所述基于osb的应用服务扩展方法还包括:
当接收到注册请求时,获取注册参数;
从所述注册参数中读取服务访问地址;
在包管理器中根据所述服务访问地址获取目标应用服务的服务配置参数。
优选地,所述将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务之后,所述基于osb的应用服务扩展方法还包括:
当接收到服务绑定请求时,获取绑定标识;
将所述绑定标识发送至所述容器集群,以使所述容器集群根据所述绑定标识确定对应的所述目标应用服务的访问凭证,并将所述访问凭证返回至客户端;
其中,所述访问凭证用于所述客户端连接所述目标应用服务。
优选地,所述获取目标应用服务的服务配置参数之前,所述基于osb的应用服务扩展方法还包括:
接收目标应用服务对应的目录包;
在包管理器中存入所述目录包,并对服务列表进行更新;
相应地,所述获取目标应用服务的服务配置参数,具体包括:
从更新的服务列表中读取目标应用服务的服务配置参数;
其中,所述目录包是符合容器集群的包管理器的格式的包;
其中,所述目标应用服务为任一类型的应用服务;
其中,所述目标应用服务为mysql服务或redis服务。
优选地,所述将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务之后,所述基于osb的应用服务扩展方法还包括:
当接收到资源扩充请求时,获取与待扩充应用服务对应的服务定位信息、扩充参数;
根据所述服务定位信息停止运行所述待扩充应用服务,根据所述扩充参数对所述待扩充应用服务进行资源扩充操作,并基于与所述资源扩充操作对应的资源规格启动容器化的应用服务。
此外,为实现上述目的,本发明还提出一种网络设备,所述网络设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于osb的应用服务扩展程序,所述基于osb的应用服务扩展程序配置为实现如上文所述的基于osb的应用服务扩展方法的步骤。
此外,为实现上述目的,本发明还提出一种应用服务系统,所述应用服务系统包括客户端,容器集群以及如上文所述的网络设备;
所述客户端与所述网络设备通过osb协议进行通信,所述网络设备与所述容器集群进行通信。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有基于osb的应用服务扩展程序,所述基于osb的应用服务扩展程序被处理器执行时实现如上文所述的基于osb的应用服务扩展方法的步骤。
此外,为实现上述目的,本发明还提出一种基于osb的应用服务扩展装置,所述基于osb的应用服务扩展装置包括:
参数获取模块,用于获取目标应用服务的服务配置参数;
目录包确定模块,用于确定与所述目标应用服务对应的目录包;
服务生成模块,用于将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
本发明中先获取目标应用服务的服务配置参数,确定与目标应用服务对应的目录包,将服务配置参数与目录包发送至容器集群,以使容器集群生成容器化的目标应用服务。明显地,本发明给出了一类快速创建容器化应用服务的方式,简化了应用服务的创建流程,从而达成了应用服务的易扩展性,解决了当前应用服务可扩展性较差的技术问题。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的网络设备结构示意图;
图2为本发明基于osb的应用服务扩展方法第一实施例的流程示意图;
图3为本发明基于osb的应用服务扩展方法第二实施例的流程示意图;
图4为本发明基于osb的应用服务扩展方法第三实施例的流程示意图;
图5为本发明基于osb的应用服务扩展方法第四实施例的流程示意图;
图6为本发明基于osb的应用服务扩展方法第五实施例的流程示意图;
图7为本发明基于osb的应用服务扩展装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的网络设备结构示意图。
如图1所示,该网络设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display),可选用户接口1003还可以包括标准的有线接口以及无线接口,而用户接口1003的有线接口在本发明中可为通用串行总线(universalserialbus,usb)接口。网络接口1004可选的可以包括标准的有线接口以及无线接口(如wi-fi接口)。存储器1005可以是高速随机存取存储器(randomaccessmemory,ram);也可以是稳定的存储器,比如,非易失存储器(non-volatilememory),具体可为,磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于osb的应用服务扩展程序。
在图1所示的网络设备中,网络接口1004主要用于连接后台服务器,与所述后台服务器进行数据通信;用户接口1003主要用于连接外设;所述网络设备通过处理器1001调用存储器1005中存储的基于osb的应用服务扩展程序,并执行以下操作:
获取目标应用服务的服务配置参数;
确定与所述目标应用服务对应的目录包;
将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
进一步地,处理器1001可以调用存储器1005中存储的基于osb的应用服务扩展程序,还执行以下操作:
对所述服务配置参数进行解析,以得到包标识;
相应地,还执行以下操作:
根据所述包标识在包管理器中确定与所述目标应用服务对应的目录包。
进一步地,处理器1001可以调用存储器1005中存储的基于osb的应用服务扩展程序,还执行以下操作:
当接收到注册请求时,获取注册参数;
从所述注册参数中读取服务访问地址;
在包管理器中根据所述服务访问地址获取目标应用服务的服务配置参数。
进一步地,处理器1001可以调用存储器1005中存储的基于osb的应用服务扩展程序,还执行以下操作:
当接收到服务绑定请求时,获取绑定标识;
将所述绑定标识发送至所述容器集群,以使所述容器集群根据所述绑定标识确定对应的所述目标应用服务的访问凭证,并将所述访问凭证返回至客户端;
其中,所述访问凭证用于所述客户端连接所述目标应用服务。
进一步地,处理器1001可以调用存储器1005中存储的基于osb的应用服务扩展程序,还执行以下操作:
接收目标应用服务对应的目录包;
在包管理器中存入所述目录包,并对服务列表进行更新;
相应地,还执行以下操作:
从更新的服务列表中读取目标应用服务的服务配置参数;
其中,所述目录包是符合容器集群的包管理器的格式的包;
其中,所述目标应用服务为任一类型的应用服务;
其中,所述目标应用服务为mysql服务或redis服务。
进一步地,处理器1001可以调用存储器1005中存储的基于osb的应用服务扩展程序,还执行以下操作:
当接收到资源扩充请求时,获取与待扩充应用服务对应的服务定位信息、扩充参数;
根据所述服务定位信息停止运行所述待扩充应用服务,根据所述扩充参数对所述待扩充应用服务进行资源扩充操作,并基于与所述资源扩充操作对应的资源规格启动容器化的应用服务。
本实施例中先获取目标应用服务的服务配置参数,确定与目标应用服务对应的目录包,将服务配置参数与目录包发送至容器集群,以使容器集群生成容器化的目标应用服务。明显地,本实施例给出了一类快速创建容器化应用服务的方式,简化了应用服务的创建流程,从而达成了应用服务的易扩展性,解决了当前应用服务可扩展性较差的技术问题。
基于上述硬件结构,提出本发明基于osb的应用服务扩展方法的实施例。
参照图2,图2为本发明基于osb的应用服务扩展方法第一实施例的流程示意图。
在第一实施例中,所述基于osb的应用服务扩展方法包括以下步骤:
步骤s10:获取目标应用服务的服务配置参数。
可以理解的是,本实施例的执行主体为网络设备,该网络设备上可运载一应用服务管理平台,可简称为平台。
当然,该平台也可由多个网络设备进行运载,此处不做限制。
进一步地,该应用服务管理平台可基于osb搭建,即,基于osb的应用服务管理平台。
具体地,osb定义了平台和服务代理之间的http(s)接口,需注意,此处所表述的平台这一角色运载于基于osb的客户端上,而非基于osb的应用服务管理平台。服务代理负责向客户端发布服务产品和服务计划的目录,并根据来自基于osb的客户端的请求执行供应、绑定、取消绑定和取消配置。
应当理解的是,为了达成应用服务的易扩展性,本实施例给出了一类快速创建容器化应用服务的方式,简化应用服务的创建流程。
具体地,平台可先获取目标应用服务的服务配置参数。
其中,目标应用服务即为待创建的应用服务,可记为应用服务a。
步骤s20:确定与所述目标应用服务对应的目录包。
接着,可通过查询确定应用服务a的目录包。
其中,目录包可具体为chart包。
其中,chart是描述一组相关的kubernetes资源的文件集合。chart通过创建为特定目录树的文件,将它们打包为版本化的压缩包后,再进行部署。
其中,kubernetes是一类开源的容器编排引擎,它支持自动化部署、大规模可伸缩及应用容器化管理。当在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现及访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。
步骤s30:将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
应当理解的是,平台可将应用服务a的服务配置参数、目录包发送至容器集群侧,容器集群侧可生成容器化的应用服务a,从而可快速地创建容器化的应用服务。
本实施例中先获取目标应用服务的服务配置参数,确定与目标应用服务对应的目录包,将服务配置参数与目录包发送至容器集群,以使容器集群生成容器化的目标应用服务。明显地,本实施例给出了一类快速创建容器化应用服务的方式,简化了应用服务的创建流程,从而达成了应用服务的易扩展性,解决了当前应用服务可扩展性较差的技术问题。
参照图3,图3为本发明基于osb的应用服务扩展方法第二实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于osb的应用服务扩展方法的第二实施例。
第二实施例中,所述步骤s10之后,所述基于osb的应用服务扩展方法还包括:
步骤s101:对所述服务配置参数进行解析,以得到包标识。
可以理解的是,本发明基于osb的应用服务扩展方法第一实施例主要涉及应用服务的创建环节,本实施例将进一步细化此创建环节。
具体地,此处待创建的应用服务以mysql服务为例,可先解析服务配置参数,以得到mysql服务对应的目录包的包标识。
其中,mysql是一种关系型数据库管理系统。
其中,包标识可体现为包编号。
相应地,所述步骤s20,具体包括:
步骤s201:根据所述包标识在包管理器中确定与所述目标应用服务对应的目录包。
可以理解的是,在获取到mysql应用服务包在容器集群的包管理器中的编号后,可通过包编号查询并获取到目录包。
其中,平台中包括有包管理器。
本实施例中进一步地给出了一类容器化应用服务的具体创建方式。
进一步地,服务配置参数示例如下,
其中,服务配置参数中包括mysql数据库服务的service_instancesid(实例id,实例标识),service_id(服务id,服务标识)和plan_id(套餐id,套餐标识)。
其中,service_instances为随机分配的,用来标识创建的应用服务。service_id和plan_id是对应的服务列表中的服务id和套餐id,service_id为mysql的服务编号,plan_id为各种不同模式所对应的id,例如mysql单机模式、mysql主从模式和mysql双主模式。在本实施例中,使用mysql单机模式。
其中,服务配置参数中还包括mysql数据库服务容器化所需要的资源参数和容器化的mysql数据库的访问密码,在本实施例中参数包括容器所需要的资源参数cpu,memory(内存)及capacity(存储),还包括mysql数据库的root用户的密码。
此外,若为mysql主从模式,还需要设置从节点的个数。
进一步地,通过解析面向mysql数据库服务创建的服务配置参数,从helm服务器中拉取出mysql的chart包。
其中,helm是kubernetes的包管理器,helm由客户端组件helm和服务端组件tiller组成,能够将一组kubernetes资源打包统一管理。
进一步地,可先通过服务配置参数对chart包进行渲染,再将渲染结果提交给kubernetes集群,最后,由kubernetes集群来创建容器化的mysql数据库服务。
其中,渲染结果可为yaml文件。
其中,服务配置参数中可包括service_id和plan_id,用于识别具体mysql的数据库模式。在从helm的服务器上下载对应的mysql模式的chart包后,可先解压chart包,并根据参数中的cpu、memory及capacity来渲染生成kubernetes集群可识别的yaml,此时可随机填写service_instancesid,然后再提交给kubernetes集群。
其中,容器集群可为kubernetes集群。
进一步地,为了生成容器化的目标应用服务,可由docker创建对应的容器化的应用服务。
具体地,kubernetes集群在收到渲染好的yaml包后,将任务分配到集群的节点上,利用docker工具,拉取对应的mysql的容器化的镜像,按照yaml运行起mysql的容器,创建容器化的mysql数据库应用服务。
其中,mysql为上述目标应用服务,此处对于目标应用服务的具体类型不做限制。
在本实施例中,可完成对于容器化的mysql数据库服务的创建操作,当然,本实施例不限制应用服务的类型仅为mysql。可见,本实施例简化了创建mysql数据库服务的过程,大大地简化了应用服务的创建过程。同时,也简化了容器化应用服务的编排。
参照图4,图4为本发明基于osb的应用服务扩展方法第三实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于osb的应用服务扩展方法的第三实施例。
第三实施例中,所述步骤s10之前,所述基于osb的应用服务扩展方法还包括:
步骤s01:当接收到注册请求时,获取注册参数。
可以理解的是,本发明基于osb的应用服务扩展方法第三实施例主要涉及应用服务的注册环节,发生于创建环节之前。
具体地,可先接收由用户使用基于osb协议的客户端发起的注册请求,平台可获取到注册参数。
进一步地,可通过解析注册请求,以得到注册参数。
步骤s02:从所述注册参数中读取服务访问地址。
在具体实现中,可通过一个地址信息在容器集群包管理器中获取到所有的应用服务的相关信息。
其中,服务访问地址为基于osb的应用服务管理平台的服务地址。
进一步地,注册参数包括服务访问地址,还可包括访问方式是异步还是同步,若不选可默认为异步。
步骤s03:在包管理器中根据所述服务访问地址获取目标应用服务的服务配置参数。
例如,可获取到mysql数据库服务的服务配置参数,当然,不限制于此,可一次性获取所有的应用服务的服务配置参数。
其中,目标应用服务可为任一应用服务。
其中,也可在包管理器中根据所述服务访问地址获取所有应用服务的服务配置参数。
本实施例中只需提供基于osb的应用服务管理平台的访问地址即上述的服务访问地址,即可获取所有应用服务列表,此类操作大大提高了多类型应用服务的易用性,同时,也为多类型的应用服务提供了一个统一管理平台。
可见,使用统一规范接口对接多类型容器化的应用服务,简化了不同类型的容器化应用服务的可扩展性和易操作性,同时,也提升了多类型应用服务的高效管理性。
进一步地,注册请求对应的restapi示例如下,
gethttp://192.168.1.2:30021/v2/catalog
进一步地,本发明基于osb的应用服务扩展方法第四实施例主要涉及应用服务的注册环节,本实施例将进一步细化此注册环节。
具体地,容器集群的包管理器可为helm工具。为了获取应用服务信息即服务配置参数,主要是从helm的服务器中读取服务器中的index文件,其示例如下,
其中,服务配置参数即index文件中包含服务id、套餐id等信息。
进一步地,在读取服务访问地址后,可根据服务访问地址获取所有的应用服务的服务配置参数,还可返回应用服务列表和所有的可配置参数信息至用户操作的客户端。
其中,可配置参数信息可记为parameters。
本实施例中用户可识别当前可申请的所有应用服务的信息,此过程只需提供osb管理平台的访问地址即可获取所有应用服务的信息,大大提高了对于应用服务的管理高效性,同时也大大提升了应用服务的易用性。
参照图5,图5为本发明基于osb的应用服务扩展方法第四实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于osb的应用服务扩展方法的第四实施例。
第四实施例中,所述步骤s30之后,所述基于osb的应用服务扩展方法还包括:
步骤s40:当接收到服务绑定请求时,获取绑定标识。
可以理解的是,本发明基于osb的应用服务扩展方法第四实施例主要涉及应用服务的访问环节,发生于创建环节之后。
可以理解的是,当接收到客户端发出的服务绑定请求时,可同时接收绑定参数,示例如下,
其中,绑定参数包括有service_instancesid,service_bindingsid,service_id,plan_id和其他参数。
其中,service_bindingsid为绑定id,即可称为绑定标识,方便在查询信息时可直接获取绑定中的访问凭证。其他参数可填可不填,此处填写不作为容器化的mysql数据库服务的具体应用参数,只作为保存参数。
步骤s50:将所述绑定标识发送至所述容器集群,以使所述容器集群根据所述绑定标识确定对应的所述目标应用服务的访问凭证,并将所述访问凭证返回至客户端。
其中,所述访问凭证用于所述客户端连接所述目标应用服务。
应当理解的是,本实施例将解析绑定中的参数,并从容器化的mysql数据库服务中获取访问凭证。
本实施例在访问环节中可利用绑定机制获取容器化的mysql数据库服务的访问凭证,大大提升了容器化的应用服务的访问有效性,也简化了其获取访问凭证的流程。
进一步地,还可采取如下的一类具体的实施流程,例如,基于osb的应用服务管理平台在收到绑定请求后,可先解析出参数中的service_instancesid,service_bindingsid,service_id及plan_id。接着,可根据绑定标识service_instancesid在kubernetes容器集群中找到对应的mysql数据库服务的secret,并从中获取容器化后的mysql的访问ip地址(internetprotocoladdress,互联网协议地址)、端口号、root用户的访问密码、所使用的资源cpu、memory及capacity信息,其返回信息示例如下,
其中,此处所列举的返回信息即为后续客户端访问目标应用服务时的访问凭证。
可见,访问凭证可包括访问ip地址,还可包括端口号、root用户的访问密码、所使用的资源cpu、memory及capacity信息。
进一步地,在经过mysql服务的注册环节,mysql数据库的创建以及mysql的访问机制后,最后获得了容器化mysql的数据库的访问信息。用户可使用如上所示例的返回信息中的返回地址和端口号连接mysql服务。
并且,还可使用root用户的密码在mysql服务中操作。
进一步地,另一方式可为,解析绑定参数,获取到应用服务创建的索引。接着,可根据应用服务索引找到对应的容器化的应用服务,并从应用服务中获取到应用服务的访问凭证。最后,将访问凭证返回,用户可通过访问凭证访问该应用服务。
更具体地,就从kubernetes集群中的容器化的mysql数据库服务中获取mysql的访问凭证的过程而言,先接收到web界面上发出的服务绑定请求,解析配置参数,然后从kubernetes集群中找到对应的容器化的mysql数据库服务,并从mysql数据库服务的secret中获取到mysql数据库服务的访问ip地址,端口号及root用户密码等信息,并将这些信息返回给web界面,用户可在web界面上查看到这些访问凭证。
参照图6,图6为本发明基于osb的应用服务扩展方法第五实施例的流程示意图,基于上述图2所示的第一实施例,提出本发明基于osb的应用服务扩展方法的第五实施例。
第五实施例中,所述步骤s10之前,所述基于osb的应用服务扩展方法还包括:
步骤s04:接收目标应用服务对应的目录包。
可以理解的是,本发明基于osb的应用服务扩展方法第五实施例主要涉及应用服务的扩展机制,发生于创建环节之前。
具体地,以redis服务为例,为了后续更加灵活地且更加符合需求地创建redis服务,可先对redis服务这一类型进行扩展。例如,可先接收外部输入的redis服务的chart包。
其中,redis是一个高性能的key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset,有序集合)和hash(哈希类型)。
其中,目标应用服务对应的目录包符合包管理器的格式,格式示例如下,
步骤s05:在包管理器中存入所述目录包,并对服务列表进行更新。
相应地,所述步骤s10,具体包括:
步骤s102:从更新的服务列表中读取目标应用服务的服务配置参数。
可以理解的是,在存入目标包后,将自动地更新服务列表中redis服务的对应信息。例如,更新并增加的对应信息有,可配置参数cpu,memory,capacity,持久化方式和密码。
同时,更新的服务列表中还将更新并增加有,service_id及plan_id。
明显地,后续的应用服务的创建环节将使用到上述更新并增加的对应信息,例如,service_id及plan_id。
所以,后续在创建环节中,目标应用服务的服务配置参数将含有更新的服务列表中的信息。
本实施例中通过完成了对于redis应用服务的扩展,后续用户可更加简便地创建redis服务,当然本实施例并不限制应用服务的具体类型。明显地,此过程大大简化了多种类型的应用服务的扩展功能,也提升了其性能。
可见,其中,所述目录包是符合容器集群的包管理器的格式的包。
其中,所述目标应用服务为任一类型的应用服务。
其中,所述目标应用服务为mysql服务或redis服务。
进一步地,目标应用服务对应的目录包符合包管理器的格式,可见,使用容器集群包管理器来管理所有应用服务,只需要按照容器集群包管理器可识别包的格式来制作应用服务包,存放入容器集群包管理器中即可以获取该应用服务的相关信息,此方法大大简化了应用服务的扩展性。
进一步地,更具体地,目录包可存入容器集群的包管理器中。
可见,不同类型的应用服务的目录包可存入容器集群的包管理器中。
另外,就存入目录包的存入操作而言,平台可将需扩展的redis应用服务的chart包存入helm服务器中,并更新helm服务器。
更具体地,可存入目标应用服务对应的目录包以及与目录包对应的编号存入容器集群包管理器,即存入helm服务器中。
此外,在helm服务器中增加redis应用服务包之后,平台可对helm的服务器进行更新,此时在服务列表中增加了redis的服务列表条目。
可见,本实施例可通过容器集群包管理器来管理所有应用服务,只需要按照容器集群包管理器可识别包的格式来制作应用服务包,存放入容器集群包管理器中即可以获取该应用服务的相关信息,此方法大大简化了应用服务的扩展性。
另外,平台在更新helm服务器后,可在helm服务器的index文件中添加扩充的redis应用服务的信息,其中包括service_id和plan_id。
此时,helm服务器中的索引文件index中已经新增了一条redis应用服务的条目。
进一步地,平台在从helm服务器中获取扩充之后的应用服务列表时,对扩充后的redis的应用服务增加可配置参数cpu,memory,capacity,持久化方式和密码。打包后,生成完整容器化的应用服务列表。
可见,在经过上述步骤后,服务列表中已经有了扩充的redis应用服务的基本信息,包括有service_id,plan_id及详细的可配置参数等信息。之后,用户可继续进入创建环节、访问环节,创建容器化的redis的应用服务。
进一步地,所述将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务之后,所述基于osb的应用服务扩展方法还包括:
当接收到资源扩充请求时,获取与待扩充应用服务对应的服务定位信息、扩充参数;
根据所述服务定位信息停止运行所述待扩充应用服务,根据所述扩充参数对所述待扩充应用服务进行资源扩充操作,并基于与所述资源扩充操作对应的资源规格启动容器化的应用服务。
需要区别的是,资源扩充请求发生于创建环节之后,扩展机制发生于创建环节之前。
具体地,就资源扩充操作而言,若mysql数据库服务的资源使用不足,可对mysql数据库服务的资源进行扩充。
具体地,主要是对容器化的mysql数据库服务所使用的cpu,memory及capacity参数进行扩充。在容器化的mysql数据库创建成功后,可再提交资源扩充请求,配置对应的参数。
其示例如下,
接着,当基于osb的应用服务管理平台接收到资源扩充请求时,解析配置参数中所有参数。其中,获取service_instancesid,service_id和plan_id即服务定位信息用于定位容器化mysql数据库服务所在的位置,然后找到其位置,停止运行。参数中的cpu,memory,capacity即扩充参数用于在重新启动mysql数据库服务时代替原有的参数,从而实现mysql的资源扩充。
在资源扩充后,根据扩充后的新的资源规格启动容器化的应用服务,即指上述的扩充后的待扩充应用服务。
另外,还可对应用服务的目录包进行编号,并存入容器集群包管理器中。更新容器集群包管理器的索引,这样在容器集群包管理器的索引列表中就加入了新的应用服务。
另外,还可从容器集群包管理器中读取应用服务列表,并为扩充的应用服务配置可配置的参数信息。
另外,基于osb的应用服务管理平台还可重新读取容器集群包管理器中的应用服务列表,并列出对应的应用服务的配置参数。
可选地,基于osb的应用服务管理平台还提供了应用服务资源扩充功能,基于osb的应用服务管理平台在接收资源扩充请求后,解析对应的配置参数,在容器集群中找到对应的应用服务,按照新的参数,提交到容器集群,容器集群先停止资源扩充之前的应用服务,再按照新的资源参数启动应用服务。
可见,本发明基于osb的应用服务扩展方法第一至第五实施例,针对当前容器化的应用服务存在的扩展性较差、设计较为复杂的技术问题,运用osb规范结合容器集群包管理器来搭建一个可扩展应用服务管理平台,如此可以使用统一的osb规范来对接所有类型的应用服务,使用容器集群包管理器来管理所有类型的应用服务,简化了不同类型应用服务的扩展功能,只需在容器集群包管理器中增加不同类型的应用服务包即可实现应用服务的扩展功能。同时,也可以简化应用服务资源的扩充功能。
同时,在多样化的应用程序使用场景下,为满足应用服务类型的增加和应用服务的资源扩充,当前的技术方案多采用单个应用服务加单个代理的方式来编排,而且,在增加应用服务的时候同时需要设计服务代理。可见,当前方案在多种类型的应用服务的编排上操作方式比较繁琐。
针对此操作复杂性较高的操作方式,本实施例通过搭建一个可扩展应用服务管理平台,简化了整体操作流程。
此外,本发明实施例还提出一种应用服务系统,所述应用服务系统包括客户端,容器集群以及上述的网络设备;
所述客户端与所述网络设备通过osb协议进行通信,所述网络设备与所述容器集群进行通信。
本发明所述应用服务系统的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
进一步地,客户端为基于osb协议的客户端。
进一步地,网络设备上可运载基于osb的应用服务管理平台。
具体地,基于osb协议的客户端主要是提供osb对接的接口,可以和基于osb的应用服务管理平台通信,并发出各种应用服务请求。主要是包括注册请求,应用服务创建请求,服务绑定请求以及资源扩充请求,管理平台会返回对应的信息。
其中,基于osb的应用服务管理平台可包括,容器集群的包管理器。
进一步地,容器集群在本实例中用了kubernetes集群,其中有两个部分,一个是应用服务,一个是基于应用服务容器化的镜像。
例如,kubernetes集群主要是编排容器化的mysql数据库服务。
更具体地,在接收到基于osb的应用服务管理平台提交的yaml后,将应用服务分配到kubernetes集群的执行节点上。在节点上,从镜像仓库中拉取基础镜像和基于应用服务容器化的镜像,由docker来创建容器化的mysql数据库服务。其中拉取的镜像为基于应用服务容器化的镜像,基于应用服务容器化的镜像是根据mysql运行的过程来设计开发的,例如本实施例中,对单机模式的mysql的镜像可用官方提供的mysql镜像,而双主模式的mysql的镜像需要重新设计开发,主要是配置双主模式的mysql的节点的角色,同时配置节点之间的连接参数。
进一步地,容器集群中可包括应用服务,也可包括基于应用服务容器化的镜像。
进一步地,应用服务系统还可包括镜像仓库。
其中,镜像仓库主要是存放基于应用服务容器化的镜像,例如,存放mysql的应用服务镜像。
在本实施例中可用harbor仓库加以实施,用于创建mysql容器化的服务。
其中,harbor是构建企业级的私有docker镜像仓库的开源解决方案,它是对dockerregistry的更高级的封装,它可以提供友好的ui(userinterfacedesign,界面设计)界面、角色和用户权限管理,是当下使用比较广泛的docker镜像仓库。
可见,该系统集成了基于osb协议的客户端、基于osb的应用服务管理平台和容器集群,针对容器化的应用服务,简化了应用服务的编排,并为应用服务的扩展提供了支撑平台,从而改善了容器化应用服务的管理效率,也提升了应用服务的易用性。
进一步地,就客户端而言,基于osb协议的客户端,用于与基于osb的应用管理平台进行通信。
具体地,以基于osb的web(网页)界面为例加以说明。
用户可在基于osb的web界面发出对应的请求给osb的应用服务管理平台。
例如,在osb的应用服务管理平台注册时,在web界面上需要输入osb的应用服务管理平台的ip地址和访问请求方式。
例如,在mysql服务创建时,需要在web界面上选择对应的mysql应用服务模式,例如单机模式或者双主模式,然后配置cpu,memory,capacity和mysql的root用户的密码,再发送给osb的应用服务的管理平台。
例如,在mysql服务绑定时,web界面上填写参数,然后向osb的应用服务管理平台发送绑定请求,osb的应用服务管理平台将返回mysql的连接地址和密码,最后在web界面上将显示创建的容器化的mysql数据库应用服务的访问id地址,端口号及密码。用户可以使用此ip地址和密码进行访问。
进一步地,就容器集群而言,具体地,容器集群先从镜像仓库中拉取应用服务的镜像,再对所有应用服务进行管理和编排。
另外,容器集群可接收基于osb的应用服务管理平台对应用服务的创建请求和访问请求。
进一步地,就镜像仓库而言,具体地,存放所有应用服务需要的基础镜像和基于应用服务的容器化镜像。
更具体地,此处可提供一类更为具体的系统实施例,如下。
平台中包括有服务列表,服务列表列出所有应用服务的编号,主要是包括服务编号和套餐编号,另外,还包括所有应用服务的可配置的参数信息和服务详细描述信息。
当平台接收到应用服务创建申请时,从配置参数中获取应用服务实例编号和资源参数信息,从容器集群包管理器中拉取对应的应用服务包,并提交给容器集群。
当平台接收到接收应用服务绑定申请时,从配置参数中获取应用服务实例编号,并从容器集群中的应用服务中去获取对应的访问凭证。
容器集群包管理器,用于访问应用服务的包,可提交给容器集群,并由容器集群创建对应的应用服务容器。
容器集群主要是从镜像仓库中拉取应用服务的镜像,并对容器化的应用服务进行编排。其中,包含两部分,分别为基于应用服务容器化的镜像,应用服务。
针对基于应用服务容器化的镜像,在理解应用程序的运行和开发过程后,需要基于这个应用服务的运行过程来开发容器化的应用服务的镜像,此镜像用于创建容器化的应用服务。
针对应用服务,具体为容器化的应用服务,可将应用程序放入容器中运行,并提供应用服务凭证。
镜像仓库用于存放基于应用服务的容器化的镜像,在容器集群创建容器化的应用服务时,需要从镜像仓库中拉取对应的镜像。
进一步地,平台还包括,服务列表。
另外,就服务列表而言,主要是从helm服务器中获取service_id和plan_id,并根据service_id和plan_id判断哪些类型的应用服务和每种应用服务有哪些套餐。然后,可将mysql数据库应用服务的可配置参数和服务的service_id和plan_id提供给基于osb协议的web界面,用户可在界面上查看mysql的参数信息和套餐类型。
另外,就容器集群包管理器而言,主要是利用helm工具,搭建helm的服务器,存放mysql数据库服务的chart包。
helm服务器的地址主要是用于获取服务列表和创建过程中的下载。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有基于osb的应用服务扩展程序,所述基于osb的应用服务扩展程序被处理器执行时实现如下操作:
获取目标应用服务的服务配置参数;
确定与所述目标应用服务对应的目录包;
将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
进一步地,所述基于osb的应用服务扩展程序被处理器执行时还实现如下操作:
对所述服务配置参数进行解析,以得到包标识;
相应地,还实现如下操作:
根据所述包标识在包管理器中确定与所述目标应用服务对应的目录包。
进一步地,所述基于osb的应用服务扩展程序被处理器执行时还实现如下操作:
当接收到注册请求时,获取注册参数;
从所述注册参数中读取服务访问地址;
在包管理器中根据所述服务访问地址获取目标应用服务的服务配置参数。
进一步地,所述基于osb的应用服务扩展程序被处理器执行时还实现如下操作:
当接收到服务绑定请求时,获取绑定标识;
将所述绑定标识发送至所述容器集群,以使所述容器集群根据所述绑定标识确定对应的所述目标应用服务的访问凭证,并将所述访问凭证返回至客户端;
其中,所述访问凭证用于所述客户端连接所述目标应用服务。
进一步地,所述基于osb的应用服务扩展程序被处理器执行时还实现如下操作:
接收目标应用服务对应的目录包;
在包管理器中存入所述目录包,并对服务列表进行更新;
相应地,还实现如下操作:
从更新的服务列表中读取目标应用服务的服务配置参数;
其中,所述目录包是符合容器集群的包管理器的格式的包;
其中,所述目标应用服务为任一类型的应用服务;
其中,所述目标应用服务为mysql服务或redis服务。
进一步地,所述基于osb的应用服务扩展程序被处理器执行时还实现如下操作:
当接收到资源扩充请求时,获取与待扩充应用服务对应的服务定位信息、扩充参数;
根据所述服务定位信息停止运行所述待扩充应用服务,根据所述扩充参数对所述待扩充应用服务进行资源扩充操作,并基于与所述资源扩充操作对应的资源规格启动容器化的应用服务。
本实施例中先获取目标应用服务的服务配置参数,确定与目标应用服务对应的目录包,将服务配置参数与目录包发送至容器集群,以使容器集群生成容器化的目标应用服务。明显地,本实施例给出了一类快速创建容器化应用服务的方式,简化了应用服务的创建流程,从而达成了应用服务的易扩展性,解决了当前应用服务可扩展性较差的技术问题。
此外,参照图7,本发明实施例还提出一种基于osb的应用服务扩展装置,所述基于osb的应用服务扩展装置包括:参数获取模块10、目录包确定模块20以及服务生成模块30;
所述参数获取模块10,用于获取目标应用服务的服务配置参数;
所述目录包确定模块20,用于确定与所述目标应用服务对应的目录包;
所述服务生成模块30,用于将所述服务配置参数与所述目录包发送至容器集群,以使所述容器集群生成容器化的所述目标应用服务。
本实施例中先获取目标应用服务的服务配置参数,确定与目标应用服务对应的目录包,将服务配置参数与目录包发送至容器集群,以使容器集群生成容器化的目标应用服务。明显地,本实施例给出了一类快速创建容器化应用服务的方式,简化了应用服务的创建流程,从而达成了应用服务的易扩展性,解决了当前应用服务可扩展性较差的技术问题。
本发明所述基于osb的应用服务扩展装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。词语第一、第二、以及第三等的使用不表示任何顺序,可将这些词语解释为名称。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器、ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者通信设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。