CN113660315B - 一种云计算服务提供方法、装置、设备及可读存储介质 - Google Patents

一种云计算服务提供方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN113660315B
CN113660315B CN202110859957.1A CN202110859957A CN113660315B CN 113660315 B CN113660315 B CN 113660315B CN 202110859957 A CN202110859957 A CN 202110859957A CN 113660315 B CN113660315 B CN 113660315B
Authority
CN
China
Prior art keywords
service
agent
directory
application
binding
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
Application number
CN202110859957.1A
Other languages
English (en)
Other versions
CN113660315A (zh
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 Baolande Software Co ltd
Original Assignee
Beijing Baolande Software 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 Baolande Software Co ltd filed Critical Beijing Baolande Software Co ltd
Priority to CN202110859957.1A priority Critical patent/CN113660315B/zh
Publication of CN113660315A publication Critical patent/CN113660315A/zh
Application granted granted Critical
Publication of CN113660315B publication Critical patent/CN113660315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种云计算服务提供方法、装置、设备及可读存储介质,涉及云计算技术领域,该方法包括:注册服务代理到服务目录,并对服务代理进行同步;根据服务代理,生成服务实例;在应用下生成并分配服务实例对应的服务绑定;应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布,本发明使得平台的租户可以跨集群在多个集群间共享服务目录,同时即能满足容器化应用对基础软件服务的使用需求又能提供给平台的租户开发、部署、维护和发布基础软件服务的能力,平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者。

Description

一种云计算服务提供方法、装置、设备及可读存储介质
技术领域
本发明涉及云计算技术领域,尤其涉及一种云计算服务提供方法及装置。
背景技术
传统的平台(Platform as a Service,PaaS)的底层是基于虚拟机级别的虚拟化技术实现。与容器相比虚拟机会占用大量系统资源,每个虚拟机不仅要运行一个完整的操作系统,还需要运行操作系统要运行的所有虚拟硬件,这样就会消耗大量的内存和中央处理器(Central Processing Unit,CPU)资源,而且,虚拟机的启动、停止、创建、复制等都需要消耗更多的资源和时间。容器镜像的打包技术,使容器化的应用部署、配置相比基于虚拟机的部署方式更加的灵活方便,易于管理,同时,容器的轻量级和可移植性能够更好的利用物理资源,并提供更高效的弹性伸缩。
Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用自动部署,自动重启,自动复制,负载均衡、自动伸缩、维护、扩展机制等功能。利用Kubernetes能方便地管理跨机器容器化的应用解决容器化应用编排、调度、跨主机通讯问题;Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
但是,Kubernetes原始提供的服务目录,只支持单集群的部署,不支持多集群多租户架构,同时也不支持审批机制,和服务分配授权机制,同样的,Kubernetes原始提供的服务目录只关注于服务的注册和使用,不关注服务提供和服务维护,服务的提供和维护完全交由第三方服务提供商,在kubernetes内部并没有提供一套服务代理(Service Brokers)开发、部署、发布的规范和流程。因此,需要对目前的云计算服务提供方法进行改进,使得服务目录同样会关注服务的提供和维护。
发明内容
本发明提供一种云计算服务提供方法及装置,用以解决现有技术中服务目录中服务的提供和维护完全交由第三方服务提供商的缺陷,实现平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者。
本发明提供一种云计算服务提供方法,包括以下步骤:
注册服务代理到服务目录,并对所述服务代理进行同步;
根据所述服务代理,生成服务实例;
在应用下生成并分配所述服务实例对应的服务绑定;
所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
根据本发明提供的云计算服务提供方法,所述注册服务代理到服务目录,并对所述服务代理进行同步,具体包括以下步骤:
根据所述服务代理的所述参数信息,建立与所述服务代理的连接,注册所述服务代理到所述服务目录;其中,所述服务目录包括系统全局服务目录和若干租户私有服务目录,所述参数信息包括服务代理名称、连接地址、用户认证信息、描述信息、服务访问地址和同步周期;
根据开放服务代理应用程序编程接口,调用服务查看接口,获取所述服务代理所提供的服务信息,所述服务目录周期性地同步所述服务信息;其中,所述服务信息包括服务类别和服务规格。
根据本发明提供的云计算服务提供方法,所述根据所述服务代理,生成服务实例,具体包括以下步骤:
在所述租户私有服务目录下根据所述服务规格,生成服务实例;
根据开放服务代理应用程序编程接口,申请所述服务实例并向所述服务代理发起调用请求,所述服务代理向所述服务目录发送所述服务实例的申请结果;
轮询所述服务代理,获取并更新所述服务实例的状态。
根据本发明提供的云计算服务提供方法,所述在应用下生成并分配所述服务实例对应的服务绑定,具体包括以下步骤:
在应用下,生成所述服务实例对应的所述服务绑定,将所述服务绑定分配并绑定给所述对应的所述服务实例;
根据开放服务代理应用程序编程接口,申请所述服务实例绑定并向所述服务代理发起调用请求,所述服务代理向所述服务目录发送所述服务实例的申请绑定结果;
轮询所述服务代理,获取并更新所述服务实例的绑定状态;
同步所述服务绑定从所述服务代理发生的所述申请绑定信息到所述应用下分布在不同集群下的命名空间下,并以密文的形式进行保存。
根据本发明提供的云计算服务提供方法,租户可以使用的服务为所述系统全局服务目录提供的服务以及对应的所述租户私有服务目录提供的服务,不同的所述租户私有服务目录提供的服务彼此隔离,所述租户私有服务目录下的应用对分配给自己使用的所述服务实例进行绑定,且,所述租户私有服务目录下的应用共享所述服务实例。
根据本发明提供的云计算服务提供方法,所述系统全局服务目录无法生成服务实例,且,不同的所述租户私有服务目录下的所述服务实例彼此隔离。
根据本发明提供的云计算服务提供方法,所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布,具体包括以下步骤:
所述应用下的组件通过挂载密文或者在环境变量中引入密文,获取所述服务代理的参数信息;
租户使用服务目录以及第三方服务提供商提供的服务,或者将租户对应的租户私有服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
本发明还提供一种云计算服务提供装置,包括:
注册并同步模块,用于注册服务代理到服务目录,并对所述服务代理进行同步;
服务实例生成模块,用于根据所述服务代理,生成服务实例;
服务绑定模块,用于在应用下生成并分配所述服务实例对应的服务绑定;
服务提供模块,用于所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述云计算服务提供方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述云计算服务提供方法的步骤。
本发明提供的云计算服务提供方法、装置、设备及可读存储,通过注册服务代理到服务目录,并对服务代理进行同步,实现多租户模式下的服务目录,再根据所述服务代理,生成服务实例,之后通过在应用下生成并分配服务实例对应的服务绑定,提供跨集群的服务实例绑定,以及审批、授权和配额管理,再通过应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布,提高服务代理的开发和部署能力,以及提高应用服务开发能力,使得平台的租户可以跨kubernetes集群在多个集群间共享服务目录,同时即能满足容器化应用对基础软件服务的使用需求又能提供给平台的租户开发、部署、维护和发布基础软件服务的能力,使平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者,整合持续集成(Continuous Integration)、持续交付(Continuous Delivery)以及持续部署(Continuous Deployment)的能力使平台用户开发和部署服务代理更加容易。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的云计算服务提供方法的流程示意图;
图2是本发明提供的云计算服务提供方法的服务目录的架构架图;
图3是本发明提供的云计算服务提供方法中步骤S100具体的流程示意图;
图4是本发明提供的云计算服务提供方法中步骤S200具体的流程示意图;
图5是本发明提供的云计算服务提供方法中步骤S300具体的流程示意图;
图6是本发明提供的云计算服务提供方法中步骤S400具体的流程示意图;
图7是本发明提供的云计算服务提供装置的结构示意图;
图8是本发明提供的云计算服务提供装置中注册并同步模块具体的结构示意图;
图9是本发明提供的云计算服务提供装置中服务实例生成模块具体的结构示意图;
图10是本发明提供的云计算服务提供装置中服务绑定模块具体的结构示意图;
图11是本发明提供的云计算服务提供装置中服务提供模块具体的结构示意图;
图12是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
PaaS是一种云计算服务,提供运算平台与解决方案服务,在云计算的典型层级中,PaaS层介于软件(服务)与基础设施即服务之间。PaaS提供用户将云端基础设施部署与创建至客户端,或者借此使用编程语言、程序库与服务,用户不需要管理与控制云端基础设施(包含网络、服务器、操作系统或存储),但需要控制上层的应用程序部署与应用托管的环境。PaaS提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling),因此,开发者只需要关注自己的业务逻辑,不需要关注底层层级。
Kubernetes是一个开源的用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用自动部署,自动重启,自动复制,负载均衡、自动伸缩、维护、扩展机制等功能。利用Kubernetes能方便地管理跨机器容器化的应用解决容器化应用编排、调度、跨主机通讯问题;Kubernetes的自我修复机制使得容器集群总是运行在用户期望的状态。
综上,基于Kubernetes的容器PaaS,是利用Kubernetes的容器化编排、资源隔离、资源调度、服务自愈、服务发现、扩容伸缩、容灾恢复等能力构建出的一种PaaS。基于Kubernetes的容器PaaS能够更有效的利用物理资源,提供更灵活高可用的弹性伸缩能力,提供更稳定可靠的服务。
PaaS上托管的应用经常需要使用诸如应用服务器,数据库,消息队列,分布式缓存,日志收集、分析之类的通用的基础设施软件。虽然容器化部署已经简化了应用的部署难度,但是对于数据库等基础服务,其运维管理成本依然很高,需要具备专业的知识。开发者在开发应用的同时还需要花费大量时间去解决应用所依赖的基础设施软件的部署和配置问题。而对于应用开发者而言,更应该专注于应用本身的业务开发、功能迭代,而不应该是花费大量的时间在通用的基础服务上。通用的基础设施软件服务应该由PaaS以服务的形式来提供,基础服务的可用性和按需动态伸缩的能力应该由平台自身来保障,应用和服务之间应该是松耦合且能够动态集成的;开发者以服务的方式按需消费应用所依赖的基础设施软件,而不需要了解基础服务的实现细节,也不需要掌握服务的部署运维知识,也不用担心服务的可用性。
服务目录是一种扩展API,它能让PaaS中运行的应用易于使用外部托管的的软件服务,例如云供应商提供的数据仓库服务。使PaaS平台上托管的容器化应用可以按需使用服务代理(Service Brokers)所代理的外部服务。服务目录可以检索、供应、和绑定由Service Brokers提供的外部托管服务,而无需知道那些服务具体是怎样创建和托管的。服务代理是由开放服务代理应用程序接口(Open Service Broker ApplicationProgramming Interface)的规范定义的一组托管服务的终结点,由第三方服务提供商提供并维护,也可以是本地PaaS平台特定租户。
但是,Kubernetes原始提供的服务目录,只支持单集群的部署,不支持多集群多租户架构,同时也不支持审批机制,和服务分配授权机制,同样的,Kubernetes原始提供的服务目录只关注于服务的注册和使用,不关注服务提供和服务维护,服务的提供和维护完全交由第三方服务提供商,在kubernetes内部并没有提供一套ServiceBrokers开发、部署、发布的规范和流程。
下面结合图1描述本发明的云计算服务提供方法,该方法包括以下步骤:
S100、注册服务代理到服务目录,并对服务代理进行同步。
请参阅图2,在本实施例中,服务目录包括系统全局服务目录和若干租户私有服务目录,平台系统全局服务目录下注册的服务可以授权给租户使用,租户自己可以注册对应的私有的租户私有服务目录到租户自己的服务目录下,租户与租户之间租户私有服务目录是彼此隔离的。租户可以申请使用平台系统全局服务目录下提供的服务,申请成功后能在租户自己的服务目录下体现,租户下的用户便可以使用申请到的服务,租户服务目录下从平台系统全局服务目录申请到的服务,是对系统全局服务目录下服务的引用,系统全局服务目录可以同时分配给多个租户使用。
更具体的,在本实施例中,服务的授权分配流程为:
1)租户服务目录管理员浏览平台全局系统服务目录下提供的服务,选择需要使用的服务,提交使用申请,填写需要使用的服务实例个数,等待平台管理员审批通过。
2)平台管理员对租户的申请进行审批,审批通过后,租户的服务目录下将能看到从系统全局服务目录申请到的服务。
3)租户服务目录管理员选择租户服务目录下的自有的或者从系统全局服务目录申请到的服务规格进行服务实例(Service Instance)创建。服务实例的生命周期由租户服务目录管理员维护,租户之间彼此隔离,租户可以使用的服务为系统全局服务目录提供的服务以及对应的租户私有服务目录提供的服务,由于租户与租户之间租户私有服务目录是彼此隔离的,因此,不同的租户私有服务目录提供的服务彼此隔离,同时,租户服务目录管理员可以将租户服务目录下的服务实例,分配给租户下的应用,并限制绑定次数即租户私有服务目录下的应用对分配给自己使用的服务实例进行绑定,且,租户私有服务目录下的应用共享服务实例。
4)应用管理员在应用编排界面可以看到分配给自己使用的服务实例,可以通过生成服务绑定(ServiceBinding)对服务实例发起绑定。
通过步骤S100实现多租户模式下的服务目录。
S200、根据服务代理,生成服务实例。
S300、在应用下生成并分配服务实例对应的服务绑定。
通过步骤S200和步骤S300,提供跨集群的服务实例绑定,以及审批、授权和配额管理。
S400、应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
在本实施例中,参数信息包括服务代理名称、连接地址、用户认证信息、描述信息、服务访问地址和同步周期等。
通过步骤S400,使平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者,提高服务代理的开发和部署能力,以及提高应用服务开发能力。
本发明的云计算服务提供方法,通过注册服务代理到服务目录,并对服务代理进行同步,实现多租户模式下的服务目录,再根据所述服务代理,生成服务实例,之后通过在应用下生成并分配服务实例对应的服务绑定,提供跨集群的服务实例绑定,以及审批、授权和配额管理,再通过应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布,提高服务代理的开发和部署能力,以及提高应用服务开发能力,使得平台的租户可以跨kubernetes集群在多个集群间共享服务目录,同时即能满足容器化应用对基础软件服务的使用需求又能提供给平台的租户开发、部署、维护和发布基础软件服务的能力,使平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者,整合CI/CD的能力使平台用户开发和部署服务代理更加容易。
下面结合图3描述本发明的云计算服务提供方法,步骤S100具体包括以下步骤:
S110、确定服务代理的用户认证信息、服务访问地址和同步周期等参数信息,根据上述服务代理的参数信息,当服务目录后端接收到服务代理注册的事件后,服务目录后端进程触发对服务代理的周期同步动作,从服务代理的定义中获取连接地址、用户认证信息等参数信息,进而建立与服务代理的连接,注册服务代理到服务目录。
S120、根据Open Service Broker API的规范定义,调用服务查看接口,获取服务代理所提供的服务信息,服务目录后端会自动周期性地同步服务信息,将服务信息同步到本地服务目录下,以此维护本地服务目录的状态。在本实施例中,服务信息包括服务类别(Service Class)和服务规格(Service Plan)。
下面结合图4描述本发明的云计算服务提供方法,步骤S200具体包括以下步骤:
S210、在租户私有服务目录下根据服务规格,生成服务实例,得到一条新的服务实例,并可以根据服务规格的参数,设置服务实例对应的参数。
需要说明的是,在步骤S210中,系统全局服务目录无法生成服务实例,系统全局服务目录只提供查看功能,且,不同的租户私有服务目录下的服务实例彼此隔离。
S220、根据开放服务代理应用程序编程接口,申请服务实例并向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请结果,具体的,服务目录后端进程接收到服务实例出现新增的事件后,触发到服务代理下申请服务实例的请求。服务目录后端进程根据Open Service Broker API的规范定义,形成申请服务实例的超文本传输协议(Hypertext Transfer Protocol,HTTP)请求,向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请结果。
S230、服务目录后端进程轮询服务代理,通过访问服务实例状态获取接口,获取并更新服务实例的状态。
租户服务目录管理员在生成服务实例后,可以查看服务实例状态。生成服务实例的操作为异步操作,服务实例的真实状态通过状态进行表示。
下面结合图5描述本发明的云计算服务提供方法,步骤S300具体包括以下步骤:
S310、在应用下,租户下的应用管理员在应用编排界面,查看当前应用可以使用的服务实例列表,选择具体的服务实例,生成选择的服务实例对应的服务绑定(ServiceBinding),将服务绑定分配并绑定给对应的服务实例。
S320、根据开放服务代理应用程序编程接口,申请服务实例绑定并向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请绑定结果,具体的,服务目录后端进程接收到服务绑定出现新增的事件后,触发到服务代理下申请服务实例绑定的请求。服务目录后端进程根据Open Service Broker API的规范定义,形成申请服务实例绑定的HTTP请求,向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请绑定结果。
S330、服务目录后端进程轮询服务代理,通过访问服务实例绑定状态获取接口,获取并更新服务实例的绑定状态;
S340、服务绑定成功后,根据服务代理向服务目录发送服务实例的申请绑定结果,获取应用占用的所有集群下的命名空间(namespace),通过集群操作接口,逐个对应用占用的集群发起访问,同步服务绑定从服务代理发生的申请绑定信息到应用下分布在不同集群下的命名空间下,并以密文(Secret)的形式进行保存。在本实施例中,应用是可以跨集群部署的,同一个应用可以跑在多个集群上,应用独立占用集群上的命名空间,通过命名空间隔离一个集群上的不同应用。
当应用占用的集群和命名空间发生变化后,会触发对应用下已存在的服务绑定的密文同步,对不再占用的命名空间,将服务绑定的密文从命名空间下删除;对新增加的命名空间占用,生成服务绑定产生的密文到命名空间下,使得服务绑定产生的密文被正确的同步到应用占用的各集群命名空间下。
下面结合图6描述本发明的云计算服务提供方法,步骤S400具体包括以下步骤:
S410、应用下的组件通过挂载密文或者在环境变量中引入密文,获取服务代理的参数信息。
S420、租户使用服务目录以及第三方服务提供商提供的服务,或者将租户对应的租户私有服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
通过步骤S410和步骤S420,应用管理员在应用编排界面下可以查看服务绑定的状态,通过在可部署组件的卷挂载项中增加对服务绑定产生的密文的挂载,或者在可部署组件的环境变量中导入服务绑定产生的密文内容,应用下的组件便可以获取到服务访问信息,租户从而使用第三方服务提供商提供的服务。
在本发明的云计算服务提供方法中,平台提供服务代理的开发工具包(SoftwareDevelopment Kit,SDK),实现统一的服务代理用户管理、认证管理、授权配置管理,开放平台应用编排操作接口和账号申请,使平台租户下的应用开发团队可以借助平台提供的能力快速开发、部署基础服务代理,作为服务提供商对平台其他租户提供基础服务。平台的租户下的用户可以获取服务代理相关的SDK,进行代码开发,实现相关接口,利用平台的代理托管能力和CI/CD能力,编排CI/CD流水线,编写dockerfile,定义部署模板,设置服务代理名称、设置图标。用户对版本库的提交会自动触发CICD,完成服务代理代码的编译、打包、部署、测试操作,将新开发的服务代理部署为一个应用。租户可以选择将实现了Open ServiceBroker API的规范定义的应用发布到平台系统全局服务目录下或者当前租户的服务目录下。应用发布的服务代理在服务目录下会处于未上线状态,需要服务目录管理员审批通过后,设置状态为上线才能被其他应用使用。系统全局服务目录和租户服务目录下会提供服务使用情况的统计信息展示,同时提供服务上线和下线功能,未上线的服务不能被创建服务实例。当应用从上线状态变为下线状态后,已经生成的服务实例不受影响,新增加服务实例将不被允许,且,各级授权对象都不能使用超过授权范围的服务,和生成超过配额的服务实例和实例绑定。
下面对本发明提供的云计算服务提供装置进行描述,下文描述的云计算服务提供装置与上文描述云计算服务提供方法可相互对应参照。
下面结合图7描述本发明的云计算服务提供装置,该装置包括:
注册并同步模块100,用于注册服务代理到服务目录,并对服务代理进行同步。
在本实施例中,服务目录包括系统全局服务目录和若
通过注册并同步模块100实现多租户模式下的服务目录。
服务实例生成模块200,用于根据服务代理,生成服务实例。
服务绑定模块300,用于在应用下生成并分配服务实例对应的服务绑定。
通过服务实例生成模块200和服务绑定模块300,提供跨集群的服务实例绑定,以及审批、授权和配额管理。
服务提供模块400,用于应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
在本实施例中,参数信息包括服务代理名称、连接地址、用户认证信息、描述信息、服务访问地址和同步周期等。
通过服务提供模块400,使平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者,提高服务代理的开发和部署能力,以及提高应用服务开发能力。
本发明的云计算服务提供装置,通过注册并同步模块100,实现多租户模式下的服务目录,再通过服务实例生成模块200以及服务绑定模块300,提供跨集群的服务实例绑定,以及审批、授权和配额管理,再通过服务提供模块400,提高服务代理的开发和部署能力,以及提高应用服务开发能力,使得平台的租户可以跨kubernetes集群在多个集群间共享服务目录,同时即能满足容器化应用对基础软件服务的使用需求又能提供给平台的租户开发、部署、维护和发布基础软件服务的能力,使平台的租户既可以是基础软件服务的使用者也可以是基础软件服务的提供者,整合CI/CD的能力使平台用户开发和部署服务代理更加容易。
下面结合图8描述本发明的云计算服务提供装置,注册并同步模块100具体包括:
注册单元110,用于确定服务代理的用户认证信息、服务访问地址和同步周期等参数信息,根据上述服务代理的参数信息,当服务目录后端接收到服务代理注册的事件后,服务目录后端进程触发对服务代理的周期同步动作,从服务代理的定义中获取连接地址、用户认证信息等参数信息,进而建立与服务代理的连接,注册服务代理到服务目录。
同步单元120,用于根据Open Service Broker API的规范定义,调用服务查看接口,获取服务代理所提供的服务信息,服务目录后端会自动周期性地同步服务信息,将服务信息同步到本地服务目录下,以此维护本地服务目录的状态。在本实施例中,服务信息包括服务类别(Service Class)和服务规格(Service Plan)。
下面结合图9描述本发明的云计算服务提供装置,服务实例生成模块200具体包括:
服务实例生成单元210,用于在租户私有服务目录下根据服务规格,生成服务实例,得到一条新的服务实例,并可以根据服务规格的参数,设置服务实例对应的参数。
需要说明的是,在服务实例生成单元210中,系统全局服务目录无法生成服务实例,系统全局服务目录只提供查看功能,且,不同的租户私有服务目录下的服务实例彼此隔离。
第一请求单元220,用于根据开放服务代理应用程序编程接口,申请服务实例并向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请结果,具体的,服务目录后端进程接收到服务实例出现新增的事件后,触发到服务代理下申请服务实例的请求。服务目录后端进程根据Open Service Broker API的规范定义,形成申请服务实例的超文本传输协议(Hypertext Transfer Protocol,HTTP)请求,向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请结果。
第一更新单元230,用于服务目录后端进程轮询服务代理,通过访问服务实例状态获取接口,获取并更新服务实例的状态。
租户服务目录管理员在生成服务实例后,可以查看服务实例状态。生成服务实例的操作为异步操作,服务实例的真实状态通过状态进行表示。
下面结合图10描述本发明的云计算服务提供装置,服务绑定模块300具体包括:
服务绑定单元310,用于在应用下,租户下的应用管理员在应用编排界面,查看当前应用可以使用的服务实例列表,选择具体的服务实例,生成选择的服务实例对应的服务绑定(Service Binding),将服务绑定分配并绑定给对应的服务实例。
第二请求单元320,用于根据开放服务代理应用程序编程接口,申请服务实例绑定并向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请绑定结果,具体的,服务目录后端进程接收到服务绑定出现新增的事件后,触发到服务代理下申请服务实例绑定的请求。服务目录后端进程根据Open Service Broker API的规范定义,形成申请服务实例绑定的HTTP请求,向服务代理发起调用请求,服务代理向服务目录发送服务实例的申请绑定结果。
第二更新单元330,用于服务目录后端进程轮询服务代理,通过访问服务实例绑定状态获取接口,获取并更新服务实例的绑定状态;
信息同步单元340,用于在服务绑定成功后,根据服务代理向服务目录发送服务实例的申请绑定结果,获取应用占用的所有集群下的命名空间(namespace),通过集群操作接口,逐个对应用占用的集群发起访问,同步服务绑定从服务代理发生的申请绑定信息到应用下分布在不同集群下的命名空间下,并以密文(Secret)的形式进行保存。在本实施例中,应用是可以跨集群部署的,同一个应用可以跑在多个集群上,应用独立占用集群上的命名空间,通过命名空间隔离一个集群上的不同应用。
当应用占用的集群和命名空间发生变化后,会触发对应用下已存在的服务绑定的密文同步,对不再占用的命名空间,将服务绑定的密文从命名空间下删除;对新增加的命名空间占用,生成服务绑定产生的密文到命名空间下,使得服务绑定产生的密文被正确的同步到应用占用的各集群命名空间下。
下面结合图11描述本发明的云计算服务提供装置,服务提供模块400具体包括:
参数信息获取单元410,用于应用下的组件通过挂载密文或者在环境变量中引入密文,获取服务代理的参数信息。
服务提供单元420,用于租户使用服务目录以及第三方服务提供商提供的服务,或者将租户对应的租户私有服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
通过参数信息获取单元4100和服务提供单元420,应用管理员在应用编排界面下可以查看服务绑定的状态,通过在可部署组件的卷挂载项中增加对服务绑定产生的密文的挂载,或者在可部署组件的环境变量中导入服务绑定产生的密文内容,应用下的组件便可以获取到服务访问信息,租户从而使用第三方服务提供商提供的服务。
在本发明的云计算服务提供装置中,平台提供服务代理的开发工具包(SoftwareDevelopment Kit,SDK),实现统一的服务代理用户管理、认证管理、授权配置管理,开放平台应用编排操作接口和账号申请,使平台租户下的应用开发团队可以借助平台提供的能力快速开发、部署基础服务代理,作为服务提供商对平台其他租户提供基础服务。平台的租户下的用户可以获取服务代理相关的SDK,进行代码开发,实现相关接口,利用平台的代理托管能力和CI/CD能力,编排CI/CD流水线,编写dockerfile,定义部署模板,设置服务代理名称、设置图标。用户对版本库的提交会自动触发CICD,完成服务代理代码的编译、打包、部署、测试操作,将新开发的服务代理部署为一个应用。租户可以选择将实现了Open ServiceBroker API的规范定义的应用发布到平台系统全局服务目录下或者当前租户的服务目录下。应用发布的服务代理在服务目录下会处于未上线状态,需要服务目录管理员审批通过后,设置状态为上线才能被其他应用使用。系统全局服务目录和租户服务目录下会提供服务使用情况的统计信息展示,同时提供服务上线和下线功能,未上线的服务不能被创建服务实例。当应用从上线状态变为下线状态后,已经生成的服务实例不受影响,新增加服务实例将不被允许,且,各级授权对象都不能使用超过授权范围的服务,和生成超过配额的服务实例和实例绑定。
图12示例了一种电子设备的实体结构示意图,如图12所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行云计算服务提供方法,该云计算服务提供方法包括:
S100、注册服务代理到服务目录,并对服务代理进行同步;
S200、根据服务代理,生成服务实例;
S300、在应用下生成并分配服务实例对应的服务绑定;
S400、应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的云计算服务提供方法,该云计算服务提供方法包括:
S100、注册服务代理到服务目录,并对服务代理进行同步;
S200、根据服务代理,生成服务实例;
S300、在应用下生成并分配服务实例对应的服务绑定;
S400、应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的云计算服务提供方法,该云计算服务提供方法包括:
S100、注册服务代理到服务目录,并对服务代理进行同步;
S200、根据服务代理,生成服务实例;
S300、在应用下生成并分配服务实例对应的服务绑定;
S400、应用下的组件根据服务绑定,获取服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (9)

