掌桥专利:专业的专利平台
掌桥专利
首页

管理云计算平台的计算资源的方法及系统

文献发布时间:2023-06-19 12:19:35


管理云计算平台的计算资源的方法及系统

技术领域

本发明涉及用于管理分配给运行至少一个软件应用程序的云计算平台的计算资源的方法和系统。

背景技术

在过去几年中,通过云计算平台分发服务/应用程序已成为主流。云计算的主要优势在于它抽象了与物理硬件和/或软件资源相关的大部分问题,从而使用户能够专注于他们的核心业务,而不是专注于数据中心的维护和部署。云计算模型基于现收现付向用户提供对物理计算资源的访问,由此用户为启动的计算资源付费,以在云计算平台上运行服务/应用程序。随着对云操作服务/应用程序的需求的变化,底层物理资源可以动态缩放,以满足云服务/应用程序在任何给定时间的计算需求。

运营数据中心可能非常昂贵,因此为了使云计算模型有盈利,云计算供应商,也称为基础设施即服务(IaaS)供应商,正在使用虚拟化的概念来允许多个用户共享相同的底层物理计算资源。虚拟化使硬件和/或软件资源能够划分为隔离的虚拟机(VM)实例,这些VM实例可以根据需求指派给用户,以在云计算平台上运行应用程序和/或服务。

通常,在云计算平台上运行云服务和/或应用程序的服务质量和成本高度依赖于分配的VM实例消耗的物理计算资源。因此,必须根据服务和/或应用程序经历的需求高效地管理物理资源的分配,以保持服务质量和成本之间的平衡。

在现有的解决方案中,物理资源的分配一般是基于对资源利用率的监控,资源利用率例如运行云服务和/或应用程序的每个VM实例的CPU利用率。分配给每个VM实例的计算资源的利用率将根据其中托管的服务和/或应用程序的需求而变化。但是,监控每个VM实例的利用率可能会导致缩放计算资源以满足用户需求变化的响应延迟,这可能导致VM实例在其目标值范围之外运行一段时间,从而导致服务水平降低和/或成本增加。

因此,与使用云计算平台相关联的主要问题之一是需要确保动态且快速地调整分配的物理资源,以满足服务和/或应用程序经历的用户需求的变化。

发明内容

本发明的目的是提供一种管理云计算平台的物理计算资源、硬件和/或软件的方法和系统,以便根据服务和/或应用程序经历的用户需求变化快速且动态地调整物理计算资源、硬件和/或软件。

根据本发明的第一方面,一种用于管理云计算平台的计算资源的系统,该云计算平台包括多个虚拟机(VM)集群,每个VM集群包括多个虚拟机(VM)实例,每个VM实例被供应在至少一个服务供应商的至少一个主机设备上,并被配置为运行至少一个软件应用程序实例,该云平台可通过通信接口访问,该通信接口被配置为接收访问运行在多个VM集群中的至少一个VM集群上的至少一个软件应用程序的用户请求。该系统包括:监控模块,被配置用于确定每个VM集群中每个VM实例的资源利用率值;弹性模块,被配置用于通过请求供应或删除VM实例和/或软件应用程序实例来调整每个VM集群中VM实例和/或软件应用程序实例的数量,以便每个VM集群中每个VM实例的资源利用率值保持在目标值范围内;其中,监控模块被配置为基于在通信接口处接收到的用户请求,确定集群资源利用率值;其中,弹性模块被配置为至少基于集群资源利用率值来调整VM实例和/或软件应用程序实例的数量,以将每个VM实例的资源利用率值保持在目标值范围内。

