CN112068850A - 服务产品实例的创建方法、装置及电子设备 - Google Patents

服务产品实例的创建方法、装置及电子设备 Download PDF

Info

Publication number
CN112068850A
CN112068850A CN202010934515.4A CN202010934515A CN112068850A CN 112068850 A CN112068850 A CN 112068850A CN 202010934515 A CN202010934515 A CN 202010934515A CN 112068850 A CN112068850 A CN 112068850A
Authority
CN
China
Prior art keywords
service
brokerserver
instance
servicebroker
product
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.)
Pending
Application number
CN202010934515.4A
Other languages
English (en)
Inventor
吴超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010934515.4A priority Critical patent/CN112068850A/zh
Publication of CN112068850A publication Critical patent/CN112068850A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种服务产品实例的创建方法、装置及电子设备,其中,方法应用于PAAS平台;PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;方法包括:获取目标服务产品对应的ServiceBroker;ServiceBroker包括目标服务产品的服务操作函数及服务参数;将ServiceBroker注册到BrokerServer中,得到目标服务产品;基于目标服务产品,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例。本申请能够满足用户对服务产品的特殊需求或定制化需求。

Description

服务产品实例的创建方法、装置及电子设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种服务产品实例的创建方法、装置及电子设备。
背景技术
市面上PAAS(Platform as a Service)平台提供的服务通常为数据库、中间件等,都是简单的服务实例,大多数情况都是启动一个简单的mysql单机版,或加了些配置的mysql单机版,稍微复杂点,也就是利用mysql集群供使用者使用,主要用于开发人员的程序测试等等。但实际情况下的需求,是更偏向生产环境能使用的或特别需求的定制化服务。现有服务产品基于平台规范开发,会受到平台规范的限制,导致满足不了用户的特殊需求或定制化需求。
发明内容
有鉴于此,本申请实施例提供一种服务产品实例的创建方法、装置及电子设备,能够根据用户的定制化需求,创建相应的服务产品实例,满足用户的特殊需求或定制化需求。
第一方面,本申请实施例提供一种服务产品实例的创建方法,该法应用于PAAS平台;PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;方法包括:获取目标服务产品对应的ServiceBroker;ServiceBroker包括目标服务产品的服务操作函数及服务参数;服务参数包括:URL、用户名和密码;将ServiceBroker注册到BrokerServer中,得到目标服务产品;基于目标服务产品及其对应的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例。
进一步的,上述PAAS平台是基于K8S或OKD的平台,BrokerServer的API对应的资源存储于K8S或OKD中,及BrokerServer的源代码逻辑程序以服务容器方式应用于K8S或OKD中,或者BrokerServer的API对应的资源及BrokerServer的源代码逻辑程序重写于K8S对应的源码中或OKD对应的源码中。
进一步的,上述将ServiceBroker注册到BrokerServer中,得到目标服务产品的步骤,包括:响应针对前端页面的ServiceBroker的注册请求,调用BrokerServer的注册接口,通过注册接口将ServiceBroker注册到BrokerServer中,得到目标服务产品;其中,注册请求中携带有ServiceBroker对应的服务参数。
进一步的,上述将ServiceBroker注册到BrokerServer中,得到目标服务产品的步骤之后,还包括:将目标服务产品添加至服务列表;其中,服务列表用于向用户展示PAAS平台当前已注册的服务产品的集合。
进一步的,上述将目标服务产品的标识添加至服务列表的步骤,包括:通过BrokerServer调用ServiceBroker的获取服务列表详情函数,生成BackingService;BackingService为包含目标服务产品的服务列表。
进一步的,上述基于目标服务产品及其对应的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例的步骤,包括:响应于用户对目标服务产品的创建服务实例操作,调用BrokerServer的创建服务实例API,查找目标服务产品对应的BackingService,查找BackingService对应的ServiceBroker,并调用ServiceBroker的创建服务函数,基于所述目标服务产品对应的镜像,创建目标服务产品对应的实例。
进一步的,上述调用ServiceBroker的创建服务函数,基于所述目标服务产品对应的镜像,创建目标服务产品对应的实例的步骤,包括:将目标服务产品对应的镜像加载到镜像仓库中,并通过K8S原生资源deployment,调用K8S或OKD的API,将目标服务产品对应的实例部署在K8S或OKD中。
进一步的,上述方法还包括:响应针对目标服务产品对应实例的查看请求,调用BrokerServer的获取服务实例状态接口,向PAAS平台的前端页面展示目标服务产品的实例详情。
进一步的,上述目标服务产品的服务操作函数包括以下中的多项:获取服务列表详情函数、创建服务函数、删除服务函数、获取服务详情函数、更新服务函数、绑定服务函数和解除绑定服务函数。
进一步的,上述BrokerServer的API至少包括:ServerBroker的操作接口、BackingService服务列表或详情操作接口、BackingServiceInstance服务实例的操作接口。
进一步的,上述ServerBroker的操作接口至少包括以下的多个:注册ServiceBroker、更新ServiceBroker和删除ServiceBroker;BackingService服务列表或详情操作接口包括:获取服务列表、获取单个服务;BackingServiceInstance服务实例的操作接口至少包括以下多个:创建服务实例、获取单个服务实例、获取服务实例列表、更新服务实例、删除服务实例和获取服务实例状态。
进一步的,上述服务参数包括:URL、用户名和密码。
第二方面,本申请实施例还提供一种服务产品实例的创建装置,装置应用于PAAS平台;PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;装置包括:ServiceBroker获取模块,用于获取目标服务产品对应的ServiceBroker;ServiceBroker包括目标服务产品的服务操作函数及服务参数;ServiceBroker注册模块,用于将ServiceBroker注册到BrokerServer中,得到目标服务产品;实例创建模块,用于基于目标服务产品,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例。
第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述方法。
本申请实施例提供的服务产品实例的创建方法,应用于PAAS平台;该PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;当获取目标服务产品对应的ServiceBroker时,将ServiceBroker注册到BrokerServer中,得到目标服务产品,最后基于该目标服务产品及预先做好的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例,本申请实施例能够根据用户的定制化需求,创建相应的服务产品实例,满足用户的特殊需求或定制化需求。
为使本申请实施例的上述目的、特征和优点能更明显易懂,下面将结合实施例,并配合所附附图,作详细说明。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种服务产品实例的创建方法的流程图;
图2示出了本申请实施例所提供的一种多种服务产品对应ServiceBroker的注册示意图;
图3示出了本申请实施例所提供的一种服务产品实例的创建装置的结构示意图;
图4示出了本申请实施例所提供的另一种服务产品实例的创建装置的结构示意图;
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有的PAAS平台提供的服务通常为数据库、中间件等,都是简单的服务实例,此类服务产品都会做一个服务列表,对应各种服务套餐,前端可进行相关配置,产生yaml,调用后端K8S接口,以POD的形式启动。使用K8S接口返回给前端服务POD状态信息,使用者即可使用服务。而服务列表上的服务的增删则是在后台管理员进行命令行操作。这种服务产品基于平台规范开发,因而会受到平台规范的限制,导致服务产品不会太复杂,并且大多数情况下满足不了用户的特殊需求或定制化需求。
基于此,本申请实施例提供一种服务产品实例的创建方法、装置及电子设备,能够根据用户的定制化需求,创建相应的服务产品实例,满足用户的特殊需求或定制化需求。
首先介绍一下本申请实施例相关的技术,ServiceBroker:参考OpenServiceBroker,是一种服务代理规范,定义某种服务的创建、删除、更新等函数接口。BackingService:服务套餐,如Mysql、Redis都是一种服务套餐。也可以有子套餐如Mysql服务有单机版和集群版,单机版Mysql为套餐Mysql的子套餐A,集群版Mysql为套餐Mysql的子套餐B。BackingServiceInstance:服务套餐实例,例如套餐mysql实例化一个具体的应用,使用者可以直接使用mysql。BrokerServer:是ServiceBroker的管理者,包括ServiceBroker的注册与发现,服务套餐、服务实例的管理等。
图1为本申请实施例所提供的一种服务产品实例的创建方法的流程图,该方法应用于PAAS平台;PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;该BrokerServer的API至少包括:ServerBroker的操作接口、BackingService服务列表或详情操作接口、BackingServiceInstance服务实例的操作接口。
上述服务产品实例的创建方法具体包括以下步骤:
步骤S102,获取目标服务产品对应的ServiceBroker。
上述ServiceBroker包括目标服务产品的服务操作函数及服务参数;其中,服务参数包括:URL、用户名和密码。目标服务产品对应的ServiceBroker是开发人员根据用户的需求,基于openServiceBroker规范而编写的,其中,包括目标服务产品的服务操作函数,比如:获取服务列表详情函数、创建服务函数、删除服务函数、获取服务详情函数、更新服务函数、绑定服务函数和解除绑定服务函数等,这里的函数可以向外提供接口。
上述规范定义了服务的创建、删除、更新、绑定、解除绑定、最新操作、状态等函数接口,开发服务人员只需遵循此规范,无论使用何种编程语言(如Go、C、JAVA等),开发出来的服务都可以在BrokerServer里注册与管理。由于只需接口规范化,服务实际的逻辑使用场景开发人员可根据特定需求开发出自定义的复杂的可用于生产的服务,使得服务产品多元化,可定制化。
步骤S104,将ServiceBroker注册到BrokerServer中,得到目标服务产品。
在开发人员根据用户的服务需求,按照上述规范写成一个ServiceBroker后,将其注册到BrokerServer中,得到目标服务产品。具体的注册过程可以通过BrokerServer自带的处理逻辑实现,在接收到上述ServiceBroker后,自动进行注册,或者也可以通过管理者发起的注册请求,进行ServiceBroker注册。
步骤S106,基于目标服务产品及其对应的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例。
在上述ServiceBroker注册到BrokerServer中后,即可根据开发人员的创建实例需求,调用BrokerServer创建服务实例API,即可完成目标服务产品的创建实例。根据不同的镜像,可以创建出不同的实例。
本申请实施例提供的服务产品实例的创建方法,应用于PAAS平台;该PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;当获取目标服务产品对应的ServiceBroker时,将ServiceBroker注册到BrokerServer中,得到目标服务产品,最后基于该目标服务产品及预先做好的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例,本申请实施例能够根据用户的定制化需求,创建相应的服务产品实例,满足用户的特殊需求或定制化需求。
上述BrokerServer的API中,ServerBroker的操作接口至少包括以下多个:注册ServiceBroker、更新ServiceBroker和删除ServiceBroker;BackingService服务列表或详情操作接口包括:获取服务列表、获取单个服务;BackingServiceInstance服务实例的操作接口至少包括以下多个:创建服务实例、获取单个服务实例、获取服务实例列表、更新服务实例、删除服务实例和获取服务实例状态。
比如:BrokerServer提供以下API列表:
//kind:ServiceBroker
注册ServiceBroker
POST("/oapi/v1/servicebrokers",server.CreateSBnew)
更新ServiceBroker
PUT("/oapi/v1/servicebrokers/:name",server.UpdateSB)
删除ServiceBroker
DELETE("/oapi/v1/servicebrokers/:name",server.DeleteSBnew)
//kind:BackingService
获取服务列表
GET("/oapi/v1/namespaces/:namespace/backingservices",server.GetBSListnew)
获取单个服务
GET("/oapi/v1/namespaces/:namespace/backingservices/:name",server.GetBSnew)
//kind:BackingServiceInstance
创建服务实例
POST("/oapi/v1/namespaces/:namespace/backingserviceinstances",server.CreateBSInew)
获取单个服务实例
GET("/oapi/v1/namespaces/:namespace/backingserviceinstances/:name",server.GetBSInew)
获取服务实例列表
GET("/oapi/v1/namespaces/:namespace/backingserviceinstances",server.GetBSIListnew)
更新服务实例
PUT("/oapi/v1/namespaces/:namespace/backingserviceinstances/:name",server.UpdateBSInew)
删除服务实例
DELETE("/oapi/v1/namespaces/:namespace/backingserviceinstances/:name",server.DeleteBSInew)
获取服务实例状态
GET("/oapi/v1/namespaces/:namespace/backingserviceinstances/:nam e/status",server.GetBSIStatus)
上述PAAS平台是基于K8S或OKD的平台,在一种实施方式中,上述BrokerServer的API对应的资源及BrokerServer的源代码逻辑程序重写于K8S对应的源码中或OKD对应的源码中。
该方式中,BrokerServer的API对应的资源,即上述API列表在K8S对应的源码中或OKD对应的源码中进行了重新编译,因此,相当于是K8S的内部资源,这种情况下,服务产品列表的维护与平台是紧耦合的,当平台版本更新时,服务产品还需重新配置,当服务产品很多时,会是一个很大的工作量。
为了降低服务产品与平台的耦合性,本申请实施例还提供另一种实施方式,即上述BrokerServer的API对应的资源存储于K8S或OKD中,BrokerServer的源代码逻辑程序以服务容器方式应用于K8S或OKD中。
该方式则是把资源注册为自定义资源类型,而不是写在K8S源代码中,作为K8S的内部资源。避免了当K8S升级时,还得重新把代码重新一遍,然后编译打包镜像部署。另外,可以将原来PAAS单独以容器形式在docker中运行,为新平台提供服务,这种方式不受PAAS平台监控,并且当容器挂掉的时候(比如最坏的情况下,所在的宿主机挂掉时),需人工手动运行。而本申请实施例中以服务的形式在PAAS平台上运行,受平台监控与自动化维护,当服务挂掉,会自动重启,最坏的情况下所在宿主机挂掉,会自动迁移到别的机器节点上。
上述将ServiceBroker注册到BrokerServer中,得到目标服务产品的步骤,可以通过以下方式实现:
响应针对前端页面的ServiceBroker的注册请求,调用BrokerServer的注册接口,以通过注册接口将ServiceBroker注册到BrokerServer中,得到目标服务产品;其中,注册请求中携带有ServiceBroker对应的服务参数。
上述将ServiceBroker注册到BrokerServer中,得到目标服务产品的步骤之后,还包括:将目标服务产品添加至服务列表;其中,服务列表用于向用户展示PAAS平台当前已注册的服务产品的集合。
具体的,通过BrokerServer调用ServiceBroker的获取服务列表详情函数,生成BackingService;BackingService为包含目标服务产品的服务列表。
上述创建目标服务产品对应的实例的过程如下:
响应于用户对目标服务产品的创建服务实例操作,调用BrokerServer的创建服务实例API,查找目标服务产品对应的BackingService,查找BackingService对应的ServiceBroker,并调用ServiceBroker的创建服务函数,创建目标服务产品对应的实例。
具体的,将目标服务产品对应的镜像加载到镜像仓库中,并通过K8S原生资源deployment(其中资源的Image字段为服务镜像全路径),调用K8S或OKD的API,将目标服务产品对应的实例部署在K8S或OKD中。
另外,上述方法还包括:响应针对目标服务产品对应实例的查看请求,调用BrokerServer的获取服务实例状态接口,向PAAS平台的前端页面展示目标服务产品的实例详情。
下面以创建MongoDB为例进行详细说明:
具体包括以下步骤:
(1)根据用户需求写一套ServiceBroker(以MongoDB为例)
实现以下API接口:
//获取服务列表详情
GET("/v2/catalog",handler.Catalog)
//创建服务
PUT("/v2/service_instances/:instance_id",handler.Provision)
//删除服务
DELETE("/v2/service_instances/:instance_id",handler.Deprovision)
//获取服务操作详情
GET("/v2/service_instances/:instance_id/last_operation",handler.LastOperation)
//更新服务
PATCH("/v2/service_instances/:instance_id",handler.Update)
//绑定服务
PUT("/v2/service_instances/:instance_id/service_bindings/:binding_id",
handler.Bind)
//解除绑定服务
DELETE("/v2/service_instances/:instance_id/service_bindings/:binding_id",handler.Unbind)
参考OpenServiceBrokerAPI定义好的数据接口返回,具体数据结构参考官方OpenServiceBrokerAPI。
需要注意的是:此规范只定义了API的URL路径(如/v2/catalog),输入和输出,API里面的逻辑需开发人员编写,如创建服务实例函数,具体逻辑为:
1)将Mongo的镜像上传到私有镜像仓库中;
2)部署服务到K8S为例,写好相应的编排文件如deployment.yaml,其中这里可以用户自定义编排,如单节点的Mongo,多副本的Mongo等。
3)程序调用K8S API或SDK,创建deployment,服务容器即可启动。
具体创建实例时,BrokerServer会自动找到对应的BackingService,然后找到对应的ServiceBroker,再调用ServiceBroker的创建服务函数接口,拉取镜像,通过编排文件如deployment调用K8S的API,把服务部署在K8S中。
(2)当一套服务的ServiceBroker写好了之后,将其注册到BrokerServer中。调用BrokerServer中的注册服务API,如下:
Figure BDA0002671450200000121
即可完成注册,其中URL是上述(1)中写的ServiceBroker对应的URL,用户密码是调用ServiceBroker API的用户密码。
(3)调用BrokerServer API,即可完成ServiceBroker的创建实例。
当多个ServiceBroker注册到BrokerServer中,BrokerServer会通过ServiceBroker的服务参数(URL、用户名、密码),调用其获取服务列表API(上述的/v2/catalog),将服务生成BackingService,用户查看服务列表即BackingService的列表,并且每隔预设时间,如5分钟自动更新服务列表。
用户创建服务实例时直接调用BrokerServer创建服务实例API,后台会找到Mongo对应的服务BackingService,然后找到BackingService对应的ServiceBroker,调用其创建实例函数接口,创建之后的信息写在BackingServerInstance中,调用BrokerServer的获取服务实例详情API可查看实例详情。
再列举一个简单的应用实例,最底层是docker,容器编排是K8S,然后在K8S中以容器的方式部署一套BrokerServer+BrokerServer(API gateway)+前端页面+ServiceBrokerA+ServiceBrokerB,部署的每个服务对外暴露端口,如前端页面,用户可以通过IP+端口号,打开页面,然后管理员登录页面,在注册页面输入ServiceBrokerA的URL、用户名、密码,点击注册,平台会调用BrokerServer的注册服务接口完成注册,在页面服务列表页面,用户想看到服务产品列表时,可点击查看,平台会调用BrokerServer的获取服务列表API,将服务列表传到前端页面供用户查看,然后用户点击ServiceBrokerA的创建页面,平台会调用BrokerServer的获取单个服务详情API,用户接着输入其产品的相关参数,点击创建,平台会调用BrokerServer的创建服务实例API,再往下的逻辑就是找到对应的BackingService,对应的ServiceBroker执行ServiceBroker的创建接口,这些都是用户点击创建之后BrokerServer后台的自动要做的逻辑,返回执行结果给前端,前端可以查看BSI详情,可以看到这个服务产品创建出来的实例,比如数据库,然后用户把信息给任何一个人,任何一个人都可以通过数据库的客户端去使用数据库。
需要说明的是,上述服务产品可以是数据库,也可以是中间件,或者也可以是其它服务产品。比如,用户需要一个tomcat(web服务器),开发人员就需要写一个tomcat的ServiceBroker,然后进行后续注册和创建实例过程。
此外,还可以在多套集群的环境下实现上述服务产品实例的创建过程,如图2所示,可以在kingstack上创建虚拟机,部署多套集群的K8S,在其中一个K8S集群中,部署KCCP1.0,KCCP可以对多集群K8S进行纳管,图中右侧可以将各个服务产品制作成一个个ServiceBroker(遵循OpenServiceBroker规范,开发语言不限制),如mongodb的ServiceBroker1、tomcat的ServiceBroker2和SAAS的ServiceBroker3,然后注册到BrokerServer中,进行后续实例的创建。
本申请实施例提供的服务产品实例的创建方法,可以基于开发的不同服务产品的ServiceBroker进行注册,然后进行实例创建,得到不同的服务产品实例,满足不同用户的定制化需求。
基于上述方法实施例,本申请实施例还提供一种服务产品实例的创建装置,该装置应用于PAAS平台;PAAS平台上部署有BrokerServer,且PAAS平台提供BrokerServer的API;参见图3所示的服务产品实例的创建装置的框图,该装置包括:
ServiceBroker获取模块32,用于获取目标服务产品对应的ServiceBroker;ServiceBroker包括目标服务产品的服务操作函数及服务参数;
ServiceBroker注册模块34,用于将ServiceBroker注册到BrokerServer中,得到目标服务产品;
实例创建模块36,用于基于目标服务产品及其对应的镜像,调用BrokerServer的创建服务实例API,创建目标服务产品对应的实例。
在一种可能的实施方式中,上述PAAS平台是基于K8S或OKD的平台,BrokerServer的API对应的资源存储于K8S或OKD中,及BrokerServer的源代码逻辑程序以服务容器方式应用于K8S或OKD中,或者BrokerServer的API对应的资源及BrokerServer的源代码逻辑程序重写于K8S对应的源码中或OKD对应的源码中。
参见图4所示,在一种可能的实施方式中,上述ServiceBroker注册模块404还用于:响应针对前端页面的ServiceBroker的注册请求,调用BrokerServer的注册接口,以通过注册接口将ServiceBroker注册到BrokerServer中,得到目标服务产品;其中,注册请求中携带有ServiceBroker对应的服务参数。
在另一种可能的实施方式中,服务产品实例的创建装置除了包括与上一实施例类似的ServiceBroker获取模块402、ServiceBroker注册模块404和实例创建模块406外,还可以包括:列表展示模块408,用于将目标服务产品添加至服务列表;其中,服务列表用于向用户展示PAAS平台当前已注册的服务产品的集合。
在另一种可能的实施方式中,上述列表展示模块408,还用于通过BrokerServer调用ServiceBroker的获取服务列表详情函数,生成BackingService;BackingService为包含目标服务产品的服务列表。
在另一种可能的实施方式中,上述实例创建模块406还用于:响应于用户对目标服务产品的创建服务实例操作,调用BrokerServer的创建服务实例API,查找目标服务产品对应的BackingService,查找BackingService对应的ServiceBroker,并调用ServiceBroker的创建服务函数,基于所述目标服务产品对应的镜像,创建目标服务产品对应的实例。
在另一种可能的实施方式中,上述实例创建模块406还用于:将目标服务产品对应的镜像加载到镜像仓库中,并通过K8S原生资源deployment,调用K8S或OKD的API,将目标服务产品对应的实例部署在K8S或OKD中。
在另一种可能的实施方式中,上述装置还包括:实例详情展示模块410,用于响应针对目标服务产品对应实例的查看请求,调用BrokerServer的获取服务实例状态接口,向PAAS平台的前端页面展示目标服务产品的实例详情。
在另一种可能的实施方式中,上述目标服务产品的服务操作函数包括以下中的多项:获取服务列表详情函数、创建服务函数、删除服务函数、获取服务详情函数、更新服务函数、绑定服务函数和解除绑定服务函数。
在另一种可能的实施方式中,上述BrokerServer的API至少包括:ServerBroker的操作接口、BackingService服务列表或详情操作接口、BackingServiceInstance服务实例的操作接口。
在另一种可能的实施方式中,上述ServerBroker的操作接口至少包括以下的多个:注册ServiceBroker、更新ServiceBroker和删除ServiceBroker;BackingService服务列表或详情操作接口包括:获取服务列表、获取单个服务;BackingServiceInstance服务实例的操作接口至少包括以下多个:创建服务实例、获取单个服务实例、获取服务实例列表、更新服务实例、删除服务实例和获取服务实例状态。
在另一种可能的实施方式中,上述服务参数包括:URL、用户名和密码。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。
本申请实施例还提供了一种电子设备,如图5所示,为该电子设备的结构示意图,其中,该电子设备包括处理器51和存储器50,该存储器50存储有能够被该处理器51执行的计算机可执行指令,该处理器51执行该计算机可执行指令以实现上述服务产品实例的创建方法。
在图5示出的实施方式中,该电子设备还包括总线52和通信接口53,其中,处理器51、通信接口53和存储器50通过总线52连接。
其中,存储器50可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线52可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器51可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器51中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器51可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器51读取存储器中的信息,结合其硬件完成前述实施例的游戏中虚拟商品的推荐方法的步骤。
根据本申请的另一个方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述任一服务产品实例的创建方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
另外,在本申请实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
在本申请的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种服务产品实例的创建方法,其特征在于,所述方法应用于PAAS平台;所述PAAS平台上部署有BrokerServer,且所述PAAS平台提供所述BrokerServer的API;所述方法包括:
获取目标服务产品对应的ServiceBroker;所述ServiceBroker包括所述目标服务产品的服务操作函数及服务参数;
将所述ServiceBroker注册到所述BrokerServer中,得到所述目标服务产品;
基于所述目标服务产品及其对应的镜像,调用所述BrokerServer的创建服务实例API,创建所述目标服务产品对应的实例。
2.根据权利要求1所述的方法,其特征在于,所述PAAS平台是基于K8S或OKD的平台,所述BrokerServer的API对应的资源存储于所述K8S或所述OKD中,及所述BrokerServer的源代码逻辑程序以服务容器方式应用于所述K8S或所述OKD中,或者所述BrokerServer的API对应的资源及所述BrokerServer的源代码逻辑程序重写于所述K8S对应的源码中或所述OKD对应的源码中。
3.根据权利要求1所述的方法,其特征在于,将所述ServiceBroker注册到所述BrokerServer中,得到所述目标服务产品的步骤,包括:
响应针对前端页面的ServiceBroker的注册请求,调用所述BrokerServer的注册接口,以通过所述注册接口将所述ServiceBroker注册到所述BrokerServer中,得到所述目标服务产品;其中,所述注册请求中携带有所述ServiceBroker对应的服务参数。
4.根据权利要求1所述的方法,其特征在于,将所述ServiceBroker注册到所述BrokerServer中,得到所述目标服务产品的步骤之后,还包括:
将所述目标服务产品添加至服务列表;其中,所述服务列表用于向用户展示所述PAAS平台当前已注册的服务产品的集合。
5.根据权利要求4所述的方法,其特征在于,将所述目标服务产品的标识添加至服务列表的步骤,包括:
通过所述BrokerServer调用所述ServiceBroker的获取服务列表详情函数,生成BackingService;所述BackingService为包含所述目标服务产品的服务列表。
6.根据权利要求1所述的方法,其特征在于,基于所述目标服务产品及其对应的镜像,调用所述BrokerServer的创建服务实例API,创建所述目标服务产品对应的实例的步骤,包括:
响应于用户对目标服务产品的创建服务实例操作,调用所述BrokerServer的创建服务实例API,查找所述目标服务产品对应的BackingService,查找所述BackingService对应的ServiceBroker,并调用所述ServiceBroker的创建服务函数,基于所述目标服务产品对应的镜像,创建所述目标服务产品对应的实例。
7.根据权利要求6所述的方法,其特征在于,调用ServiceBroker的创建服务函数,基于所述目标服务产品对应的镜像,创建所述目标服务产品对应的实例的步骤,包括:
将所述目标服务产品对应的镜像加载到镜像仓库中,并通过K8S原生资源deployment,调用K8S或OKD的API,将所述目标服务产品对应的实例部署在K8S或OKD中。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应针对所述目标服务产品对应实例的查看请求,调用所述BrokerServer的获取服务实例状态接口,向所述PAAS平台的前端页面展示所述目标服务产品的实例详情。
9.根据权利要求1所述的方法,其特征在于,所述目标服务产品的服务操作函数包括以下中的多项:获取服务列表详情函数、创建服务函数、删除服务函数、获取服务详情函数、更新服务函数、绑定服务函数和解除绑定服务函数。
10.根据权利要求1所述的方法,其特征在于,所述BrokerServer的API至少包括:ServerBroker的操作接口、BackingService服务列表或详情操作接口、BackingServiceInstance服务实例的操作接口。
11.根据权利要求10所述的方法,其特征在于,所述ServerBroker的操作接口至少包括以下的多个:注册ServiceBroker、更新ServiceBroker和删除ServiceBroker;所述BackingService服务列表或详情操作接口包括:获取服务列表、获取单个服务;所述BackingServiceInstance服务实例的操作接口至少包括以下多个:创建服务实例、获取单个服务实例、获取服务实例列表、更新服务实例、删除服务实例和获取服务实例状态。
12.根据权利要求1所述的方法,其特征在于,所述服务参数包括:URL、用户名和密码。
13.一种服务产品实例的创建装置,其特征在于,所述装置应用于PAAS平台;所述PAAS平台上部署有BrokerServer,且所述PAAS平台提供所述BrokerServer的API;所述装置包括:
ServiceBroker获取模块,用于获取目标服务产品对应的ServiceBroker;所述ServiceBroker包括所述目标服务产品的服务操作函数及服务参数;ServiceBroker注册模块,用于将所述ServiceBroker注册到所述BrokerServer中,得到所述目标服务产品;
实例创建模块,用于基于所述目标服务产品,调用所述BrokerServer的创建服务实例API,创建所述目标服务产品对应的实例。
14.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至12任一项所述方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至12任一项所述的方法。
CN202010934515.4A 2020-09-08 2020-09-08 服务产品实例的创建方法、装置及电子设备 Pending CN112068850A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010934515.4A CN112068850A (zh) 2020-09-08 2020-09-08 服务产品实例的创建方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010934515.4A CN112068850A (zh) 2020-09-08 2020-09-08 服务产品实例的创建方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN112068850A true CN112068850A (zh) 2020-12-11

