用于在云计算系统中规划应用的执行的方法和系统的制作方法

文档序号:6485255阅读:119来源:国知局
用于在云计算系统中规划应用的执行的方法和系统的制作方法
【专利摘要】在此公开了涉及规划在云计算系统(100)中的应用的执行的方法和系统。所述方法包括确定工作负载(122)是否导致与应用的执行相关联的异常。当确定在工作负载(122)下的应用的执行导致异常时,确定用于云计算系统(100)中的应用的执行的至少一个参数的值或动作。所述值或动作用于致力于解决所述异常。
【专利说明】用于在云计算系统中规划应用的执行的方法和系统
【背景技术】
[0001]云计算系统包括通过网络互连以执行特定计算任务(诸如,应用的执行)的多个硬件。应用是被设计以便于实施特定活动的计算机程序。例如,电子商务(E-co_erce)应用可以被设计成便于访问与产品相关的数据和购买所述产品。云计算系统便于支持应用的执行的基础设施的可扩展性。例如,支持基础设施可以包括在涉及服务器、网络和存储的计算平台上的硬件虚拟化。(硬件虚拟化是特定硬件的模仿并且可以用来促进访问或寻址虚拟资源)。硬件虚拟化的大小和配置可以依赖于计算需求而增加或降低,所述计算需求依据特定参数由应用的执行提出。硬件虚拟化可以例如依赖于用户的数量、响应时间、或所涉及的资源的性能而缩放。
[0002]支持应用执行的基础设施的技术特性通常被考虑以用于部署所述应用,并且特别地,以用于计算在云计算系统中的部署成本。然而,云系统是复杂和可扩展的。因此,推测应用可以如何被部署以及用于部署应用所涉及的成本可能是困难的。
【专利附图】

