计算系统中的分布式操作控制的制作方法

文档序号:16595861发布日期:2019-01-14 19:38阅读:137来源:国知局
计算系统中的分布式操作控制的制作方法

远程或“云”计算通常利用远程服务器上的虚拟机集合而不是本地服务器或个人计算机来处理、管理或存储用户数据。通信网络可以将远程服务器作为“网格”中的节点进行互连以形成计算结构。在操作期间,计算结构的一个或多个节点可以彼此协作以提供分布式计算环境,该分布式计算环境促进各种软件应用的执行以提供期望的云服务。



技术实现要素:

提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”并非旨在标识所要求保护的主题的关键特征或必要特征,也并非旨在用于限制所要求保护的主题的范围。

在某些计算系统中,计算结构可以包括多个集群,每个集群具有多个服务器。每个群集中的多个服务器(例如,五个服务器)可以被配置为结构控制器以监测和管理群集中的其他服务器的操作。结构控制器可以响应客户端请求而分配执行任务(例如,托管虚拟机)以及直接与其他服务器交互,以配置、开始、停止、迁移、监测和管理托管在其他服务器上的所分配的虚拟机。然而,前述布置可能限制每个集群中的服务器的数目。例如,随着每个群集中的服务器的数目增加到数千甚至数万,结构控制器可能缺少计算、存储器、输入/输出、网络、存储或其他类型的资源来充分地管理如此大量的服务器的操作。

所公开技术的特定实施例涉及通过将监测和管理集群中的服务器的各种操作的某些功能从结构控制器委托给受管理服务器来改进计算结构中的集群的可扩展性。在特定实施例中,控制集群(例如,第一组服务器)可以接收与包括例如一个或多个虚拟机的云计算服务(称为“租户”)的创建相关的客户端请求。在该请求中,客户端还可以提供与所请求的租户相关的相关联租户描述(例如,租户名称、安全设置等)和服务描述(例如,代码、执行配置和相关联的数据)。

作为响应,控制集群可以与执行集群通信,以指示将在执行集群中执行具有一个或多个任务的应用,以为所请求的租户提供服务。应用的两个或更多实例可以在执行集群中的不同故障域中、在不同的执行集群中、或以其他合适的方式执行,以实现目标可靠性级别。在特定实施例中,控制集群可以通过实现无状态和/或有状态的角色来创建应用和/或任务。每个角色可以包括可执行指令和表示状态信息的相关联的数据。例如,第一角色可以被配置为在计算结构的网络存储库中表示所接收和存储的租户和/或服务描述。第一角色还可以被配置为根据请求向其他角色提供所存储的租户描述的数据。例如,第二角色可以被配置为请求、从第一角色接收、并且处理租户和/或服务描述,以获取具有例如输入/输出接口、功能描述、代码、执行容器等的租户模型。在其他实施例中,控制集群还可以利用单片应用、多层应用或其他合适的工具来创建应用和/或相关联的任务。

一旦被创建,所述控制集群就可以向执行集群推送与所请求的租户相关的各种任务的配置,以作为应用的组件。每个任务可以包括处理、存储器、存储、网络或其他合适类型的资源、应用图像、应用数据或足以允许执行集群执行任务的其他合适信息的规范。任务还可以包括表示关于如何相对于彼此执行各个任务的策略的数据。

在由控制集群激活时,执行集群中的执行控制器可以基于处理负载、资源可用性或其他合适的标准来向执行集群中的各个节点分发任务。在每个节点上,节点服务组件可以接收所指派的任务,并且在本地配置、执行、监测和管理所指派的应用的任务。例如,节点服务组件可以在本地监测所执行任务的健康状态,并且向执行控制器报告任何检测到的问题。响应于来自节点的所报告的问题,执行控制器可以将所执行的任务迁移到例如执行集群中的不同服务器,或者应用其他补救措施而无需来自控制集群的干预。

这样,所公开技术的若干实施例可以高度可扩展,以在计算结构中提供分布式操作控制。与上述计算系统不同,控制集群不是直接与执行集群中的服务器交互,而是仅创建所创建应用和/或任务的配置并且将其推送到执行集群。然后,可以在执行集群中对任务进行配置、执行、监测和管理而无需来自控制集群的干预。执行集群通常具有比控制集群更多的服务器。这样,操作控制的功能可以高度分布在执行集群中,并且从而能够在需要时准备好扩展以容纳附加服务器。