Family

ID=73664269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010934515.4A Pending CN112068850A (zh) 2020-09-08 2020-09-08 服务产品实例的创建方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112068850A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698917A (zh) * 2020-12-31 2021-04-23 武汉达梦数据技术有限公司 一种基于容器化的PaaS平台网络架构及其实现方法
CN113014626A (zh) * 2021-02-09 2021-06-22 北京互金新融科技有限公司 数据服务的管理方法及装置、存储介质及电子装置
CN113660315A (zh) * 2021-07-28 2021-11-16 北京宝兰德软件股份有限公司 一种云计算服务提供方法、装置、设备及可读存储介质
CN115309400A (zh) * 2022-10-10 2022-11-08 阿里巴巴(中国)有限公司 任务部署方法、服务平台、部署平台、设备和存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112698917A (zh) * 2020-12-31 2021-04-23 武汉达梦数据技术有限公司 一种基于容器化的PaaS平台网络架构及其实现方法
CN112698917B (zh) * 2020-12-31 2022-06-21 武汉达梦数据技术有限公司 一种基于容器化的PaaS平台网络架构及其实现方法
CN113014626A (zh) * 2021-02-09 2021-06-22 北京互金新融科技有限公司 数据服务的管理方法及装置、存储介质及电子装置
CN113014626B (zh) * 2021-02-09 2023-04-18 北京互金新融科技有限公司 数据服务的管理方法及装置、存储介质及电子装置
CN113660315A (zh) * 2021-07-28 2021-11-16 北京宝兰德软件股份有限公司 一种云计算服务提供方法、装置、设备及可读存储介质
CN113660315B (zh) * 2021-07-28 2023-12-01 北京宝兰德软件股份有限公司 一种云计算服务提供方法、装置、设备及可读存储介质
CN115309400A (zh) * 2022-10-10 2022-11-08 阿里巴巴(中国)有限公司 任务部署方法、服务平台、部署平台、设备和存储介质