已经发现,通过至少基于集群资源利用率值调整VM实例和/或软件应用程序实例的数量,与现有解决方案相比具有可以更高效地缩放分配的计算资源,以满足所提供的云服务和/或应用程序的需求的优点。计算资源的缩放可以涉及至少根据集群资源利用率值,通过增加和/或减少所需VM集群中的VM实例和/或软件应用程序实例的数量,从至少一个基础设施即服务(IaaS)供应商到VM集群对计算资源(例如处理器和/或存储器)的分配和/或解除分配。在本发明中,基于在通信接口处接收到的针对所请求的服务和/或应用程序的用户请求来确定集群资源利用率值。集群资源利用率值可以指示VM集群资源的利用率,这可以基于传入的用户请求和VM集群的资源配置(例如,VM和/或软件应用程序实例的数量)之间的比较来确定。通过基于在通信模块处接收到的用户流量来计算资源利用率,而不是像现有技术解决方案那样单独依赖VM实例的负载,弹性模块可以对用户流量的变化做出快速反应。通过调整VM集群中的VM实例和/或软件实例的数量来满足传入的用户请求所指示的需求,从而保证平台的持续运行。弹性模块可以使用每个VM实例的资源利用率值,以进一步优化计算资源的缩放,使得其密切匹配用户对应用程序的需求。例如,弹性模块可以根据监控模块计算出的集群资源利用率值,确定处理传入用户流量所需的VM实例的数量,从而将每个VM实例的资源利用率保持在目标值范围内。因此,通过本发明,可以快速且动态地缩放云计算平台的计算资源,以满足用户对托管的应用程序和/或服务的需求的变化,从而将期望的服务质量和成本保持在所期望的水平。

根据本发明的实施例,多个VM集群被划分为VM集群区域。例如,计算平台的VM集群区域可以分布在不同的地理区域中,从而提高位于不同地理区域的用户对云计算平台的可访问性。此外,在硬件故障的情况下,供应不同的VM集群区域可以提高云计算平台的可靠性和弹性。

根据本发明的实施例,每个VM集群区域中的每个VM集群包括监控模块和弹性模块。

根据本发明的实施例,区域的每个VM集群中的监控模块被配置为接收关于在VM集群区域中实例化的总VM实例的信息,并且其中弹性组件被配置为根据生成的资源利用率值,调整VM集群的VM实例的数量。

根据本发明的实施例,每个VM集群包括短期VM实例和长期VM实例。根据本发明的实施例,弹性模块被配置为根据VM集群比率值调整VM集群中的短期VM实例和长期VM实例之间的比率。

根据本发明的实施例,通过调整该比率,弹性模块被配置为将VM集群中的VM实例的总和保持在基于由监控模块生成的集群资源利用率值确定的VM实例的数量。

已经发现,通过在每个VM集群中集成监控模块和弹性模块,可以通过根据VM比率值调整VM实例的数量来更好地控制VM集群中VM实例的利用率值。VM比率值决定了长期VM实例和短期VM实例之间的比率,以满足VM集群的资源利用率值,同时确保分配足够的长期VM资源来应对IaaS供应商对短期VM实例的撤回。一般而言,短期VM实例(也称为可抢占式)是负担得起的、生命周期短的计算实例,IaaS供应商可能会在没有足够通知的情况下撤回这些计算实例以支持另一应用程序。另一方面,长期VM实例是以更高的成本分配给应用程序的永久资源。为了降低长期VM实例的成本,客户可以与IaaS供应商签订承诺使用折扣(CUD)合同,以较低的价格提供一定数量的承诺长期计算资源。因此,可能最好保持长期VM实例和短期VM实例之间的给定比率,以确保应用程序的连续运行,例如在任何给定时刻,短期VM实例的数量不超过预定阈值,该阈值可以是用户或系统定义的。通过使用CUD合同,在请求实例化额外的短期VM实例和/或长期VM实例之前,最大化承诺的长期VM实例的使用符合客户的利益。弹性模块基于监控模块提取的关于在VM区域的其他VM集群中实例化的VM实例的总数和/或类型的信息,可以通过选择适当类型的计算资源(例如短期计算资源和长期计算资源之间的比率),在优化相关成本的同时调整VM比率以确保连续运行。例如,在用户流量较大的情况下,弹性模块可以先检查已承诺的长期VM实例是否有空闲容量,并相应地调整长期VM实例和短期VM实例之间的VM比率,以确保计算平台的持续运行,同时优化与计算资源相关的总体成本。弹性模块可以调整短期VM实例和长期VM实例之间的比率,同时将VM集群中所有VM实例的总和保持在由弹性模块基于生成的集群资源利用率值确定的VM实例数量内。VM集群中的VM实例总数可以基于用户流量来调整和/或由用户定义。本发明提供在两个级别,即在VM集群级别和VM区域级别,对分配给VM区域的每个集群的计算资源的优化和管理。在VM集群级别,本发明使得能够基于集群利用率值来确定处理在通信逻辑处接收到的用户流量所需的VM实例的总数,并且在保持VM实例的总数同时相应地调整短期VM实例和长期VM实例的数量,以获得所需的VM集群比率,以便确保平台的持续运行。在VM区域级别,本发明使得能够根据CUD合同控制长期VM实例的总数。