1.一种云计算服务提供方法,其特征在于,包括以下步骤:
注册服务代理到服务目录,并对所述服务代理进行同步,具体包括:
根据所述服务代理的参数信息,建立服务目录与所述服务代理的连接,注册所述服务代理到所述服务目录;其中,所述服务目录包括系统全局服务目录和若干租户私有服务目录,所述参数信息包括服务代理名称、连接地址、用户认证信息、描述信息、服务访问地址和同步周期;
根据开放服务代理应用程序编程接口,调用服务查看接口,获取所述服务代理所提供的服务信息,所述服务目录周期性地同步所述服务信息;其中,所述服务信息包括服务类别和服务规格;
根据所述服务代理,生成服务实例;
在应用下生成并分配所述服务实例对应的服务绑定;
所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
2.根据权利要求1所述的云计算服务提供方法,其特征在于,所述根据所述服务代理,生成服务实例,具体包括以下步骤:
在所述租户私有服务目录下根据所述服务规格,生成服务实例;
根据开放服务代理应用程序编程接口,申请所述服务实例并向所述服务代理发起调用请求,所述服务代理向所述服务目录发送所述服务实例的申请结果;
轮询所述服务代理,获取并更新所述服务实例的状态。
3.根据权利要求2所述的云计算服务提供方法,其特征在于,所述在应用下生成并分配所述服务实例对应的服务绑定,具体包括以下步骤:
在应用下,生成所述服务实例对应的所述服务绑定,将所述服务绑定分配并绑定给所述对应的所述服务实例;
根据开放服务代理应用程序编程接口,申请所述服务实例绑定并向所述服务代理发起调用请求,所述服务代理向所述服务目录发送所述服务实例的申请绑定结果;
轮询所述服务代理,获取并更新所述服务实例的绑定状态;
同步所述服务绑定从所述服务代理发生的申请绑定信息到所述应用下分布在不同集群下的命名空间下,并以密文的形式进行保存。
4.根据权利要求3所述的云计算服务提供方法,其特征在于,租户可以使用的服务为所述系统全局服务目录提供的服务以及对应的所述租户私有服务目录提供的服务,不同的所述租户私有服务目录提供的服务彼此隔离,所述租户私有服务目录下的应用对分配给自己使用的所述服务实例进行绑定,且,所述租户私有服务目录下的应用共享所述服务实例。
5.根据权利要求3所述的云计算服务提供方法,其特征在于,所述系统全局服务目录无法生成服务实例,且,不同的所述租户私有服务目录下的所述服务实例彼此隔离。
6.根据权利要求3所述的云计算服务提供方法,其特征在于,所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布,具体包括以下步骤:
所述应用下的组件通过挂载密文或者在环境变量中引入密文,获取所述服务代理的参数信息;
租户使用服务目录以及第三方服务提供商提供的服务,或者将租户对应的租户私有服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
7.一种云计算服务提供装置,其特征在于,包括:
注册并同步模块(100),用于注册服务代理到服务目录,并对所述服务代理进行同步,具体包括:
根据所述服务代理的参数信息,建立服务目录与所述服务代理的连接,注册所述服务代理到所述服务目录;其中,所述服务目录包括系统全局服务目录和若干租户私有服务目录,所述参数信息包括服务代理名称、连接地址、用户认证信息、描述信息、服务访问地址和同步周期;
根据开放服务代理应用程序编程接口,调用服务查看接口,获取所述服务代理所提供的服务信息,所述服务目录周期性地同步所述服务信息;其中,所述服务信息包括服务类别和服务规格;
服务实例生成模块(200),用于根据所述服务代理,生成服务实例;
服务绑定模块(300),用于在应用下生成并分配所述服务实例对应的服务绑定;
服务提供模块(400),用于所述应用下的组件根据所述服务绑定,获取所述服务代理的参数信息,使用服务目录以及第三方服务提供商提供的服务,或者将服务目录提供的服务作为第三方服务提供商提供的服务对外发布。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述云计算服务提供方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述云计算服务提供方法的步骤。
CN202110859957.1A 2021-07-28 2021-07-28 一种云计算服务提供方法、装置、设备及可读存储介质 Active CN113660315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110859957.1A CN113660315B (zh) 2021-07-28 2021-07-28 一种云计算服务提供方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110859957.1A CN113660315B (zh) 2021-07-28 2021-07-28 一种云计算服务提供方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN113660315A CN113660315A (zh) 2021-11-16
CN113660315B true CN113660315B (zh) 2023-12-01