附图说明

图1是示出根据所公开技术的实施例的配置有分布式操作控制的计算系统的示意图。

图2是示出根据所公开技术的实施例的图1的计算系统的特定硬件/软件组件的示意图。

图3a-3e是示出根据所公开技术的实施例的在特定操作阶段期间,图1的计算系统的特定硬件/软件组件的框图。

图4a是示出根据所公开技术的实施例的配置有分布式操作控制的另一计算系统的示意图。

图4b是示出根据所公开技术的实施例的在特定操作阶段期间图4a的计算系统的特定硬件/软件组件的框图。

图5a-5c是示出根据所公开技术的实施例的分布式操作控制的各种过程的流程图。

图6是适合于图1和4a中的计算系统的特定组件的计算设备。

具体实施方式

下面描述用于在计算结构中实现分布式操作控制的计算系统、设备、组件、模块、例程和过程的特定实施例。在以下描述中,包括组件的具体细节以提供对所公开技术的特定实施例的透彻理解。相关领域的技术人员还将理解,所公开技术可以具有另外的实施例,或者可以在没有下面参考图1-6描述的实施例的若干细节的情况下实践。

如本文中使用的,术语“计算结构”通常是指具有将多个服务器或节点彼此互连或与外部网络(例如,因特网)互连的多个网络设备的计算机系统。计算结构的一个示例是被配置为提供特定云计算设施的云计算数据中心(或其部分)。术语“网络设备”通常是指物理网络组件。示例网络设备包括路由器、交换机、集线器、网桥、负载平衡器、安全网关或防火墙。“节点”通常是指被配置为实现例如一个或多个虚拟机、虚拟路由器、虚拟网关或其他合适的虚拟化计算组件的物理计算设备。例如,节点可以包括具有被配置为支持一个或多个虚拟机的管理程序的计算服务器。

计算结构中的计算网络可以在概念上划分为在底层网络上实现的覆盖网络。“覆盖网络”通常是指在底层网络上实现并且在其之上操作的抽象网络。底层网络可以包括彼此互连的多个物理网络设备。相反,覆盖网络可以包括一个或多个虚拟网络。“虚拟网络”通常是指覆盖网络中的底层网络的一部分的抽象。虚拟网络可以包括被称为“租户站点”的一个或多个虚拟端点,租户站点由客户端分别使用以访问虚拟网络和相关联的计算、存储或其他合适的资源。租户站点可以托管一个或多个租户实例,例如,具有相应租户类型的虚拟机。虚拟网络可以互连计算结构的不同节点上的多个租户实例。覆盖网络中的虚拟网络设备可以通过与沿着底层网络中的一个或多个物理网络设备的一个或多个网络路由分别地相对应的虚拟链路彼此连接。

本文中还使用的术语“角色”通常是指以单线程执行的孤立的、独立的计算和状态单元。角色可以在并发或分布式系统中同时和独立地执行。角色可以彼此通信,并且可以创建附加角色。例如,角色可以通过使用例如请求响应模式交换异步消息来与操作系统或与其他角色交互。

如本文中使用的,术语“应用”通常是指分别地被配置为执行特定功能并且可以在分布式云计算结构中执行的组成服务或任务的集合。“服务”或“任务”通常是指被配置为独立于同一应用中的其他服务或任务而被执行以执行期望功能的软件组件。在特定实施例中,服务或任务可以包括计算机可执行指令、运行时配置和/或合适的数据。在其他实施例中,服务或任务还可以包括执行策略、性能参数、类型、版本和/或其他合适的信息。

另外,如本文中使用的,术语“控制集群”通常是指被配置为基于从客户端接收的租户请求来创建由执行集群可执行的应用的计算系统。术语“执行集群”通常是指被配置为执行所创建的应用并且向客户端提供所请求的租户的结果的计算系统。控制集群和执行集群都可以包括彼此互连的一个或多个虚拟机和/或物理服务器。在特定实施例中,控制集群可以与相关联的执行集群分离。在其他实施例中,控制集群可以与相关联的执行集群共同定位。

在一些计算系统中,计算结构中的特定服务器可以被配置为结构控制器,以监测和管理其他服务器的操作。结构控制器可以分配执行任务(例如,托管虚拟机)以及直接与其他服务器交互,以配置、开始、停止、迁移或以其他方式监测和管理托管在其他服务器上的所分配的虚拟机。然而,这种布置可能会限制集群中的服务器的数目。例如,随着服务器的数目增加到数千甚至数万,结构控制器可能快速耗尽可用资源来充分地管理如此大量的服务器的操作。