根据本发明的实施例,监控模块被配置为基于在通信接口处接收到的由用户请求产生的传入流量来确定集群资源利用率值。例如,监控模块可以被配置为从传入的用户请求中提取与所请求的软件应用程序实例相关联的一组关键性能指标,并相应地基于运行所请求的软件应用程序实例的VM集群的资源配置来确定集群资源利用率值。

已经发现,通过监控和分析由传入用户请求产生的流量,可以确定集群资源利用率值,弹性模块可以使用该集群资源利用率值来确定VM集群的VM实例和/或软件实例是否需要调整。例如,监控模块可以处理用户请求以提取一组关键性能指标,例如被请求的软件应用程序的类型、与所请求的软件应用程序实例相关联的CPU和存储器要求、和/或用户会话的持续时间,哪个会话持续时间可以基于历史信息。监控模块基于提取的关键性能指标,和/或每个VM集群的资源配置,和/或用户请求量,可以确定集群资源利用率值。

根据本发明的实施例,弹性模块被配置为基于存储在系统数据库中的VM配置模板来供应VM实例。配置模板包括VM实例的配置数据,配置数据至少包括CPU和存储器分配要求。例如,VM配置模板可以包括用于根据应用程序的要求配置短期性能VM实例以及长期VM实例的配置数据,其中短期性能VM实例被供应以处理传入用户请求的短期爆发,长期VM实例被供应以处理传入用户请求的长期爆发。

配置模板确保VM实例是利用预先确定的配置从基础设施服务供应商供应的。通过使用配置模板,系统管理员可以为任意软件应用程序实例保存基线配置。从而,系统管理员可以创建基线服务器配置的模板,以加快云计算环境中服务器的部署。可以为文件服务器、应用程序服务器或Web服务器甚至“小型”或“大型”服务器配置创建配置模板。需要注意的是,可以使用不同的配置模板来供应具有不同配置的VM实例。配置模板可以包括用于配置至少两种类型的VM实例(短期性能VM实例和长期性能VM实例)的配置数据。可以供应短期性能VM实例以处理传入用户流量的短暂爆发和/或当VM集群中的VM实例遇到问题时可以供应短期性能VM实例。可以在为VM集群建立基线配置时或者处理传入用户流量的增加时,供应长期性能VM实例。短期性能VM实例可能具有短期稳定性,并且可能会在临时通知时终止。长期性能VM实例可能具有长期稳定性,并且可能会使用很长时间。弹性模块可以基于与在通信接口模块接收的用户请求量相关的集群资源利用率值来决定是供应短期性能VM实例还是长期性能VM实例。

根据本发明的实施例,弹性模块包括:被配置为调整VM集群中的软件应用程序实例的数量的应用程序控制模块以及被配置为调整VM集群中的VM实例的数量的VM控制模块。

通过提供应用程序控制模块和VM控制模块,允许软件应用程序实例与VM实例分开调整。这样,可以用更加灵活的方式满足用户需求的变化。例如,只要VM实例的资源利用率值保持在目标值内,就可以仅增加或减少VM集群中的软件应用程序实例以满足对期望应用的用户需求的变化。一旦VM实例的资源利用率值达到或超过目标值,则VM控制模块可以调整集群中VM实例的数量,从而调整底层计算资源。可以重复该过程,直到物理资源处于正确水平以处理用户请求的传入流量。

根据本发明的实施例,弹性模块包括服务供应商选择模块,该服务供应商选择模块被配置为基于一组供应标准选择用于托管VM集群中的VM实例的服务供应商,该一组供应标准至少包括供应成本、计算资源的可用性、可靠性、数据安全性和主机设备的地理位置。选择模块可以被配置为通过周期性地发布用于供应VM实例的测试请求来确定用于供应VM实例的每个服务供应商的可用性。

已经发现,供应服务供应商选择模块具有可以根据用户请求的软件应用程序的要求,在不同的服务供应商上快速供应VM实例的优点。供应标准可以与加权因子相关联,该加权因子可以指导用于供应VM实例的服务供应商的选择。管理员可以定义供应标准和相关的加权因子。

根据本发明的实施例,该系统包括工作负载均衡模块,该工作负载均衡模块被配置为基于资源利用率值在VM集群中分发用户请求以将每个VM实例的资源利用率值保持在目标值内。