Similar Documents

Publication Publication Date Title
CN112068850A (zh) 服务产品实例的创建方法、装置及电子设备
US11086661B2 (en) Container chaining for automated process completion
US11347555B2 (en) Integrated system to distribute and execute complex applications
CN109547570B (zh) 服务注册方法、装置、注册中心管理设备及存储介质
CN104541246B (zh) 用于提供在云计算环境下使用的服务管理引擎的***和方法
CN110413288B (zh) 应用部署方法、装置、服务器及存储介质
CN108830720B (zh) 智能合约运行方法、装置、***和计算机可读存储介质
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
KR102368200B1 (ko) 장치 설계를 위한 코드 모듈 선택
US9513938B2 (en) Virtual appliance integration with cloud management software
US20200226185A1 (en) Publishing rest api changes based on subscriber's customized request
US11528186B2 (en) Automated initialization of bare metal servers
US10305731B2 (en) System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server
CN112162753A (zh) 软件部署方法、装置、计算机设备和存储介质
CN112416377B (zh) 一种引导镜像制作方法、装置、电子设备及存储介质
CN111527474A (zh) 软件功能的动态交付
CN113296758B (zh) 一种前端组件库构建方法、装置及存储介质
CN112527459B (zh) 一种基于Kubernetes集群的日志分析方法及装置
US9766912B1 (en) Virtual machine configuration
CN112445851B (zh) 一种插拔式orm框架实现方法、装置、电子设备和存储介质
CN111782251A (zh) 一种软件功能模块的更新方法、装置及计算机设备
CN115729604A (zh) 微应用集成方法、***、电子设备和存储介质
CN112667491B (zh) 虚拟机的功能测试方法及装置
CN114625383A (zh) 镜像存储和镜像加载的方法、装置、设备及存储介质
CN110209409B (zh) 一种应用产品的定制方法、***及存储介质

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