所公开技术的若干实施例可以通过将租户请求转换为特定应用以在具有大量节点的执行集群中执行,来改进计算结构中的可扩展性。这样,传统结构控制器的特定功能可以委托给执行集群中的节点。例如,执行集群可以配置、执行、监测或以其他方式管理执行集群中的服务器的操作。因此,与传统计算系统不同,控制集群不直接与执行集群中的节点交互以管理节点的各种操作。结果,执行集群可以比传统计算系统更容易地扩展,如下面参考图1-6更详细地描述的。

图1是示出根据所公开技术的实施例的被配置用于分布式操作控制的计算系统100的示意图。如图1所示,计算系统100可以包括互连多个客户端101、控制集群126、以及一个或多个执行集群128以形成计算结构的底层网络108。出于说明目的示出了两个执行集群128,但是计算系统100可以包括任何合适数目的执行集群128。此外,为清楚起见,图1仅示出了一个执行集群128的细节。其他执行集群128可以具有与详细示出的执行集群的配置大致相似或不同的配置。尽管图1中示出了计算系统100的特定组件,但是在其他实施例中,计算系统100还可以包括附加的和/或不同的组件。例如,在特定实施例中,计算系统100可以包括网络存储设备、公用设施基础设施和/或其他合适的组件(未示出)。

如图1所示,底层网络108可以包括互连客户端101、控制集群126和执行集群128的一个或多个网络设备112。底层网络108可以包括多个网络设备112,所述多个网络设备112彼此可操作地耦合以将控制集群126和执行集群128互连成计算结构。网络设备112的示例可以包括路由器、交换机、防火墙、负载平衡器或其他合适的网络组件。尽管出于说明目的在图1中示出了特定连接方案,但是在其他实施例中,网络设备112可以以分层、平面、“网格”或其他合适的拓扑结构而可操作地耦合。

执行集群128可以包括经由底层网络108彼此可操作地耦合的多个节点106和执行控制器130。在特定实施例中,节点106可以分别包括处理器、物理服务器或若干物理服务器。在其他实施例中,节点106还可以包括虚拟服务器或若干虚拟服务器。节点106可以被组织成机架、可用区域、组、集合或其他合适的划分。例如,在所示实施例中,节点106被分组为分别被标识为第一、第二和第三机架107a-107c的三个机架,它们可操作地耦合到相应的网络设备112a-112c。然后,网络设备112a-112c可以可操作地耦合到另外的网络设备112以形成允许节点106与执行控制器130之间的通信的计算机网络。在特定实施例中,具有相应的网络设备112a-112c的每个机架107a-107c可以形成不同的故障域。在其他实施例中,多个机架107a-107c可以共享单个网络设备112,或者可以具有其他合适的拓扑。

节点106可以分别地被配置为向租户101提供计算、存储和/或其他合适的云计算设施。例如,如下面参考图2更详细描述的,节点106之一可以包括启动和保持一个或多个虚拟机144的组件(如图2所示)。然后,客户端101可以利用所启动的虚拟机144来执行计算、通信、内容分发和/或其他合适的操作。在特定实施例中,节点106之一可以托管多个客户端101的虚拟机144。例如,节点106之一可以托管分别对应于每个客户端101a-101b的三个虚拟机144。

执行控制器130可以被配置为监测和管理执行集群128中的节点106的操作。例如,在特定实施例中,执行控制器130可以被配置为分发将在各种节点106处部署的应用和/或服务。执行控制器130还可以监测应用和/或服务的执行、节点的健康状态或其他操作参数。在检测到操作问题的情况下,执行控制器130可以被配置为执行故障转移并且在节点106之间提供一致的消息路由。适合于执行控制器130的示例控制系统可以包括由华盛顿州西雅图的amazon.com提供的amazonwebservice控制器或者由华盛顿州雷蒙德市的microsoftcorporation提供的azure结构控制器。下面参考图3a-3e更详细地描述执行控制器130的实施例的特定组件。