工作负载均衡模块确保用户请求在VM集群中的软件应用程序实例之间被分发,以将每个VM实例所经历的资源利用率保持在目标值内。工作负载均衡模块可以采用企业服务总线(ESB)或具有所需功能的其他系统的形式。工作负载均衡模块可以基于每个VM实例的资源利用率值来分发负载。可以通过将软件应用程序实例重新分配给具有应对运行额外软件应用程序实例的资源并且其资源利用率值低于目标值或在目标值内的VM实例来优化每个VM集群的计算资源。通过重新分配软件实例,可能可以减少运行VM集群的VM实例的数量,从而在保持所需服务质量的同时节省成本。

根据本发明的实施例,工作负载均衡模块被配置为检测用户的位置并且相应地将用户请求分发到在更靠近每个用户定位的主机设备上供应的VM实例。

通过将用户请求定向到在靠近用户位置定位的托管设备上供应的VM实例,具有提高软件应用程序的速度并减少在用户和软件应用程序实例之间传播数据所需的时间的优点。

根据本发明的实施例,工作负载均衡模块包括数据分离逻辑,数据分离逻辑被配置为将软件应用程序实例处理的数据分离成公共部分和私有部分,工作负载均衡模块被配置为至少将所请求软件应用程序的私有部分传播至在满足软件应用程序施加的安全标准的主机设备上供应的VM实例。

数据分离逻辑确保私有数据由运行在VM实例上的软件应用程序处理,这些VM实例托管在满足所需隐私和安全标准的主机设备上,以确保授权用户只能访问私有数据。

根据本发明的实施例,VM集群中的至少一个VM集群被配置为运行用于基于从至少一个旅行管理系统接收的数据来确定来自多个旅行供应商的旅行产品的可用性的软件应用程序。

根据本发明的实施例,VM集群中的至少一个VM集群被配置为运行用于基于从至少一个旅行管理系统接收的数据对来自不同旅行服务供应商的旅行产品进行定价的软件应用程序。

根据本发明的第二方面,可以提供一种用于管理云计算平台的计算资源的方法,该云计算平台包括多个虚拟机(VM)集群,每个VM集群包括多个虚拟机(VM)实例,每个VM实例被供应在至少一个服务供应商的至少一个主机设备上并被配置为运行至少一个软件应用程序实例,该方法包括以下步骤:在通信接口接收用于访问运行在云计算平台的多个VM集群之一上的至少一个软件应用程序的用户请求;通过监控模块确定VM集群中每个VM实例的资源利用率值;并且通过弹性模块通过请求供应或删除VM和/或软件应用程序实例来调整VM集群中的VM实例和/或软件应用程序实例的数量,使得VM集群中每个VM实例所经历的资源利用率值保持在目标值范围内;其中,监控模块被配置为基于在通信接口处接收到的用户请求,确定集群资源利用率值;其中,弹性模块被配置为至少基于集群资源利用率值来调整VM实例和/或软件应用程序实例的数量,以将每个VM实例的资源利用率值保持在目标值范围内。

附图说明

提供以下附图作为示例以进一步解释和描述本发明的各个方面:

图1和图2示出了根据本发明实施例的用于管理云计算平台的计算资源的示例性系统。

图3示出了根据本发明实施例的VM集群区域的示例。

图4示出了根据本发明实施例的VM集群的示例。

图5示出了根据本发明实施例的监控模块的示例。

图6示出了根据本发明实施例的弹性模块的示例。

图7示出了根据本发明实施例的资源利用均衡模块的示例。

图8示出了根据本发明的实施例的被配置为运行多个应用程序的云计算平台的示例。

具体实施方式

将使用图1至图8中所示的示例性实施例来说明本发明,图1至图8将在下文更详细地描述。应当注意,对尺寸的任何引用仅是指示性的,并且不以任何方式限制本发明。虽然已经参考本发明的某些说明的实施例示出和描述了本发明,但是本领域技术人员将理解,在不脱离本发明范围的情况下,可以在形式和细节上进行各种改变。此外,虽然已经参考用于管理云计算平台的计算资源的特定系统和/或方法描述了本发明,但是本领域技术人员应当理解,可以在不脱离本发明范围的情况下对形式和细节进行改变,以促进相关领域中的其他类型的方法和/或系统。