【附图说明】
[0003]附图描绘了发明的示例、实现方式和配置,而不是发明本身。
[0004]图1描绘了各种示例可以在其中被实现的环境。
[0005]图2描绘了依据示例的系统。
[0006]图3是描绘了图2中的系统的实现方式的框图。
[0007]图4是描绘了图2中的系统的实现方式的框图。
[0008]图5到7以及9是描绘了为实现示例所采取的步骤的流程图。
[0009]图8A描绘了图示图5中流程图的执行的示例的图形。
[0010]图SB描绘了汇总在图5中的流程图的执行期间发生的事件的表格。
[0011]图1OA到IOC描绘了与图2中的系统相关联的图形用户接口的示例。
【具体实施方式】
[0012]在之前的描述中,众多的细节被阐述以提供对在此公开示例的理解。然而,本领域的技术人员将理解所述示例可以在没有这些细节的情形下被实施。尽管有限数量的示例已被公开,但本领域的技术人员将从中认识到众多的修改和变化。旨在所附的权利要求覆盖落在示例的真实精神和范围内的此类修改和变化。
[0013]接下来的描述被分成多个部分。第一(标记为“环境”)描述了在其中各种示例可以被实现的示例性环境。第二部分(标记为“部件”)描述了用于实现各种示例的各种物理和逻辑部件的示例。第三部分(标记为“操作”),描述了被采用来实现各种示例的步骤。
[0014]环境:图1是在其中各种示例可以被实现的环境的示例的示意图。环境包括云计算系统100(在下文中被称为云100)。如在此所使用的,云计算系统是指包括通过网络操作地耦合的多个硬件使得它们能够执行特定计算任务的计算系统。云100包括物理硬件102、软件104和虚拟硬件106的组合。云100被配置成:(i)通过应用客户端设备从多个用户110接收请求108 ;以及(ii)返回请求响应112。借助于示例,云100可以是私有云、公共云或混合云。此外,云100可以是包括私有云(或多个私有云)和公共云(或多个公共云)的云计算系统的组合。
[0015]物理硬件102除了其他的之外可以包括:处理器、存储器设备和联网装置。虚拟硬件106是由物理硬件102处理并被设计以模仿特定软件的一类软件。例如,虚拟软件106可以包括虚拟机(VM),即支持应用的执行的计算机(像,物理机器)的软件实现方式。如在此所使用的,应用是指可由计算系统执行以便于实施特定任务的一组特定指令。例如,应用可以采用基于环球网(web)的工具的形式,该工具给用户提供特定的功能,例如,注册到在线服务、访问与产品相关的数据(即,浏览)、或购买产品。将被理解的是:如在此所使用的应用不限于电子商务应用,而是指支持使用计算资源执行特定任务的应用,除了其他的之外,诸如,企业应用、会计应用、多媒体相关应用、或数据存储应用。软件104是配置成导致虚拟硬件106执行应用的一组指令和数据。从而,云100可以使特定应用对于用户110是可用的。
[0016]执行云100中的应用可以涉及:从用户110接收多个请求108、依据由应用实现的特定功能处理请求108、以及返回请求响应112。为了执行所述应用,云100的资源(例如,物理硬件102、虚拟硬件104和软件106)可以依赖于在应用上提出的需求而被缩放。例如,云100可以依赖于请求的数量、与应用交互的用户的数量、或关于应用的性能的需求(例如,最大响应时间)而改变分配给应用的资源的大小。
[0017]通常,执行云100中的应用的成本取决于在应用的执行中涉及的云部件的技术特性,诸如(但不限于)所分配资源的大小、资源中部件的类型、或部件实例的数量和位置。由于云100的复杂性质,成本计算可能是困难的。此外,成本的先验计算可以涉及:所涉及云部件的技术特性的先验知识。在此描述的至少一些示例便于自动规划在云计算系统中执行应用的成本。
[0018]实现方式包括:在包括比期望工作负载低的第一工作负载的一组测试工作负载之下,确定工作负载是否导致与云计算系统中应用的执行相关联的异常。
[0019]例如,参考图1中所图示的环境,一组工作负载生成器114可以被操作地耦合到:
(i)云100以及(ii)确定主机系统116。确定主机系统116可以导致依据测试请求系统120的请求118执行自动的成本规划。如图中所图示的,工作负载生成器114和确定主机系统116可以在云计算系统中被部署。可替代地,工作负载生成器114和确定主机系统116可以被部署在建筑物上,即在请求成本的自动规划的个人或组织的建筑物中的计算机上运行。可替代地,工作负载生成器114和确定主机系统116可以被部署在依据测试请求系统120的请求而执行成本的自动规划的第三方的建筑物上。
[0020]工作负载生成器114包括配置成模仿用户以依据确定主机系统116发送的请求124在云100中的应用的执行时施加工作负载122的硬件和软件资源。工作负载122是一组测试工作负载的一部分。工作负载122比期望的工作负载低,期望的工作负载例如是当使应用对于真实用户可访问时被认为是可能的工作负载。工作负载122可以包括接下来的特定方面中的至少一个:(i)应用的用户的数量;(ii)使用的时间;(iii)用户行为。(针对电子商务应用的用户行为的示例是:一定百分比的用户仅执行与所述应用相关联的浏览,另一百分比的用户执行浏览和购买,进一步百分比的用户注册使用服务)。
[0021]为了确定工作负载122是否导致与应用的执行相关联的异常,确定主机系统116可以通过把监控请求分组126发送到云100并且从云100接收监控信息分组128而监控应用的执行。从而,确定主机系统116可以监控与云100中的应用的执行相关联的一组度量。依据某些条件(在下面的示例中进一步图示的),所监控的度量可以对应于异常。例如,异常可以对应于所监控组的度量与正常行为规则的偏离,所述偏离可以指示云100中应用的异常执行。确定主机系统116可以断定所监控的度量对应于异常。可替代的,另一个系统(未示出)可以断定工作负载122导致异常,并且把异常信号发送到确定主机系统116,使得该后一系统可以确定工作负载122导致异常。
[0022]实现方式进一步包括:当确定在所述工作负载组中的负载之下的应用的执行导致异常时,自动确定用于云计算系统中应用的执行的动作,所述动作用于致力于解决所述异常。例如,确定主机系统116可以确定在工作负载122之下的应用的执行导致异常(例如,与应用相关联的进程的响应时间太长)。然后,确定主机系统116 (或与其操作地耦合的另一个系统)可以自动确定用于在云计算系统中执行应用的动作,所述动作致力于解决异常。借助于示例,确定主机系统116可以确定复位执行所述应用的VM和/或分配用于执行所述应用的另外的VM来致力于解决所确定的异常。所确定的动作可以防止应用的真实部署中的异常的发生。
[0023]实现方式进一步包括:计算使用所确定的动作在期望工作负载之下执行所述应用的成本。例如,确定主机系统116 (或与其操作地耦合的另一个系统)可以计算采用所确定的动作执行所述应用的成本,例如,使用另外的VM执行所述应用的成本。如下面所阐述的,以上步骤可以被重复以用于变化的工作负载,使得确定主机系统116能够确定用于解决异常的一组动作,所述异常可以在期望工作负载之下在云100中执行应用期间发生。确定主机系统116然后可以计算采用所确定的动作执行应用的成本。确定主机系统116可以发送与自动成本规划相关联的结果130。
[0024]与以上所描述的示例相比,已知方法和系统中的至少一些仅描述了:(a)评估云应用开发和运行时间平台(例如,参见“采用服务架构评估云平台体系结构(EvaluatingCloud Platform Architecture with the Care Framework)”,赵等,2010 年亚太软件工程会议),(b)应用供给策略的仿真(例如,参见“云分析:用于建模和分析大规模云计算环境的基于云仿真的工具(CloudAnalyst: A CloudSim-based Tool for Modeling and Analysisof Large Scale Cloud Computing Environments),,,Wickremasinghe,分布式计算项目433-659,CSSE系,墨尔本大学,或者“云仿真,用于建模和仿真云计算环境并评估资源供给算法的工具包(Cloudsim a Toolkit for Modeling and Simulation of Cloud ComputingEnvironments and Evaluation of Resource Provisioning Algorithms,,),Calheiros等,软件:实践与经验,第41卷,第I期,第23-50页,2011年I月),或者(c)用于寻找最优控制策略的基于仿真的方法,“统计机器学习使自动控制应用于互联网数据中心(StatisticalMachine Learning Makes Automatic Control Practical for Internet Datacenters),,,Bodik等,2009年云计算热点主题会议的HotCloud’ 09论文集)。以上的示例便于考虑了与应用的执行相关联的云计算系统的资源的技术特性的成本的估计。此外,以上的示例便于防止应用部署期间异常的发生。
[0025]部件:图2到4描绘了用于实现各种示例的物理和逻辑部件的示例。图2描绘了用于自动确定至少一个参数以用于在云计算系统(例如,云100)中执行应用的系统200。如在此所使用的,用于在云计算系统中执行应用的参数可以对应于能够在应用的执行期间具有特定值的任何变量,所述变量的值影响应用的执行。借助于示例,此类变量可以包括接下来的任何一个:(i)用于执行应用的部件的类型(例如,环球网服务器、应用服务器和数据库),(ii)每个部件实例的数量,或者(iii)实例的特定配置(例如,所分配的存储器或处理能力)。系统200包括测试引擎202、异常确定引擎204、参数确定引擎206以及(任选地)成本计算引擎218。
[0026]测试引擎202通常表示配置成促使在一组测试工作负载下在云计算系统中的应用的执行的硬件和编程的任何组合。借助于示例,本组测试负载可以包括从第一工作负载增加到期望工作负载的工作负载(如下面相对于图8A所图示的)。测试引擎202可以执行这个任务,通过(i)向云100发送请求以使用一组特定的物理硬件102、软件104和虚拟硬件106执行所述应用,以及(ii)在云100中执行所述应用时,发送请求124至工作负载生成器114以生成工作负载122,以及在工作负载组中的其他工作负载。测试引擎202可以使用数据存储中存储的工作负载数据208以用于促使在工作负载组之下的应用的执行。工作负载数据208可以包括与期望的工作负载相关联的数据。
[0027]依据至少一些示例,测试引擎204可以促使在沙箱(sandbox)环境中执行所述应用。如在此所使用的,沙箱环境是与外部用户隔离的云计算系统中的测试环境。例如,应用可以在云100中被执行,使得仅工作负载生成器400和确定主机系统116可以使用所述应用。从而,防止外部用户(例如,用户110)可能打扰如在此描述的过程的操作。
[0028]异常确定引擎204通常表示配置成确定工作负载组是否导致与应用的执行相关联的异常的硬件和编程的任何组合。异常确定引擎204可以通过在工作负载组中的工作负载下应用的执行期间监控与执行相关联的度量是否对应于异常而执行这个任务。可替代地,异常确定引擎204可以处理由另一个系统生成的信号,以用于确定工作负载组导致与应用的执行相关联的异常。异常确定引擎204可以确定与工作负载组相关联的一个以上的异常。异常确定引擎204可以把与所确定的异常相关的信息存储为异常数据212。
[0029]参数确定引擎206通常表示被如下配置的硬件和编程的任何组合:当异常确定引擎204确定在工作负载组中的工作负载下的应用的执行导致异常时,确定与云计算系统中的应用的执行相关联的至少一个参数的值,所述至少一个参数的值用于致力于解决异常。参数确定引擎206可以通过按照顺序地测试从多个动作中选择的动作执行这个任务。
[0030]借助于示例,参数确定引擎206可以使用在数据存储210中存储的动作数据214从多个动作中选择动作。动作的一个示例是添加用于执行应用的部件的进一步的实例。参数确定引擎206然后可以确定所选择的动作是否适合致力于解决所述异常(如相对于图7、8A和SB在下面进一步详述的)。当确定动作适合致力于解决异常时,参数确定引擎206可以确定与实现所确定动作的应用的执行相关联的参数值。向回参考以上的示例,可以确定采用部件(例如,数据库的四个实例)的特定数量的实例执行应用致力于解决所述异常。
[0031]如果异常确定引擎204确定与工作负载组相关联的一个以上的异常,则参数确定引擎206可以确定致力于解决异常的至少一个参数的值。所确定参数的值可以被作为参数数据216存储在数据存储210中。例如,确定引擎204可以确定对应于部件(例如,环球网服务器)的非正常的长响应时间和部件(例如,数据库)的非正常的高使用的异常;可以确定使用环球网服务器的两个实例和数据库的四个实例执行所述应用致力于解决两个异常。此夕卜,参数确定引擎206可以在动作数据214中存储特定动作解决了(或尚未解决)特定异常。后者可以便于构建知识数据库以用于寻找致力于解决特定异常的动作。
[0032]系统200可以进一步包括被如下配置的成本计算引擎218:计算使用所确定的至少一个参数的值在期望工作负载下执行所述应用的成本。成本计算引擎218可以通过评估成本来执行这个任务,所述成本与使用作为参数数据216存储的所确定参数值在云100中对应用的执行相关联。与所计算的成本相关的信息可以被作为成本数据220存储在数据存储210中。
[0033]在之前的讨论中,各种部件被描述为硬件和编程的组合。此类部件可以被以多种方式实现。参看图3,编程可以是在有形存储器介质302 (在下文中称为存储器302)上存储的处理器可执行的指令,以及硬件可以包括用于执行那些指令的处理器304。存储器302可以被说成存储程序指令,当所述程序指令由处理器304执行时实现图2中的系统200。存储器302可以与处理器304被集成在相同的设备中,或者它可以是独立的,但是可由那个设备和处理器304访问。
[0034]在一个示例中,程序指令可以是:可以由处理器304执行来实现系统200的安装包的一部分。在这种情形下,存储器302可以是便携式介质(诸如,CD、DVD、或闪存驱动器)或由安装包可以从其被下载和安装的服务器维护的存储器。在另一个示例中,程序指令可以是已安装的一个或多个应用的一部分。在这里,存储器302可以包括诸如硬盘驱动器的集成存储器。
[0035]在图3中,存储器302中存储的可执行程序指令被描绘为测试模块306、异常确定模块308、参数确定模块310和成本计算模块312。测试模块306表示当被执行时促使实现图2中的测试引擎202的程序指令。同样地,异常确定模块310表示当被执行时促使实现异常确定引擎204的程序指令;参数确定模块310表示当被执行时促使实现参数确定引擎206的程序指令;成本计算模块312表示当被执行时促使实现参数确定引擎218的程序指令。
[0036]作为进一步的示例,图4描述了图示图2中的系统的实现方式的框图。在所示的示例中,系统200由确定主机系统116实现。确定主机系统116被经由网络408操作耦合到请求设备120、工作负载生成器400和云100。
[0037]在图4的示例中,确定主机系统116被示出为包括存储器402、处理器404、和接口 406。处理器404通常表示配置成执行在存储器402中存储的程序指令以执行各种指定功能的任何处理器。接口 406通常表示能够使确定主机系统116经由网络408与请求设备120、工作负载生成器400和云100通信的任何接口。
[0038]存储器402被示出为包括操作系统410和应用412。操作系统410表示程序的收集,当该程序由处理器404执行时用作应用412可以在其上运行的平台。操作系统的示例除了其他的之外包括各种版本的微软Windows?和Linux?。
[0039]应用412表示当被处理器404执行时用作促使依据来自请求设备120的请求自动确定在云100中执行应用的至少一个参数的服务。当应用412被执行时还可以用作促使在由工作负载生成器400生成的一组测试工作负载下执行云100中的应用的服务。此外,当应用412被执行时还可以用作促使确定所述工作负载组是否导致与应用的执行相关联的异常的服务。此外,当应用412被执行时还可以用作促使确定与如在此描述的云计算系统中的应用的执行相关联的至少一个参数的值的服务。此外,当应用412被执行时还可以用作促使计算使用所确定的至少一个参数的值在期望工作负载下执行应用的成本的服务。
[0040]参见图2,测试引擎202、异常确定引擎204、参数确定引擎206和成本计算引擎218被描述为硬件和编程的组合。取决于系统200的特定配置,硬件部分可以被实现为处理器404。取决于系统200的特定配置,编程部分可以由操作系统410、应用412或其组合来实现。
[0041]请求设备120可以被实现为任何适于下述的计算系统:(i)与确定主机系统116通信,(ii)生成当由确定主机系统116处理时促使用于执行如在此描述的云100中的应用的至少一个参数的确定的请求,(iii)从确定主机系统116接收与所述请求相关联的结果,以及(iv)显示与所接收的结果相关联的信息。通常,请求设备120被配置成执行用于接收和处理来自与将被测试的应用的期望工作负载相关联的测试请求者的输入的图形用户接口(⑶I)(如下面相对于图1OA到IOC进一步详述的)。请求设备120包括:配置成实现其在此描述的功能的处理器、接口、和存储器(未示出)。
[0042]工作负载生成器400是配置成模仿真实用户110 (参见图1)的计算设备。工作负载生成器400通常包括:配置成实现其在此描述的功能的处理器、接口、和存储器(未示出)。工作负载生成器可以被配置成模仿多个用户。此外,工作负载生成器可以被配置成使用不同的通信协议(诸如(但不限于)一个/多个环球网(Web) HTTP、远程终端模仿器、甲骨文(Oracle)或环球网服务)通过网络400与云100通信,以用于模仿真实用户。在一些示例中,工作负载生成器400可以是具有足够能力来生成对应于多个用户的特定工作负载的单个机器。
[0043]操作:图5到7和9是实现用于自动规划在云计算系统中执行应用的成本的方法的示例所采取的步骤的示例性流程图。在图5到7和9的讨论中,参考了图1-4中的示图以提供上下文的示例。然后,实现方式不限于那些示例。还参考了图8A、8B、10A到IOC中所描绘的示例。再次,此类参考被简单做出以提供上下文的示例。
[0044]现在参考图5,处理流程500包括确定工作负载是否导致与一组测试工作负载下的云计算系统中的应用的执行相关联的异常的步骤502,所述测试工作负载包括比期望工作负载低的第一工作负载。向回参考图2,测试引擎202和异常确定引擎204可以负责来实现步骤502。
[0045]现在还参考图6,步骤502包括确定期望工作负载以便在云100中的特定应用的执行上执行测试的子步骤602。在示例中,请求设备120通过适合的GUI从请求者接收输入数据。输入数据与期望工作负载相关联。这个输入数据可以包括定义包括不同情况的期望工作负载的脚本。借助于示例,情况可以包括使用所述应用的多个用户、情况的持续时间、和特定用户行为。确定主机系统116可以从请求设备120接收此类数据,以用于确定期望工作负载。在另一个示例中,确定主机系统116被配置以用于使请求者能够直接输入与期望工作负载相关联的数据,或自动定义期望工作负载。在下面进一步阐述的示例中,与期望工作负载相关联的数据通过监控使用所述应用的测试者的动作而被自动确定。
[0046]向前参见图10A,⑶I 1000是用于定义期望工作负载的⑶I的示例。更具体地,⑶I 1000用于定义与宠物产品相关的电子商务商店应用的期望工作负载。在⑶I 1000(以及在此所述的其他GUI)中,不可编辑字段由灰色填充指示;可编辑字段由空白填充指示。[0047]⑶I 1000可以包括具有列1020、1030、1040的表格1010。列1020用于指示特定
情况的字段。在示例中,期望工作负载与‘正常’情况1050、‘营销’情况1060、‘宠物节’情况1070和‘黑色星期五’情况1080相关联。(黑色星期五是继美国感恩节后的日子,传统上是圣诞购物季的开始)。列1030用于指示与特定情况相关联的用户的数量的字段。列1040用于以天(d)-小时(h)_分钟(m)的格式指示特定情况的持续时间的字段。
[0048]‘运行’按钮1090允许请求者促使针对特定情况的处理流程500的执行。‘行为’按钮1100准许测试请求者访问GUI以便在特定情况下指定用户的行为(如下面相对于图1OB进一步详述的)。‘所估计的成本’按钮1110准许测试请求者访问显示所估计成本的GUI(如下面相对于图1OC进一步详述的)。‘添加情况’按钮1120允许测试请求者通过在表格1010中插入进一步可编辑行来添加进一步的情况。
[0049]向前参见图10B,⑶I 1130是用于定义与特定情况相关联的用户行为的⑶I的示例。在所图示的示例中,⑶I 1130用于定义与情况‘营销’相关联的用户行为。⑶I 1130包括具有列1150、1160的表格1140。列1150用于指示用户行为类型的字段。在示例中,所指示的用户行为类型是‘浏览’ 1170、‘浏览&购买’ 1180、和‘注册’ 1190。浏览行为类型‘浏览’对应于用户使用应用仅用于浏览产品信息。浏览行为类型‘浏览&购买’对应于用户使用应用来浏览产品信息和购买产品。浏览行为类型‘注册’对应于用户注册以便使用所述应用。列1160用于指示采用相关联的行为寻址所述应用的用户的百分比的字段。将被理解的是:行为类型中的每一个对应于应用的不同期望工作负载。
[0050]继续图5和6,步骤502可以包括定义包括比期望工作负载低的第一工作负载的一组工作负载的子步骤604。在示例中,测试引擎202可以定义一组测试工作负载,所述测试工作负载便于自动确定用于在期望工作负载下在云计算系统中执行应用的至少一个参数。通常地,工作负载组被选择成使得能够检测可能影响期望工作负载下的应用的执行的异常。在一个示例中,工作负载组包括从第一工作负载增加到期望工作负载的工作负载(如下面相对于图7和图8A进一步详述的)。将被理解的是:其他类型的工作负载组也被考虑。例如,工作负载组可以包括一组偶然工作负载或一组预定临界工作负载(即,作为可能导致应用执行中的异常的先验已知的工作负载)。
[0051]步骤502可以包括促使在一组测试工作负载下云计算系统中应用的执行的子步骤606。在示例中,测试引擎202促使工作负载生成器400生成所定义的工作负载组中的工作负载。测试引擎202可以把虚拟用户和工作负载生成器分配到特定情况。每个虚拟用户可以与特定行为相关联。然后,工作负载生成器400可以依据来自测试引擎202的分配在云100中运行的应用上生成工作负载。
[0052]步骤502可以包括监控应用执行的子步骤608。在示例中,异常确定引擎204监控在由工作负载生成器400生成的工作负载下云100中的应用的执行。子步骤608可以包括监控应用的不同部件,诸如(但不限于此)防火墙、负载平衡器、环球网服务器、应用服务器、或数据库服务器、以及诸如(但不限于)虚拟化云计算系统中的部件的单独VM的每个部件的单独实例。监控可以进一步包括确定与所监控的部件的不同度量相关联的值。此类值除了其他的以外可以包括响应时间、CPU使用率、存储器使用率或等待时间。
[0053]步骤502可以包括断定异常是否发生的子步骤610。在示例中,异常确定引擎204评估监控期间所需的度量。当度量值充分偏离与应用的正常执行相关联的预设定值时,异常确定引擎204可以断定异常发生。将被理解的是:执行子步骤610的其他方法也被考虑。例如,可以使用预定度量正常行为检测异常;当其采样值偏离度量正常行为时,所监控的度量可以被指派为非正常行为;然后,可以计算被指派为非正常的监控度量的显著性;最后,可以基于非正常度量的显著性确定异常。
[0054]将被理解的是:子步骤602-610中的一些可以不必需由系统200执行。在示例中,确定主机系统116被操作耦合到工作负载控制器(未示出)。工作负载控制器被配置成执行子步骤602-608。例如,工作负载控制器可以是被如下配置的系统:执行惠普负载运行器(Load Runner)软件(美国加州惠普公司)以便自动测试在云计算系统中执行的应用。此外,子步骤610可以被与耦合到确定主机系统116的异常确定设备(未示出)一起被执行。异常确定设备可以生成与云计算系统中的应用的执行中的异常相关联的信号。确定主机系统116可以接收和处理异常信号,以通过异常确定引擎204断定工作负载组中的工作负载是否导致与云100中的应用的执行相关联的异常。
[0055]继续图5,在步骤504,步骤502的结果被评估以决定处理流程500中的进一步的过程。步骤504可以由异常确定引擎204执行。如果确定异常发生,则处理流程500走到步骤506。如果确定无异常发生,则处理流程500向回走到步骤502,其然后被针对工作负载组中的另一个工作负载重复。可替代地,处理流程500可以结束。
[0056]在步骤506,来自多个动作的动作被确定以用于致力于解决在步骤502确定的异常。参考图2,参数确定引擎206可以负责实现步骤506。通常地,参数确定引擎206确定用于使用所确定的动作执行应用的至少一个参数的值。用于致力于解决所述异常的动作可以被使用异常和用于解决所述异常的动作之间的预定关联性(例如,把异常与动作相关的关系数据库)确定。
[0057]可替代地,用于致力于解决异常的动作可以通过即时建立用于致力于解决所确定的异常的动作而确定。例如,依据下面相对于图7进一步图示的示例,确定动作包括:(i)顺序地测试从用于云计算系统中的应用的执行的多个动作中选择的动作,以及(ii)确定所选择的动作是否解决所述异常。
[0058]依据另一个示例,确定动作包括使用训练过的分类器,所述分类器与(i)和异常相关联的量化度量以及(ii)执行用于致力于解决异常的动作的结果相关。动作可以被基于特定动作解决异常的可能性确定。那个可能性可以被通过训练过的分类器计算。可以被使用的训练过的分类器的示例包括:K-最近邻居分类器、支持向量机分类器、或贝叶斯网络分类器。识别用于致力于解决异常的动作可以包括从多个动作中选择动作,多个动作中的每个动作与成本值相关联。然后,所选择的动作可以对应于来自多个动作中的、具有以最小的成本解决动作的较高可能性的动作。
[0059]一旦步骤506结束并且用于解决异常的动作被确定,步骤502、504和506可以顺着闭环507针对工作负载组中的另一个工作负载重复。例如,图5中所描绘的过程可以被针对工作负载组中的所有负载执行。从而,多个异常可以被确定,以及用于致力于解决所确定的异常的相应的动作被确定。
[0060]可替代地,一旦步骤506结束,在步骤58可以计算:为了防止异常(或多个异常)使用所确定的动作(或多个动作)在所期望的工作负载下执行应用的成本。参考图2,成本计算引擎218可以负责实现步骤508。步骤506可以包括确定用于使用所确定的动作执行应用的参数的值。成本计算引擎218可以使用用于在云100中执行应用的参数的值与相关的成本之间的预先确定的关联性。成本计算引擎218可以向云100中服务的提供者发送请求,以便获得依据用于执行应用的所确定的参数的值执行应用的成本。
[0061]依据一些示例,计算执行应用的成本包括:针对期望情况的混合并在所选择的时间段期间计算执行应用的成本。从而便于与特定云计算系统中应用的执行相关联的成本的实际估计。依据一些示例,计算执行应用的成本包括:估计每个用户的成本。从而便于通过采用防止所确定的异常的参数值执行应用所提出的需求的规划。
[0062]依据一些示例,处理流程500可以针对多个期望工作负载执行。例如,多个工作负载可以被定义,期望工作负载中的每一个与期望情况相关联(参见针对不同情况的示例的图10A)。然后,步骤502到508中的每一个可以针对每个期望工作负载执行。在步骤508,与相应情况相关联的成本可以被计算。
[0063]处理过程500可以(任选地)进一步包括:促使针对测试请求者显示所计算的成本的步骤(未示出)。例如,成本计算引擎218可以促使确定主机系统116把结果数据130发送到测试请求系统120。测试请求系统120处的⑶I可以显示与成本计算相关联的数据。可替代地,确定主机系统116本身可以运行此类⑶I。向前参见图10C,⑶I 1200是用于显示与在此所描述的成本计算相关联的信息的CTI的示例。GUI 1200特别地示出了:采用在图1OA和IOB中的示例中定义的期望工作负载执行与宠物产品相关的电子商务商店应用的自动规划的成本的成本概述。
[0064]⑶I 1200包括显示每个用户的平均成本1212以及每个交易的平均成本1214的“汇总’字段1210。⑶I 1200进一步包括‘规划’字段1220,其显示了以每小时用户数为单位的可编辑‘期望负载’字段1222、‘每个用户的所计算的成本’字段1224、‘所计算的每小时成本’字段1226、以 及‘所计算的每月成本’字段1228。可编辑‘期望负载’字段1222允许测试请求者输入每小时的用户的值,并且通过字段1224、1226、1228获得与那个期望负载相关联的成本的猜测。字段1222中所输入的值与字段1224、1226、1228中所输入的值之间的关联性可以通过外推如在此所描述的过程中获得的结果来执行。‘规划’字段1220还可以包括‘每月最大预算’字段1230和‘基于预算的所计算的负载’字段1232。可编辑的‘每月最大预算’字段1230允许测试请求者输入最大可用预算的值,并通过字段1232获得此类预算能够维持的负载的猜测。
[0065]⑶I 1200进一步包括‘学习的缩放规则’字段1240。字段1240显示:成本规划期间所检测的异常的列表1242、异常期间基础设施状态的列表1244、被确定以致力于解决异常的动作的列表1246。字段1240显示涉及与所测试的应用相关联的进程的执行的三个异常。第一异常对应于进程‘CompFood.aspx’缓慢。与这个异常相关联的基础设施的状态是:(i )运行该进程的逻辑服务器未正常工作,如标签“失常(Wrong)”所指示的,以及(ii )运行该进程的环球网服务器正常工作,如标签“好(Ok)”所指示的。被确定以解决这个异常的动作正添加逻辑服务器。第二异常对应于进程‘ViewPet.aspx’缓慢。与这个异常相关联的基础设施状态是:运行所述进程的环球网服务器未正常工作,如标签“失常”所指示的。被确定以解决这个异常的动作正增加运行环球网服务器的VM的大小。第三异常对应于:(i)进程‘CompFood aspx’不可用,以及(ii)进程‘Login, aspx’缓慢。与这个异常相关联的基础设施状态是:(i)与这些进程相关联的数据库未正常工作,如标签“失常”所指示的,(?)运行这些进程的逻辑服务器正常工作,如标签“好”所指示的,以及(iii)运行这些进程的环球网服务器正常工作,如标签“好”所指示的。被确定以解决这个异常的动作正添加数据库的实例。
[0066]⑶I 1200进一步包括图形1250,其使用饼图显示与被定义以用于规划成本的情况中的每一个相关联的成本的分数。在这个示例中,正常负载情况占成本的74% ;营销情况占成本的6% ;宠物节情况占生成的9%,以及黑色星期五情况占成品的11%。⑶I 1200进一步包括情况字段1260,其针对每个情况显示:示出了情况的使用特性的图形1262,更具体地,随时间分布的用户的数量。情况字段1260进一步包括:针对每个情况的滑动条1264,其使测试请求者能够输入与每个情况相关联的天数。考虑到滑动条1264的位置,图形1250和1262被更新。
[0067]图7是图示了处理流程700的处理流程图。处理流程700对应于图5中方法的特定实现方式。接下来,处理流程700被参考图8A和SB中所描绘的元素描述。图8A示出了图示在处理流程700的执行期间变化的工作负载802的示例的图形,以及处理流程700的执行期间的所监控的度量804的变化的示例。度量804被监控以用于确定特定工作负载是导致异常。图SB是示出了在处理流程700的执行的示例期间发生的事件的表格810。
[0068]在步骤702,初始工作负载806被设置。工作负载806形成工作负载组的一部分,并且比期望工作负载808低。借助于示例,初始工作负载806对应于比期望工作负载中用户的数量低并具有相同的用户行为和使用时间的用户的数量。初始工作负载806可以被选择得足够低,使得仍然较低的工作负载导致异常的可能性是可以忽略的。从而便于检测影响应用的执行的可能的异常。在图示的示例中,工作负载组包括初始工作负载806和期望工作负载808之间的工作负载。步骤702可以由测试引擎202执行,其可以导致工作负载生成器400生成关于正在云100中被执行的应用的工作负载600。
[0069]在步骤704,判定工作负载(在这个阶段,初始工作负载806)是否导致异常。这个步骤可以由异常确定引擎204以类似于以上相对于图5中的处理流程500的步骤502、504所描述的方式执行。如果判定所述工作负载未导致异常,则处理流程700走到步骤712以增加工作负载(即,步骤714),或如果工作负载组中的所有工作负载已被测试,则终止处理流程700。例如,如处理流程的开端部分和事件A之间图8A的部分处所图示的,初始工作负载806和工作负载812之间的工作负载未导致任何的异常(如保持在正常水平814的度量804所指示的)。因此,顺着闭环718,变化的工作负载802在初始工作负载806和工作负载812之间被稳步增加。
[0070]如果判定工作负载导致异常,则用于确定所选择的动作是否解决异常的动作的顺序测试在步骤706处被执行。这个状况在图8A中的图形的事件A处出现,如由升至非正常值816的度量804指示的。例如,度量804可以对应于与应用相关联的进程(例如,用于计算依据某些用户输入计算将在环球网服务器上显示的变量的值的进程)的响应时间。所检测的事件A的异常可以与预定最大响应时间(例如,8秒钟)以上的响应时间相关联。
[0071]在步骤708,动作被从多个动作中选择。在图8A和8B所图示的示例中,多个动作包括:增加环球网前端服务器的大小、增加逻辑服务器的大小、以及添加逻辑服务器。将被理解的是:多个动作可以包括:可以致力于解决云计算系统中应用的执行中的异常的任何动作。步骤708可以由参数确定引擎206实现。将被理解的是:每个动作与用于执行应用的特定组的参数值相关联。
[0072]在步骤710,判定在步骤708所选择的动作是否解决异常。步骤710可以由异常确定引擎204执行。例如,测试引擎202可以促使使用所选择的动作执行应用,以及异常确定引擎204可以确定在步骤704被监控为具有非正常值的度量是否由于所选择的动作而返回到正常值。如果确定在步骤708的动作选择未解决所述异常,则处理流程700可以顺着闭环709返回到步骤708,并选择另一个动作。如果确定在步骤708所选择的动作解决所述异常,则处理流程700走到步骤712。
[0073]步骤706处的顺序测试在图8A的事件A和E之间的部分处被图示。事件A是检测由度量804到非正常水平814的非正常上升导致的异常。事件B是选择动作,即增加与应用的执行相关联的环球网前端服务器的大小。随后,确定这个动作未解决所述异常,如度量804所图示的,其在事件B之后保持在非正常的水平816。事件C是选择另一个动作,即增加与应用的执行相关联的逻辑服务器的大小。随后,确定这个动作未解决异常,如度量804所图示的,其在事件C之后保持在非正常的水平816。事件D是选择又一个动作,即添加与应用的执行相关联的逻辑服务器。如由事件E之后度量804的减小所阐明的,这个动作解决所述异常。事件E是确定与事件D相关联的动作解决所述异常,如度量804所图示的,其降回到了正常水平814。
[0074]现在向回参考图7,步骤710 (即,判定在步骤708所选择的动作是否解决在步骤704确立的异常)可以包括验证所选择的动作解决异常。验证可以包括:(i)撤销被确定已解决所述异常的动作,(?)随后确定由所撤销动作解决的异常是否再次出现;(iii)随后重新选择被确定解决了所述异常的动作,以及(iv)确定重新选择的动作是否解决异常。
[0075]这在图8A中事件F和I之间的图形中被图示。事件F是撤销被确定解决了异常的动作,即移除与应用的执行相关联的逻辑服务器。事件G是确定由所撤销的动作解决的异常再次出现。事件H是随后重新选择被确定为解决了所述异常的动作,即添加与应用的执行相关联的逻辑服务器。如由事件H之后的度量804的减小所阐明的,这个动作再次解决所述异常。事件I是确定与事件D相关联的动作解决如度量804所图示的异常,其降回到正常水平814。
[0076]依据在此的一些示例,顺序测试动作的次序被基于动作解决异常的可能性/7以及与该动作相关联的成本选择。例如,每个动作可以关联于成本函数凡成本函数/^可以具有接下来变量中的一个或多个:(a)执行该动作的实际货币成本A (b)执行该动作所需的时间r,以及(C)采用该动作的风险/P。成本函数可以是标准化函数,即在ο和I之间取值的函数。
[0077]此外,每个动作可以与训练过的分类器相关联,所述分类器涉及(i )与异常相关联的量化度量,以及(ii)执行用于致力于解决异常的动作的结果。动作解决异常的可能性/7可以被使用训练过的分类器计算。可以被使用的训练过的分类器的示例包括:κ-最近邻居分类器、支持向量机分类器或贝叶斯网络分类器。
[0078]—旦异常被检测,可以针对每个动作计算解决所述异常的可能性P。例如,对于每个动作,分数^可以被基于可能性/7和标准化成本函数Z7[尤Τ,幻计算。例如,分数S可以被依据接下来的关系计算A = Z7 (1- F[$, T,幻),即可能性越高,分数S也高;成本越高,分数^越低。然后,动作可以被依据分数排序:具有较高分数的动作将为顺序测试首先选择。动作的此类排序便于找到解决异常的适合的动作。应指出的是:测试动作是否解决异常可以带来由云资源的使用所导致的货币成本以及时间消耗过程。
[0079]向回参考图7,在步骤710处确立异常被解决之后,处理流程700走到步骤712,其中判定实际工作负载是否对应于标准工作负载。如果实际工作负载不对应于标准工作负载,则工作负载被增加,并且处理流程通过闭环718返回到步骤704以确定新工作负载是否导致异常并且如以上描述进一步进行。这在图8A中事件I和图形的末端之间的图形中被图示,其中变化的工作负载802从工作负载812到期望工作负载808连续增加,而没有检测到任何进一步的异常。
[0080]如果实际工作负载对应于标准工作负载,则处理流程700退出闭环718并走到步骤716。这个状况在图8A中所示的图形的末端处出现。在步骤716,为了防止异常使用所确定的动作(或多个动作)在期望工作负载下执行应用的成本可以按照计算类似于在步骤508处的计算方式而加以计算。
[0081]图9是图示处理流程900的处理流程图。处理流程900对应于图5中的方法的特定实现方式。在步骤902,监控真实用户的行为。步骤902可以由测试引擎202执行。例如,测试引擎202可以促使确定主机引擎116把监控请求分组126发送到云100,以请求关联于用户110与100中正在执行的特定应用的交互的监控信息。这个监控信息可以包括与用户110相关联的度量值,诸如(但不限于)用户的数量、使用时间、或用户行为。然后,确定主机系统116可以接收包括所请求的监控信息的监控信息分组128。然后,测试引擎202可以处理监控信息分组128以提取用于执行步骤902的相关信息。
[0082]在步骤904,期望的工作负载被学习。通常地,在步骤902获得的监控信息被用于学习期望工作负载。学习期望工作负载可以包括确定工作负载的特定方面,诸如(但不限于)用户的数量、使用时间、和用户行为。在步骤904,多个期望工作负载可以被学习。多个期望工作负载中的每一个与期望情况相关联。在那个情形下,可以针对多个期望工作负载执行处理流程900中的进一步的步骤。确定主机系统116可以通过处理监控信息分组128执行步骤904。
[0083]在步骤906,工作负载仿真被执行以自动学习可能影响在期望工作负载下在云计算环境中执行应用的动作。步骤906可以包括自动检测可能影响在期望工作负载下在云计算环境中执行应用的异常的子步骤908。子步骤908可以通过在一组测试工作负载下在云计算系统中执行应用并检测由工作负载组中的工作负载产生的异常来实现(类似于以上相对于图5到8B所描述的)。
[0084]步骤906可以包括学习用于解决在子步骤908检测的异常的动作的子步骤910。子步骤908可以通过顺序测试动作并确定所选择的动作是否解决异常来实现(类似于以上相对于图7所描述的(参见步骤706))。
[0085]处理流程900可以包括推荐用于解决特定异常的动作的步骤912。例如,参数确定引擎206可以确定用于解决特定异常的一组动作。参数确定引擎216然后可以促使确定主机系统116把结果130作为对之前测试请求118的响应发送到测试请求系统120。结果130然后可以包括与动作相关的信息,所述动作用于解决可能在云100中特定应用的执行期间出现的特定异常。这个信息可以通过测试请求系统120处的GUI显示(例如参见图1OC中的‘学习缩放规则’字段1240)。[0086]处理流程900可以包括存储学习的数据的步骤914。例如,动作确定引擎206可以促使确定主机系统116在数据存储210中存储学习的数据。这个数据可以包括工作负载数据208、异常数据212、动作数据214、或参数数据216中的任何一个。从而知识数据库可以被构建,其不仅便于考虑了应用的适合大小的成本估计,还致力于解决可能影响现实生活部署期间应用的执行的异常。
[0087]处理流程900可以包括使用学习的数据计算成本的步骤916。成本计算可以考虑学习的动作以提供采用防止异常发生的参数执行应用的成本。步骤916可以类似于图5中所示的步骤508实现。可以针对多个期望工作负载执行步骤916,期望工作负载中的每一个与用于防止异常发生的相应的动作组相关联。
[0088]结论:图1-4帮助描绘各种实施例的体系结构、功能和操作。特别地,图2-4描绘了各种物理和逻辑部件。在图2-4中所图示的各种部件至少部分被定义为程序、编程或程序指令。每个此类部件、其部分、或其各种组合可以完全或部分表示:包括一个或多个可执行指令以实现任何指定的(一个或多个)逻辑功能的模块、程序段或部分代码。每个部件或其各种组合可以表示:实现指定的(一个或多个)逻辑功能的电路或多个互连电路。
[0089]实施例可以在任何的计算机可读介质中被实现,以便由指令执行系统(诸如,基于计算机/处理器的系统或ASIC (专用集成电路)或能够从计算机可读介质提取或获得逻辑并执行包含在其中的指令的其他系统)使用或与其一起使用。“计算机可读介质”可以是可以包含、存储、或保存程序和数据以便由指令执行系统使用或与其一起使用的任何介质。计算机可读介质可以包括诸如像电子、磁、光学、电磁或半导体介质的多个物理介质中的任何一个。适合的计算机可读介质的更具体地示例包括(但不限于)便携式计算机磁盘,诸如,软盘或硬盘驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器、或便携式光盘。
[0090]尽管图5到7和9中的流程图示出了特定的执行次序,但执行次序可以与所描绘的执行次序不同。例如,两个或更多块的执行次序可以被相对于示出的次序扰乱。此外,连续示出的两个或更多的块可以被并发或部分并发地执行。所有此类变化在本发明的范围内。
[0091]在之前的描述中,众多的细节被阐述以提供对在此公开示例的理解。然而,本领域的技术人员将理解所述示例可以在没有这些细节的情形下被实施。尽管有限数量的示例已被公开,但本领域的技术人员将从中认识到众多的修改和变化。旨在所附的权利要求覆盖落在所公开的示例的真实精神和范围内的此类修改和变化。
【权利要求】
1.一种用于自动规划在云计算系统(100)中执行应用的成本的方法,所述方法包括: 确定工作负载(122)是否导致与在一组测试工作负载下在云计算系统(100)中应用的执行相关联的异常,所述测试工作负载包括比期望的工作负载(808)低的第一工作负载(806); 当确定在工作负载组中的工作负载(122)下应用的执行导致异常时,自动确定用于在云计算系统(100)中的应用的执行的动作,所述动作用于致力于解决所述异常;以及计算使用所确定的动作在期望工作负载(808)下执行应用的成本。
2.如权利要求1所述的方法,其中确定动作包括: 顺序测试从用于云计算系统(100)中的应用的执行的多个动作中选择的动作;以及 确定所选择的动作是否解决所述异常。
3.如权利要求2所述的方法,其中顺序测试动作的次序被基于动作解决异常的可能性以及与所述动作相关联的成本而选择。
4.如权利要求1所述的方法,其中: 在一组测试工作负载下执行应用包括:把应用的工作负载从第一工作负载(806)增加到期望的工作负载(808); 确定工作负载组中的工作负载是否导致异常被在工作负载增加期间并且针对工作负载组中的多个测试工作负载执行; 确定动作被针对每个所确定的异常执行; 计算使用所有确定的动作执行的成本。
5.如权利要求1所述的方法,进一步包括:定义多个期望工作负载,期望工作负载中的每一个与期望情况相关联,其中所述方法被针对所述多个期望工作负载执行。
6.如权利要求5所述的方法,其中计算执行应用的成本包括:在所选择的时间段期间并且针对期望情况的混合计算执行应用的成本。
7.如权利要求1所述的方法,其中应用的期望工作负载包括应用的用户的数量以及使用的时间。
8.如权利要求7所述的方法,其中应用的期望工作负载包括用户的行为。
9.如权利要求1所述的方法,其中: 执行应用包括监控应用的执行;以及 确定工作负载组中的工作负载是否导致异常包括确定所监控的执行是否对应于异常。
10.如权利要求1所述的方法,其中在云计算系统(100)中执行应用包括在沙箱环境中执行应用。
11.如权利要求1所述的方法,其中计算执行应用的成本包括计算每个用户的成本。
12.一种自动确定用于在云计算系统(100)中执行应用的至少一个参数的系统,所述系统包括:测试引擎(202)、异常确定引擎(204)、和参数确定引擎(218),其中: 测试引擎(202)用于促使在一组测试工作负载下在云计算系统(100)中的应用的执行,所述测试工作负载包括比期望工作负载(808)低的第一工作负载(806);异常确定引擎(204)用于确定工作负载组是否导致与应用的执行相关联的异常;以及参数确定引擎(206)用于当异常确定引擎(204)确定在工作负载组中的工作负载下的应用的执行导致异常时,确定与在云计算系统(100)中的应用的执行相关联的至少一个参数的值,所述至少一个参数的值用于致力于解决所述异常。
13.如权利要求12所述的系统,其中参数确定引擎(206)被配置成:通过顺序测试从多个动作中选择的动作确定所述至少一个参数的值。
14.如权利要求12所述的系统,进一步包括成本计算引擎(218),被配置成计算使用所确定的至少一个参数的值在期望工作负载下执行应用的成本。
15.一种包含指令的计算机可读介质(210),当所述指令被执行时实现用于识别响应于应用的执行中的异常的动作的方法,所述方法包括: 促使在一组测试工作负载下在云计算系统(100)中的应用的执行,所述测试工作负载包括比期望工作负载低的工作负载; 确定工作负载组中的工作负载(122)是否导致与应用的执行相关联的异常;以及当确定在工作负载组中的工作负载(122)下的应用的执行导致异常时,从多个动作中确定动作,以便通过下述方式致力于解决所述异常: 顺序测试从所述多个动作中选择的动作;以及 确定所选择的动作是否解决异常。
【文档编号】G06F9/44GK103959242SQ201180075413
【公开日】2014年7月30日 申请日期:2011年10月10日 优先权日:2011年10月10日
【发明者】I.科亨, E.摩尔德柴, R.达卡, O.阿苏林, M.S.波茨 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1