控制集群126可以被配置为从客户端101接收租户请求,并且基于此来创建将由执行集群128执行的应用和服务。在特定实施例中,控制集群126可以直接向执行集群128中的一个或多个节点106分配所创建的应用的执行。在其他实施例中,控制集群126可以允许执行控制器130分配所创建的应用和/或服务的部署。在另外的实施例中,控制集群126可以向例如不同数据中心中的其他执行集群(未示出)而不是执行集群128分配所创建的应用。下面参考图3a-3e更详细地描述控制集群126的示例组件和操作。

在操作中,客户端101中的一个或多个可以经由底层网络108向控制集群126传输租户请求。租户请求可以包括合适的托管的云设施,诸如托管的虚拟机、网络服务和/或其他合适的设施。作为响应,控制集群126可以创建将由执行集群128执行以提供所请求的租户的实例的一个或多个应用和相关联的服务。应用可以分别地包括一个或多个服务,这些服务可以分别地包括计算机可执行指令、运行时配置和/或合适的数据。然后,控制集群126可以向执行集群128推送应用和/或服务的配置。

响应于从控制集群126接收到应用和/或服务的配置,执行集群128中的执行控制器130可以向执行集群128中的一个或多个节点106分配各个应用和/或服务。在每个节点106处,响应于所接收的应用和/或服务,节点106可以管理应用和/或服务的实例的生命周期,而无需来自控制集群126的进一步干预。例如,节点106可以在节点106上配置、开始、停止、迁移或以其他方式管理诸如虚拟机144等一个或多个租户容器。如本文中使用的“租户容器”通常是指被配置为执行应用或服务以提供所请求的租户或其一部分的实例的软件容器。示例租户容器可以包括虚拟机、docker容器或其他合适的软件组件。在操作期间,节点106还可以向执行控制器130报告操作参数或问题。如果在一个节点106中检测到故障或问题,则执行控制器130可以引起托管的虚拟机144被迁移到执行集群128中的另一节点106。

这样,与传统计算系统不同,控制集群126并不直接与执行集群128中的节点106交互以配置、监测或管理节点106的各种操作。相反,控制集群126将这样的功能委托给执行控制器130或节点106。因此,控制集群126可以在执行集群128中容纳比传统计算系统中明显更多数目的节点106。

图2是示出根据所公开技术的实施例的在图1的底层网络108上实现的示例覆盖网络108'的示意图。在图2中,为清楚起见,仅示出了图1的底层网络108的特定组件。如图2所示,第一节点106a和第二节点106b每个可以包括彼此可操作地耦合的处理器132、存储器134和输入/输出组件136。处理器132可以包括微处理器、现场可编程门阵列和/或其他合适的逻辑器件。存储器134可以包括被配置为存储从处理器132接收的数据以及处理器132的指令(例如,用于执行下面参考图5讨论的方法的指令)的易失性和/或非易失性介质(例如,rom;ram、磁盘存储介质;光学存储介质;闪存设备和/或其他合适的存储介质)和/或其他类型的计算机可读存储介质。输入/输出组件136可以包括被配置为接受来自操作员和/或自动软件控制器(未示出)的输入和向其提供输出的显示器、触摸屏、键盘、鼠标、打印机和/或其他合适类型的输入/输出设备。

第一节点106a和第二节点106b的存储器134可以包括由处理器132可执行以引起各个处理器132提供管理程序140(分别标识为第一管理程序140a和第二管理程序140b)的指令和其他合适的组件(未示出)。管理程序140可以分别地被配置为启动、监测、终止和/或以其他方式在本地管理被组织成租户站点142的一个或多个虚拟机144。例如,如图2所示,第一节点106a可以提供分别管理第一租户站点142a和第二租户站点142b的第一管理程序140a。第二节点106b可以提供分别管理第一租户站点142a'和第二租户站点142b'的第二管理程序140b。管理程序140可以是软件、固件或硬件组件。租户站点142每个可以包括用于特定租户(未示出)的多个虚拟机144或其他合适的租户实例。例如,第一节点106a和第二节点106b都可以托管第一租户101a(图1)的租户站点142a和142a'。第一节点106a和第二节点106b都可以托管第二租户101b(图1)的租户站点142b和142b'。每个虚拟机144可以执行相应的操作系统、中间件和/或应用。