图1和图2示出了根据本实施例的用于管理云计算平台100的计算资源的系统200的示例。如图1所示,云计算平台100可以包括通信接口110,该通信接口110被配置为通过网络160(例如,互联网)接收来自多个用户150用于访问在至少一个虚拟机(VM)集群120上运行的至少一个应用程序实例122的请求,如图4所示。云计算平台200中的每个VM集群120包括多个虚拟机(VM)实例121,每个VM实例被布置为运行至少一个软件应用程序实例122,如图4所示。VM实例121可以被供应在基础设施即服务(IaaS)供应商170的物理主机服务器上并且被分配物理计算资源,例如CPU、存储器、输入/输出设备、外围设备、操作软件等以支持运行在VM实例121上的软件应用程序实例122的操作。本发明的示例性系统200可以设置有监控模块210,监控模块210被配置为至少确定VM集群120中的每个VM实例121的资源利用率值,以及云计算平台100中的每个VM集群120的集群资源利用率值。VM实例资源利用率值可以指示分配给每个VM集群120中的每个VM实例121的底层物理计算资源,例如CPU利用率、存储器利用率。VM集群资源利用率值可以指示VM集群资源的利用率,该利用率可以基于传入用户请求和VM集群的资源配置(例如VM和/或软件应用程序实例的数量)之间的比较来确定。VM实例资源利用率值可以基于直接从VM实例121获得的信息(例如,CPU利用率)来确定,而VM集群资源利用率值可以基于从在通信接口模块110处接收的传入用户请求中提取的信息来确定。每个VM实例121和/或每个VM集群可以设置有目标资源利用率值,例如阈值,当达到和/或超过该目标资源利用率值时将指示分配给云平台的资源和/或VM集群120的配置将需要调整以满足用户需求。为此,提供弹性模块220,弹性模块220基于集群资源利用率值进行配置,以调整VM实例和/或软件实例的数量,以便将VM实例121和/或每个VM集群保持在它们各自的目标资源利用率值内。弹性模块220可以通过经由通信网络160请求供应或删除来自各个IaaS供应商170的主机设备的VM实例来调整分配给每个VM集群120的物理计算资源。根据本发明的实施例,如图1所示,可以提供用于管理计算资源的至少一个系统200,用于共同管理一组VM集群120的计算资源,该至少一个系统200也可以称为CUD进程。弹性模块220被配置为基于监控模块210计算的集群利用率值,确定处理在通信接口110处接收的传入用户流量所需的VM实例和关联计算资源的数量,以将VM集群中的每个VM实例121的资源利用率值保持在目标值内。

根据本发明的实施例,每个VM集群可以设置有如图2所示的用于管理计算资源的系统200。在这种布置中,该布置可以结合图1所示的实施例工作,每个VM集群中的监控模块210可以被配置为用于接收关于在云平台100的其他VM集群120中实例化的VM实例的数量和/或类型的VM实例信息。VM实例信息也可以从CUD进程200(诸如图1所示的CUD进程)获得,CUD进程200可以充当协调器。弹性模块220可以基于接收到的VM实例信息,基于监控模块210确定的集群利用率值,优化和调整VM实例的数量以满足VM集群120中的VM实例121的资源利用率值。VM实例信息可以从IaaS供应商接收,例如,区域的VM集群中的CUD进程200可以周期性地从IaaS供应商请求该区域的VM实例信息。VM实例信息可以包括在VM集群区域中使用的总VM实例的数量,和/或长期VM实例与短期VM实例之间的比率,长期VM实例可以被称为标准VM实例,短期VM实例也被称为抢占式。在很多情况下,长期VM实例是有保障的计算资源,这些计算资源由IaaS供应商以更高的成本指派给客户端。为了降低成本,客户可以与IaaS供应商签订承诺使用折扣(CUD)合同,用于以折扣价购买一定数量的承诺VM计算资源,例如vCPU、存储器、GPU和本地SSD。另一方面,抢占式VM实例是在无法由有保障的长期VM实例处理的用户需求激增的情况下使用的按需计算资源。抢占式VM实例的一个特点是,IaaS供应商可能会意外地将计算资源重新分配给另一个进程,这可能会导致在满足用户需求方面的问题。因此,在CUD合同的情况下,为了保持运行在云平台上的软件应用程序的操作,可能最好在可抢占和长期VM实例的数量之间保持平衡,同时最大化已承诺的VM计算资源量。例如,如图3所示,弹性模块220可以根据短期VM实例和长期VM实例之间的VM集群比率来调整区域的每个VM集群中的VM实例。这样,通过将已承诺的长期VM实例的数量跨区域的VM集群分布,使得每个集群的VM集群比率在目标值内,有可能实现CUD合同中约定的承诺VM容量,同时满足用户需求。同时,弹性模块可以调整短期VM实例和长期VM实例的比例,使得VM集群中所有VM实例的总和保持在指定值,该指定值可以基于用户流量定义和/或由用户定义。通过使用本地CUD过程200,可能可以在每个VM集群120中本地调整VM计算资源,以便处理在通信接口110接收的传入流量,同时通过调整短期和长期VM实例121之间的比率来优化相关成本。