Family

ID=78490822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110859957.1A Active CN113660315B (zh) 2021-07-28 2021-07-28 一种云计算服务提供方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113660315B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118401930A (zh) * 2021-12-24 2024-07-26 华为技术有限公司 用于实现基于网络的可重用计算的系统和方法
CN115134348B (zh) * 2022-05-25 2024-05-03 阿里巴巴(中国)有限公司 云应用实例的分享方法及其系统、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236762A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 用于处理对多租户应用的文件访问的方法和文件代理装置
CN108123996A (zh) * 2016-11-18 2018-06-05 Sap欧洲公司 应用管理服务实例
CN109891391A (zh) * 2016-09-02 2019-06-14 皮沃塔尔软件公司 按需资源供应
CN110798504A (zh) * 2019-09-10 2020-02-14 华为技术有限公司 跨区域共享服务的方法、装置、管理设备及存储介质
CN112039683A (zh) * 2019-06-04 2020-12-04 中移(苏州)软件技术有限公司 一种服务托管方法、系统及存储介质
CN112068850A (zh) * 2020-09-08 2020-12-11 北京金山云网络技术有限公司 服务产品实例的创建方法、装置及电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236762A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 用于处理对多租户应用的文件访问的方法和文件代理装置
CN109891391A (zh) * 2016-09-02 2019-06-14 皮沃塔尔软件公司 按需资源供应
CN108123996A (zh) * 2016-11-18 2018-06-05 Sap欧洲公司 应用管理服务实例
CN112039683A (zh) * 2019-06-04 2020-12-04 中移(苏州)软件技术有限公司 一种服务托管方法、系统及存储介质
CN110798504A (zh) * 2019-09-10 2020-02-14 华为技术有限公司 跨区域共享服务的方法、装置、管理设备及存储介质
CN112068850A (zh) * 2020-09-08 2020-12-11 北京金山云网络技术有限公司 服务产品实例的创建方法、装置及电子设备