还如图2所示,计算系统100可以包括具有跨多个主机106互连租户站点142a和142b的一个或多个虚拟网络146的覆盖网络108'。例如,第一虚拟网络142a互连第一节点106a和第二节点106b处的第一租户站点142a和142a'。第二虚拟网络146b互连第一节点106a和第二节点106b处的第二租户站点142b和142b'。尽管单个虚拟网络146被示出为对应于一个租户站点142,但是在其他实施例中,多个虚拟网络146(未示出)可以被配置为对应于单个租户站点146。

即使虚拟机144位于不同的主机106上,虚拟网络146上的虚拟机144也可以经由底层网络108(图1)彼此通信。可以将每个虚拟网络146的通信与其他虚拟网络146隔离。在特定实施例中,可以允许通信通过安全网关或以其他方式以受控方式从一个虚拟网络146跨越到另一虚拟网络。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144之一。因此,不同的虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括ip地址、mac地址和/或其他合适的地址。

图3a-3e是示出根据所公开技术的实施例,在特定操作阶段期间图1的计算系统100的特定硬件/软件组件的框图。在图3a-3e和本文中的其他图中,各个软件组件、对象、类、模块和例程可以是用c、c++、c#、java和/或其他合适的编程语言编写为源代码的计算机程序、进程或过程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或其他组件。组件可以是源或二进制形式。组件可以包括编译之前的源代码的各方面(例如,类、属性、过程、例程)、编译的二进制单元(例如,库、可执行文件)、或者在运行时实例化和使用的工件(例如,对象、进程、线程)。在特定实施例中,下面描述的各种组件和模块可以用角色来实现。在其他实施例中,还可以使用单片应用、多层应用或其他合适的组件来实现应用和/或相关服务的生成。

系统内的组件可以在系统内采用不同的形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以包括但不限于如下系统,该系统包含作为源代码形式的属性的第一组件、作为二进制编译库的第二组件、以及作为在运行时创建的线程的第三组件。计算机程序、进程或过程可以被编译成对象、中间或机器代码,并且被呈现以用于由个人计算机、网络服务器、膝上型计算机、智能电话和/或其他合适的计算设备的一个或多个处理器执行。同样,组件可以包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是石化的软件,并且软件可以被认为是液化的硬件。仅作为一个示例,组件中的软件指令可以被刻录到可编程逻辑阵列电路,或者可以被设计为具有适当的集成电路的硬件电路。同样,硬件可以由软件模拟。源、中间件和/或目标代码和相关联的数据的各种实现可以存储在计算机存储器中,包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备和/或其他合适的计算机可读存储介质,传播信号除外。

如图3a所示,控制集群126可以包括彼此可操作地耦合的接口组件133、分配器组件135和控制组件137。如上所述,控制集群126可以包括彼此互连的一个或多个物理或虚拟服务器。这样,在特定实施例中,控制集群126的所示组件的实例可以位于单个物理或虚拟服务器上。在其他实施例中,前述组件的实例可以分布在多个物理或虚拟服务器上。在另外的实施例中,至少一些前述组件的重复实例也可以被分布在多个物理或虚拟服务器上,以提供例如目标可用性。

接口组件126可以被配置为从客户端101接收作为用户输入的请求描述150。在特定实施例中,请求描述150可以包括租户描述和服务描述。租户描述可以包括表示租户名称、安全设置、网络应用指示和其他合适信息的数据。服务描述可以包括例如与所请求的租户相关的程序代码、配置和相关联的数据。

然后,接口组件126可以被配置为将所接收的请求描述150传送到分配器组件135和控制组件137以进行进一步处理。在分配器组件135或控制组件137的多个实例可用的特定实施例中,接口组件126可以包括选择前述组件的特定实例以进一步处理所接收的请求描述150的无状态分配器。在其他实施例中,接口组件133还可以包括用于将所接收的请求描述150传送或传输给控制集群126的其他组件的其他合适的组件。

在特定实施例中,分配器组件135可以被配置为基于客户端101的位置、操作的类型、执行集群的可用性、或其他合适的信息而响应于到执行集群之一的用户输入而分配特定操作。在图3a-3e中,仅示出了一个所选择的执行集群128。在其他实施例中,分配器组件135可以向计算系统100中的多个执行集群128分配相同操作的副本。在另外的实施例中,分配器组件135还可以被配置为向执行集群128中的特定节点106分配操作。