这里将给出根据本发明的示例,仅用于说明目的。VM集群120可以设置有30个VM实例121,每个VM实例被指派有至少与应该保持在目标值范围内的CPU利用率相关联的资源利用率值,目标值范围例如在50%到80%之间,其中50%是低频段,80%是高频段。对于VM集群120,VM集群资源利用率可以与在通信接口处接收的传入用户请求的流量相关联。根据该示例,如果监控模块210检测到至少一个VM实例121的资源利用率值高于预定阈值,例如,CPU利用率为100%,则弹性模块220可以决定增加VM集群120中的VM实例121,以确保VM实例121的资源利用率回到目标值范围内。也可以仅当VM实例121中的每个VM实例的CPU利用率都达到预定阈值(例如CPU利用率至少为50%,这是低频段值)时才决定这种增加。一旦弹性模块220决定增加VM实例121的数量,则将使用在通信接口110接收的传入用户请求的流量来确定要添加到VM集群120的VM实例121的确切数量。每个VM实例121可以被配置为管理预定量的传入用户流量,传入用户流量可以由用户请求的数据大小或在通信接口处接收到的用户请求的数量来定义,例如每秒100个用户请求。弹性模块220在知道可以由每个VM实例121处理的传入用户流量的量,并且给定在通信接口110处接收到的比如3300个用户请求的传入用户流量的情况下,将基于比率计算确定VM集群120中的VM实例121的数量应该从三十个增加到三十三个,以将VM集群利用率值保持在目标值内。该计算可以基于将传入用户流量除以每个VM可以处理的流量的量,例如,3300/100=33个VM实例121。在VM实例121中的至少一个已达到或超过其资源利用率值,但比率计算表明处理传入用户流量所需要的VM实例121的数量小于VM集群120中的VM实例121的数量的情况下,那么弹性模块220仍然可以决定将VM实例121的数量增加一定量,例如一,以使受影响的VM实例的资源利用率值在目标值之内。此外,如果只有一定数量的VM实例121经历高资源利用率,则可能可以增加软件应用程序实例122和/或在VM集群中的VM实例121之间重新分发传入流量请求,以使受影响的VM实例的资源利用率值在目标值之内。

图4示出了根据本发明实施例的VM集群120实现的示例。VM集群120可以设置有多个VM实例121,每个VM实例121被配置为运行至少一个软件应用程序实例122,该软件应用程序实例122可以是分布式软件应用程序的一部分。在另一示例中,每个VM实例121可以被配置为运行不同的软件应用程序实例122。每个VM集群可以设置有工作负载均衡模块180,工作负载均衡模块180可以被配置为在运行所请求的软件应用程序122的VM实例121之间分发用户请求,以便将每个VM实例121的资源利用率值保持在其目标值范围内。VM实例121的目标资源利用率值可以是用户定义的值或者可以在供应期间建立。

图5示出了根据本发明实施例的监控模块210的示例。监控模块210可以设置有处理模块211,处理模块211用于处理用户请求,以提取一组关键性能指标,该一组关键性能指标可用于确定集群资源利用率值。应当注意的是,关键性能指标也可以在通信接口模块110中确定。关键性能指标至少可以包括但不限于所请求的软件应用程序的类型、与请求的软件应用程序实例相关的CPU和存储器要求,和/或用户会话的持续时间,该会话持续时间可以基于历史信息。监控模块210可以设置有VM集群利用率模块212,VM集群利用率模块212可以被配置为基于提取的关键性能指标和每个VM集群的配置(例如,VM实例121和/软件应用程序实例122的数量),确定集群资源利用率值。监控模块210可以设置有VM实例利用率模块213,VM实例利用率模块213可以被配置为用于监控每个VM实例121以确定资源利用率值,资源利用率值可以指示分配的计算资源(例如CPU分配、存储器分配等)如何被软件应用程序实例122利用。数据库214设置为存储VM实例资源利用率值、集群利用率值、从弹性模块接收的VM集群配置数据、VM集群目标值范围、和VM实例目标值范围以及其他信息。