Also Published As

Publication number Publication date
CN113660315A (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
JP7092736B2 (ja) コンテナオーケストレーションサービスを使用した動的ルーティング
US11829742B2 (en) Container-based server environments
Alsaffar et al. An architecture of IoT service delegation and resource allocation based on collaboration between fog and cloud computing
US11126481B2 (en) Fulfilling a request based on catalog aggregation and orchestrated execution of an end-to-end process
JP5288334B2 (ja) 仮想アプライアンス配備システム
US8276167B2 (en) Distributed pluggable middleware services
US10601680B2 (en) Application resiliency using APIs
CN113660315B (zh) 一种云计算服务提供方法、装置、设备及可读存储介质
TW201229795A (en) Web service patterns for globally distributed service fabric
US9077613B2 (en) System and method for graph based K-redundant resiliency for IT cloud
US10891282B1 (en) Mutations with immediate feedback
US11599397B2 (en) Collaboration service to support cross-process coordination between active instances of a microservice
US10728169B1 (en) Instance upgrade migration
US11159634B1 (en) Subscription fan out
CN107172214B (zh) 一种具有负载均衡的服务节点发现方法及装置
US11089133B1 (en) Synchronizing data with delayed subscriptions
Siddiqui et al. GLARE: A grid activity registration, deployment and provisioning framework
US20220229687A1 (en) Non-disruptive container runtime changes
US20220129284A1 (en) Microservice Deployment
US11126610B1 (en) Conflict resolution in a data proxy
WO2022034378A1 (en) Container orchestration system (cos) services discovery across multiple cos clusters based on cos cluster domain name system
Chen et al. Yuanrong: A production general-purpose serverless system for distributed applications in the cloud
CN114827177B (zh) 一种分布式文件系统的部署方法、装置及电子设备
US11734136B1 (en) Quick disaster recovery in distributed computing environment
Greenberg Building Applications on Mesos: Leveraging Resilient, Scalable, and Distributed Systems

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
GR01 Patent grant
GR01 Patent grant