控制组件137可以被配置为基于从接口组件133接收的请求描述150来生成应用,以在执行集群128中执行。如图3a所示,控制组件137可以包括图像模块162、租户模块164、租户模型模块166和服务模块168。图像模块162可以被配置为将所接收的请求描述150作为服务描述角色171(在图3a中示出为sd171)和租户描述角色172(在图3a中示为td172)的记录存储在控制集群126的图像库(未示出)中。图像模块162还可以被配置为根据请求经由例如api或其他合适的接口将所存储的服务和租户描述171和172提供给其他模块。

租户模型模块166可以被配置为基于从图像模块162接收的服务描述171和租户描述172来创建租户模型174。在特定实施例中,租户模型174可以包括输入/输出接口的规范、配置信息(诸如设置、覆盖和通信信道)、可以执行的计算机可执行代码、容器信息(诸如虚拟机)以及其他合适的信息。

如图3b所示,基于租户模型174,租户模块164可以创建对应于所接收的请求描述并且可以在执行集群128,中执行的应用176(在图3a中示出为app176)。所创建的应用176可以包括一个或多个服务作为应用176的组成部分。例如,如图3c所示,服务模块168可以创建与应用176相关联的多个服务178。在所示实施例中,出于说明的目的,示出了三个服务178。在其他实施例中,服务模块168可以被配置为创建任何合适数目的服务178。

还如图3c所示,执行控制器130可以包括监测和管理节点106(示出为节点106a-106c)的操作的执行组件131。例如,在特定实施例中,控制集群126可以向执行控制器130指示应用176的实例的执行被指派给执行集群128。作为响应,执行组件131可以为应用176创建占位符,并且等待与应用176相关的另外的信息。

如图3d所示,控制集群126可以将所创建的服务178传输给执行控制器130以用于执行。作为响应,执行组件131可以被配置为基于处理负载、资源类型或其他合适的标准向执行集群128中的各个节点106来分发服务178。例如,在所示实施例中,服务178a-178c分别被分发给节点106a-106b。在其他实施例中,可以以其他合适的方式分配服务178。

在接收到所分配的服务178a-178c之后,各个节点106a-106c可以与所分配的服务178a-178c交互,例如,与管理程序107(图2)交互,以配置、启动和监测服务178a-178c的执行,以启动和管理租户容器(例如,虚拟机)。在操作期间,节点106a-106c可以监测所执行的服务178a-178c的执行参数和条件。节点106a-106c可以向执行控制器130报告任何所监测的执行参数和条件。在执行问题的情况下,执行控制器130可以迁移或应用其他补救措施。例如,如图3e所示,在节点106b报告节点故障或其他问题的情况下,执行控制器130可以引起服务178b迁移到节点106c以继续执行。

尽管执行集群128在图1中示出为具有扁平拓扑,但是在其他实施例中,执行集群128可以具有附加层级。例如,如图4a所示,执行集群128可以包括多个下级集群109,每个下级集群109具有集群控制器129(示出为集群控制器129a-129c)。在操作中,如图4b所示,执行控制器130可以分配应用174和/或服务178以选择下级集群109。依次,下级集群109的每个集群控制器129中的执行组件131可以基于处理负载、资源类型或其他合适的标准而向下级集群中的各个节点106指派所分配的服务178。

图5a是示出根据所公开技术的实施例的分布式操作控制过程200的流程图。在特定实施例中,过程200可以在图1的计算系统100的控制集群126中实现,以创建新的租户,删除现有租户,或者更新/修改现有租户。在其他实施例中,过程200也可以在具有用于其他合适功能的类似或不同组件和/或配置的其他计算系统中实现。

如图5a所示,过程200可以包括在阶段202从客户端接收对基于云的计算服务的租户请求。如上面参考图1所讨论的,租户请求可以包括服务描述、租户描述或其他合适的信息。然后,过程200可以包括在阶段204处理所接收的租户请求。在特定实施例中,处理所接收的租户请求可以包括将所接收的服务描述、租户描述或其他合适的信息存储在计算结构中的图像库中。在其他实施例中,处理所接收的租户请求还可以包括基于所接收的服务描述、租户描述或其他合适的信息来生成租户模型。

然后,过程200可以包括在阶段206基于例如租户模型来为所请求的租户配置可执行应用。在特定实施例中,可执行应用可以包括一个或多个服务,如上面参考图1所描述的。在其他实施例中,可执行应用还可以包括表示关于一个或多个服务的执行策略的数据。例如,执行策略可以指定两个不同的服务不能在单个故障域上执行,需要连续执行,或者以其他合适的方式执行。然后,过程200可以包括将可执行应用和相关联的服务的配置推送到执行集群以执行。