图6示出了根据本发明实施例的弹性模块220的示例。弹性模块220可以设置有VM实例控制模块221,VM实例控制模块221可以被配置为通过从IaaS供应商170分配或解除分配计算资源来调整VM集群120中的VM实例121的数量。应用程序实例控制模块222可以被提供以调整VM集群120中的软件应用程序实例122的数量。例如,在分布式云应用的情况下,软件实例122的数量可以取决于每个VM实例121的资源利用率值而增加或减少,以处理传入的用户请求。可以提供基础设施即服务(IaaS)供应商选择模块181来选择用于供应VM实例121的主机设备。当涉及到供应成本、可靠性、数据安全性、可用性等时,每个IaaS服务供应商170可能具有不同的服务特性。因此,根据云操作应用程序的要求,可能需要选择IaaS供应商170来供应VM实例121。在某些情况下,例如由于主机设备的位置、资源的可用性、安全性,可能需要从多于一个IaaS供应商供应实例。可以向服务供应商选择模块223提供用于选择IaaS供应商170的一组标准。可以使用权重因子对标准进行优先化,以便选择满足软件应用程序要求的最合适的IaaS供应商170。例如,如果成本和可用性被识别为最重要的标准,那么将始终选择具有可用资源的最便宜的IaaS供应商170。IaaS供应商选择模块223可以通过发布测试供应请求来周期性地测试每个IaaS供应商170的可用性。VM实例的供应可以基于配置模板自动执行,该配置模板包括与要分配的物理资源相关的配置数据。取决于软件应用程序的要求和/或用户需求的变化,可以使用一个以上的配置模板来供应VM实例121。配置模板可以存储在模板数据库224中。云计算平台100的VM集群120可以包括使用不同配置模板从不同IaaS供应商170供应的VM实例121。配置模板可以包括用于配置至少两种类型的VM实例121(短期性能VM实例和长期性能VM实例)的配置数据。短期性能VM实例可以被供应以处理传入用户流量的短暂爆发和/或当VM集群120中的VM实例121遇到问题时,例如VM实例意外终止时,短期性能VM实例可以被供应。可以在为VM集群120建立基线配置时,或者为了处理传入用户流量的增加,供应长期性能VM实例。短期性能VM实例可能具有短期稳定性,并且可能会在临时通知时终止,例如它们的底层计算资源可能会在没有事先通知的情况下被IaaS供应商170拉到另一个服务。长期性能VM实例可能具有长期稳定性,并且可能会使用很长时间。可以在保证计算资源的稳定性和/或可靠性的IaaS供应商170上供应长期VM实例。弹性模块220可以基于与在通信接口模块处接收到的用户请求的量相关的集群资源利用率值来决定是供应短期还是长期性能VM实例121。

图7示出了根据本发明实施例的工作负载均衡模块180的示例性实施方式。工作负载均衡模块180可以是企业服务总线(ESB)或具有类似功能的另一系统的形式。工作负载均衡模块180可以被配置为将从用户请求产生的工作负载分发到VM集群的VM实例121之间,以保持每个VM实例121的资源利用率值在其目标值内。工作负载均衡模块180可以基于每个VM实例121的资源利用率值来分发工作负载。可以通过将软件应用程序实例122重新分配给具有处理运行附加软件应用程序实例122的资源并且它们的资源利用率值低于或在目标值之内的VM实例121来优化每个VM集群120的计算资源。通过重新分配软件实例,可以减少操作VM集群120的VM实例的数量,从而在保持所需服务质量的同时节省成本。软件应用程序实例122的重新分配可以由弹性模块220和/或工作负载均衡模块180来执行。工作负载均衡模块180可以设置有用户位置模块182,用户位置模块182被配置为例如通过用户IP地址,识别发布用于访问应用程序的请求的用户的位置。数据传播模块183可以被提供以用于基于所识别的位置将数据传播到更靠近用户位置定位的主机设备上托管的VM实例,这可以减少用户为访问期望的应用而经历的延迟。分离逻辑181可以被提供以用于将由应用程序和/或用户处理、和/或生成和/或传输的数据分成公共部分和私有部分。数据传播模块183可以被配置为用于将数据的至少私有数据部分引导到托管在IaaS供应商170的主机设备上的VM实例121,该VM实例121具有安全处理数据的要求安全属性。