图5b是示出根据所公开技术的实施例的执行基于云的应用的过程210的流程图。如图5b所示,过程210可以包括在阶段212接收可执行应用的配置。过程210还可以包括在阶段214处理应用以供执行。在特定实施例中,应用可以包括多个服务。因此,处理应用可以包括基于例如与服务相关联的执行策略来向一个或多个节点分配各种服务以供执行。处理应用还可以包括配置、发起或停止各种分配的服务,例如,在各个节点处。

过程210还可以包括在阶段216在本地管理应用执行。例如,如图5c所示,管理应用执行可以包括在阶段222监测应用执行。然后,过程216可以包括用于确定是否检测到问题(例如,节点故障)的决定阶段。响应于确定检测到问题,过程216可以包括应用补救措施,诸如将服务的执行迁移到另一节点,重启节点,或者其他合适的措施。响应于确定未检测到问题,过程216返回阶段222处监测应用执行。

图6是适合于图1中的计算系统100的特定组件的计算设备300。例如,计算设备300可以适合于图1的执行集群128中的节点106或控制集群126中的节点。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304和系统存储器306。存储器总线308可以用于处理器304与系统存储器306之间的通信。

根据期望的配置,处理器304可以是任何类型,包括但不限于微处理器(μp)、微控制器(μc)、数字信号处理器(dsp)或其任何组合。处理器304可以包括一级或多级的高速缓存(诸如一级高速缓存310和二级高速缓存312)、处理器核314和寄存器316。示例处理器核314可以包括算术逻辑单元(alu)、浮点单元(fpu)、数字信号处理核(dsp核)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部件。

根据期望的配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。如图6所示,操作系统320可以包括用于管理一个或多个虚拟机144的管理程序140。这个描述的基本配置302在图6中由内部虚线内的那些组件示出。

计算设备300可以具有附加特征或功能以及用于促进基本配置302与任何其他设备和接口之间的通信的附加接口。例如,总线/接口控制器330可以用于促进基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移动存储设备336、不可移动存储设备338或其组合。可移动存储和不可移动存储设备的示例包括诸如软盘驱动器和硬盘驱动器(hdd)等磁盘设备、诸如压缩盘(cd)驱动器或数字通用盘(dvd)驱动器等光盘驱动器、固态驱动器(ssd)和磁带驱动器等。示例计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。术语“计算机可读存储介质”或“计算机可读存储设备”不包括传播信号和通信介质。

系统存储器306、可移动存储设备336和不可移动存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于ram、rom、eeprom、闪存或其他存储技术、cd-rom、数字通用盘(dvd)或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备或者可以用于存储所需信息并且可以由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播信号和通信介质。

计算设备300还可以包括用于促进经由总线/接口控制器330从各种接口设备(例如,输出设备342、外围接口344和通信设备346)到基本配置302的通信的接口总线340。示例输出设备342包括可以被配置为经由一个或多个a/v端口352与诸如显示器或扬声器等各种外部设备通信的图形处理单元348和音频处理单元350。示例外围接口344包括可以被配置为经由一个或多个i/o端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)等外部设备通信的串行接口控制器354或并行接口控制器356。示例通信设备346包括可以被布置为促进经由一个或多个通信端口364通过网络通信链路与一个或多个其他计算设备362通信的网络控制器360。

网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(诸如载波或其他传输机制)来实施,并且可以包括任何信息传递介质。“调制数据信号”可以是以使得能够在信号中对信息进行编码的方式来设置或改变其一个或多个特征的信号。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质以及诸如声学、射频(rf)、微波、红外(ir)和其他无线介质等无线介质。本文中使用的术语计算机可读介质可以包括存储介质和通信介质。

计算设备300可以被实现为诸如蜂窝电话、个人数字助理(pda)、个人媒体播放器设备、无线网络手表设备、个人耳机设备、专用设备或包括任何上述功能的混合设备等小型便携式(或移动)电子设备的一部分。计算设备300还可以实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。

从前述内容可以理解,出于说明的目的,本文中已经描述了本公开的特定实施例,但是在不脱离本公开的情况下可以进行各种修改。另外,除了或代替其他实施例的元素,一个实施例的很多元素可以与其他实施例组合。因此,除了所附权利要求之外,本技术不受限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1