图8示出了根据本发明实施例的提供旅行相关服务的示例性云架构。如图6所示,在云平台100中可以提供多个旅行应用程序,每个旅行应用程序被配置为执行特定任务。例如,云平台100可以被配置为旅行购物平台,该旅行购物平台可由用户150通过网络160(例如互联网)来访问。旅行购物平台100可以设置有航班选择引擎400,航班选择引擎400被配置为使用户能够搜索来自不同旅行供应商的航班或其他旅行产品。用户150可以在搜索引擎中输入一系列标准,例如日期、时间、价格等,并且航班选择引擎300可以通过网络网关700在外部旅行管理系统(例如全球分发系统(GDS))的票价库存清单600中搜索,以识别匹配用户搜索标准的航班,这些航班被转发给用户进行选择。用户可以选择期望的航班,其信息被发送到票价处理引擎300,由此计算旅行产品的价格。一旦计算出票价数据,就需要验证票价的可用性。该步骤可由票价可用性引擎500应用程序执行。当票价的可用性得到验证后,就可以将其转发给用户进行预订。传统上,这些类型的应用程序是运行在物理计算服务器设备上的旅行管理系统的一部分。然而,随着云计算的出现,大部分旅行预订过程可能在IaaS供应商的云平台上执行,从而减轻维护大型数据中心的需求。为安全起见,涉及存储关键数据(例如旅行票价协商价格等)的过程的一部分可能仍由旅行服务供应商的实际托管设备操作。

通常,为实现本发明的实施例而执行的例程,无论是作为操作系统的一部分还是作为特定应用程序、组件、程序、对象、模块或指令序列或者甚至其子集来实现的,都可以在此称为“计算机程序代码”或简称为“程序代码”。程序代码通常包括计算机可读指令,这些计算机可读指令在不同时间驻留在计算机中的各种存储器和存储设备中,并且当被计算机中的一个或多个处理器读取和执行时,使该计算机执行执行操作所需的操作和/或体现本发明实施例的各个方面的元素。用于执行本发明的实施例的操作的计算机可读程序指令可以是例如汇编语言或以一种或多种编程语言的任意组合编写的源代码或目标代码。

本文描述的任何应用程序/模块中体现的程序代码能够作为程序产品以各种不同的形式单独或共同分发。特别地,可以使用其上具有计算机可读程序指令的计算机可读存储介质来分发程序代码,用于使处理器执行本发明的实施例的各个方面。

计算机可读存储介质(其本质上是非暂时性的)可以包括用于存储信息的以任何方法或技术实现的易失性和非易失性以及可移动和不可移动有形介质,例如计算机可读指令、数据结构、程序模块或其他数据。计算机可读存储介质还可以包括RAM、ROM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其他鲁棒状态存储技术、便携式光盘只读存储器(CD-ROM),或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可用于存储所需信息并可由计算机读取的任何其他介质。计算机可读存储介质本身不应被解释为瞬态信号(例如,无线电波或其他传播的电磁波、通过传输介质(例如波导)传播的电磁波,或通过电线传输的电信号)。计算机可读程序指令可以通过网络从计算机可读存储介质或外部计算机或外部存储设备下载到计算机、其他类型的可编程数据处理装置或其他设备。

存储在计算机可读介质中的计算机可读程序指令可用于指导计算机、其他类型的可编程数据处理装置或其他设备以特定方式运行,使得存储在计算机可读介质中的指令产生包括实现流程图、序列图和/或框图中指定的功能/动作的指令的制品。计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的一个或多个处理器以生产机器,使得经由一个或多个处理器执行的指令导致一系列计算被执行以实现流程图、序列图和/或框图中指定的功能和/或动作。

在某些替代实施例中,在不脱离本发明的范围的情况下,可以对流程图、序列图和/或框图中指定的功能和/或动作进行重新排序、串行处理和/或并发处理。此外,流程图、序列图和/或框图中的任意一个可以包括比与本发明实施例一致的所示的块更多或更少的块。

相关技术
  • 管理云计算平台的计算资源的方法及系统
  • 一种基于云计算平台的车辆管理系统及管理方法
技术分类

06120113250409