CN104331333A - 计算机实现方法和计算系统 - Google Patents

计算机实现方法和计算系统 Download PDF

Info

Publication number
CN104331333A
CN104331333A CN201410646174.5A CN201410646174A CN104331333A CN 104331333 A CN104331333 A CN 104331333A CN 201410646174 A CN201410646174 A CN 201410646174A CN 104331333 A CN104331333 A CN 104331333A
Authority
CN
China
Prior art keywords
computing node
group
user
program
time
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.)
Granted
Application number
CN201410646174.5A
Other languages
English (en)
Other versions
CN104331333B (zh
Inventor
阿历克斯·马克林诺夫斯基
布雷克·梅科
茨兰吉布·伯拉格海因
克里斯托夫·R·科马莱迪
乔弗里·S·派尔
约翰·W·海因特曼
撒米特·洛海亚
陈靓
扎科里·S·穆斯格雷夫
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US12/569,723 external-priority patent/US8352609B2/en
Priority claimed from US12/569,744 external-priority patent/US8689225B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN104331333A publication Critical patent/CN104331333A/zh
Application granted granted Critical
Publication of CN104331333B publication Critical patent/CN104331333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本发明描述了用于管理程序执行能力的技术,例如针对提供用于为用户执行一个或多个程序的一组计算节点。在某些情况下,使用中的计算节点组的程序执行能力动态修改可定期进行或者说是以反复的方式进行,例如以聚合在一段时间内待做出的经请求或以其它方式确定的多次修改。所述技术可在某些情况下结合收费性程序执行服务使用,所述收费性程序执行服务代表多个服务用户来执行多个程序。

Description

计算机实现方法和计算系统
背景技术
多家公司和其它机构对将许多计算系统互连以支持其操作的计算机网络进行操作,其中例如所述计算系统协同定位(例如,作为局部网络的一部分)或相反地位于多个不同的地理位置(例如,经由一个或多个专用或公用中间网络连接)。例如,容纳大量互连计算系统的数据中心已变得司空见惯,诸如由单个机构操作且代表单个机构的私用数据中心以及由作为企业的实体操作以向顾客提供计算资源的共用数据中心。一些共用数据中心的操作员向各个顾客所拥有的硬件提供网络访问、权限和安全安装设施,而其它公共数据中心的操作员则提供也包括其顾客可用的硬件资源的“全面服务(full service)”设施。然而,随着典型数据中心的规模和范围增加,提供、支配和管理物理计算资源的任务已变得日益复杂。
商用硬件的虚拟化技术的出现已向具有不同需求的多个用户提供了关于管理大规模计算资源的一些益处,从而使得各种计算资源可由多个用户有效且安全地共享。例如,诸如由VMWare、XEN、Linux′sKVM(“内核级虚拟机”)或User-Mode Linux提供的那些虚拟化技术可通过向每个用户提供一个或多个虚拟机(由单个物理计算机提供)使得单个物理计算机在多个用户之间被共享,其中每台此虚拟机均为作为不同逻辑计算系统的软件模拟,该逻辑计算系统向用户提供的错觉是它们是给定硬件计算资源的唯一操作员和管理员,同时还在各个虚拟机之间提供应用程序隔离和安全。
附图简述
图1A和图1B为示出对程序执行服务的多个用户可用的程序执行能力进行管理的交互作用的示例性实施方案的网络图。
图2A和图2B示出对用户的一组多个计算节点的程序执行能力进行管理,例如以在各个时间并以各种方式动态修改可用程序执行能力的实例。
图3为示出用于管理向多个用户提供的程序执行能力的计算系统的示例性实施方案的框图。
图4示出了程序执行服务系统管理器程序的示例性实施方案的流程图。
图5示出了递归能力协调程序的示例性实施方案的流程图。
图6示出了能力修改归因程序的示例性实施方案的流程图。
图7示出了程序执行服务能力维护管理器程序的示例性实施方案的流程图。
具体实施方式
描述了对用于执行一个或多个用户的程序的程序执行能力进行管理的技术。在至少一些实施方案中,所管理的程序执行能力包括供用户用于执行一个或多个程序的一组一个或多个计算节点。另外,使用时可动态修改与用户相关的该组计算节点,以便管理用户可从该组计算节点中获得的程序执行能力的量。对与用户相关的该组计算节点的修改在各个实施方案中可具有各种形式(例如,以修改该组中计算节点的数量,例如通过动态添加和/或删除计算节点),并且在各个实施方案中可以各种方式引发(例如,基于由用户指定的动态指令、基于用户预定义的触发器的满足情况的自动确定、基于提供该组计算节点的服务的自动化操作等)。以下包括关于可从一组计算节点中获得的程序执行能力的动态修改的其它细节。另外,在至少一些实施方案中,这些技术可结合代表该服务的多个顾客或其他用户来执行多个程序的程序执行服务(″PES″)进行使用,诸如网络访问程序执行服务,其提供了用于执行远程用户的程序的多个计算节点(例如,在一个或多个物理计算系统上提供的多个物理计算系统和/或虚拟机)。这些技术中的一些或全部也可通过程序执行服务系统管理器模块和/或程序执行服务能力维护管理器模块的实施方案自动实施,如下文更详细地描述。
如前所述,在各个实施方案中,对用于执行用户的一个或多个程序的一组计算节点进行的动态修改可具有各种形式且可以各种方式引发。作为一个实例,该组计算节点的程序执行能力可至少部分地通过为该组一部分的计算节点的数量来测量,并且可通过改变该组的计算节点数量来修改(例如,以通过增加计算节点数量来提高程序执行能力,并通过减少计算节点数量来降低程序执行能力)。此类计算节点数量修改可用于(例如)该组中的一些或所有计算节点提供或可获得相同或类似数量的计算资源(例如,内存量、硬盘空间、CPU执行周期、网络带宽等)的情况中,使得计算节点数量的给定百分比变化对应于该组的总计算资源和程序执行能力的相同或类似的百分比变化。在其它实施方案中,该组计算节点中的一些或全部可以一种或多种重要方式在其可获得的计算资源的量方面有所不同(例如,如果使用两种或更多种不同类型的计算节点配置,如果每个计算节点均独立于其它计算节点配置等)或以其它方式在其提供的程序执行能力的类型方面有所不同(例如,根据专用硬件、软件程序的类型等),但该组的程序执行能力动态修改确可至少部分地基于修改该组计算节点的数量,或相反可基于其它方式(例如,将一种类型的计算节点配置改变为另一种类型),如其它地方更详细地讨论。
此外,在至少一些实施方案和情况中,一组一个或多个计算节点的程序执行能力可以不同于计算节点的数量的方式进行测量和修改,例如基于该组提供的一种或多种类型的计算资源的总量(例如,内存量、硬盘空间、CPU执行周期、网络带宽等)。另外,在至少一些实施方案中,在测量和指定一组计算节点的程序执行能力中可考虑其它因素,诸如一些或所有计算节点的地理位置、一些或所有计算节点之间的相互关系(例如,由至多最大地理距离或至少最小地理距离分隔、由至多最大网络延时或至少最小网络延时分隔、分隔成两个或更多个独立的数据中心或不会同时失效的其它计算节点集合等)、专用硬件能力和/或软件能力的可用性等。以下包括关于测量和指定程序执行能力的其它细节。
对用于执行用户的一个或多个程序的一组计算节点进行管理的PES或其它系统可自动确定如何和何时以各种方式对该计算节点组进行程序执行能力动态修改。例如,在至少一些实施方案和情况中,PES或其它系统可以直接方式进行某些类型的程序执行能力修改,而其它类型的程序执行能力修改可定期进行或者说是以反复的方式进行(例如,以便延迟和聚合在一段时间内(例如自进行一次或多次聚合修改之前开始)待做出的经请求或以其它方式确定的多次修改。如果在一段时间内聚合多个程序执行能力修改确定值,则关于聚合修改确定值的信息可用于以各种方式来提高程序执行能力修改的实施。例如,如果两次确定的程序执行能力修改对应于相反类型的修改(例如,以增加和减少计算节点数量、增加和减少可用总内存等),则两次修改可以各种方式进行聚合,例如通过经选择来部分或完全相互抵消,或相反通过选择待进行的两次修改中的较高优先级来代替另一次修改。另外,如果两次或更多次确定的程序执行能力修改对应于类似或互补类型的修改(例如,以使计算节点数量全面增加指定量、使可用总内存全面增加指定量等),则那些确定的修改可以各种方式同样地聚合(例如,以选择符合某些指定标准的单次确定的修改,诸如最大修改、最小修改、具有最高优先级的修改、首先确定的修改、最后确定的修改等;以累积各种确定的修改并使用累积的修改量;等)。以下包括关于确定如何和何时做出各类程序执行能力修改的其它细节。
另外,当PES或其它系统对代表用户来执行一个或多个程序的一组计算节点动态进行程序执行能力修改时,PES或其它系统可进一步进行各种操作以将特定的程序执行能力修改的因果律信息或其它责任归因。责任归因可包括(例如)识别已在相关时段内发生的特定事件,其中每个事件均能够引起程序执行能力动态修改,并且将这些事件中的一件或多件归因于在该时段期间或之后进行的程序执行能力动态修改中的一些或全部。例如,在至少一些实施方案和情况中,一些程序执行能力动态修改各自可由单个特定事件引发(例如,如果该组计算节点失效或者说是变得不可用,则系统立即自动启动向该组提供替代计算节点,同时计算节点不可用性成为直接引起系统自动动作以提供替代计算节点的单个事件)。在至少一些实施方案和情况中,其它程序执行能力动态修改各自可归因于多个事件的组合,这些事件中的每一件均有助于或可能有助于能力修改(例如,如果多个独立事件各自在一段时间内需要或指示该组的计算节点数量增加,并且这些事件经聚合以在该时段结束时增加单个计算节点的数量,同时各独立事件成为共同间接引起系统后续自动动作以增加计算节点数量的多个事件)。
对与用户相关的计算节点组进行的特定程序执行能力动态修改的责任归因在以下情况下可具有特别的益处,例如针对至少一些程序执行能力修改而向用户收费时(例如,如果PES或其它系统为由于提供该组的每个计算节点、程序执行能力的每个其它度量和/或基于其它依据而向消费用户收费的付费系统)。在此类情况下,用户可不仅能够接收和查看关于与特定程序执行能力动态修改相对应的费用的信息,而且能够接收和查看相关的责任归因信息,以便用户能够确认那些程序执行能力动态修改的原因和适当性。在至少一些此类实施方案中,责任归因信息可以人可读格式产生以便向用户显示,以使用户能够理解各个自动动作为何由人可读信息中所包括的PES或其它系统来采取的解释。在其它实施方案中,也可以各种其它方式(包括通过自动启动其它操作的PES或其它系统)来使用此类责任归因信息。另外,在至少一些实施方案中,可响应于从用户或其它来源处接收的各类询问来产生和/或使用责任归因信息,这些询问诸如关于识别哪些(多个)事件为引起一组一个或多个计算节点可用性发生指示的特定程序执行能力修改或其它变化的原因的请求和/或关于哪些(多次)程序执行能力修改或其它计算节点组的(多个)可用性变化由一个或多个指示的事件引起的请求。以下包括关于确定和使用程序执行能力动态修改的责任归因信息的其它细节。
在各种情况下,用于自动管理程序执行能力动态修改的所述技术可提供各种益处。例如,通过聚合多个经请求或确定的程序执行能力动态修改以进行综合考虑,PES或其它系统也许能够优化如何进行聚合修改,以及将计算节点的反复变化最小化,这可使进行额外变化的一些或所有计算节点在一段时间内暂时不可用。另外,用户可预定义基于一组计算节点的性能特性的各类触发器,同时在特定触发器被满足时,视情况自动提高或降低程序执行能力(例如,以被动(reactively)提高一组计算节点的程序执行能力,从而满足计算节点组的计算负荷的暂时性增加;主动(proactively)提高或降低一组计算节点的程序执行能力,从而满足其它程序执行能力的即将出现的预期需求和/或满足现有程序执行能力的即将出现的预期需求缺乏,例如根据关于特定性能特性和/或指示程序执行能力的重复使用模式的历史数据的随时间变化的趋势;等)。或者,用户可希望将一组计算节点的程序执行能力保持在指定水平或其附近(例如,计算节点的指定所需恒量),并且可对该组计算节点自动进行各种修改以将可用程序执行能力保持在该指定水平(例如,以将已偏离指定所需量的实际计算节点数量恢复至该指定所需量)。例如当该组计算节点中的每个执行相同程序的不同复本(例如,以用作该组中的总计算负荷的替代形式),并且修改计算节点的数量以管理由每个计算节点处理的工作量时,可使用此类技术,或者说是将这些技术用于一组中的各个计算节点并未各自执行相同程序的不同复本的情况中(例如,如果该组计算节点的不同子集各自执行不同程序的复本,例如以使某些计算节点执行应用服务器程序且使其它计算节点执行相关的数据库服务器程序;如果这些计算节点中的一些或全部诸如以分布式方式实施单个程序的不同部分;等)。此外,当向组添加附加计算节点时,PES或其它系统在至少某些情况中还可任选地采取其它动作,例如以提供所添加的计算节点来准备执行一个或多个程序,或在所添加的计算节点上进一步自动引发一个或多个程序的执行。
如前所述,用户可预定义与动态修改多组计算节点的程序执行能力相关的各类触发器,并且那些触发器随后可用于引发用户的计算节点组的相应程序执行能力自动化动态修改。作为一个实例,可定义指定计算节点的特定所需量或一种或多种计算资源的所需总量的触发器,例如其可用于将相应计算节点组自动保持在所需计算节点数量或所需计算资源总量,或相反用于改变指定的计算节点数量或计算资源总量(如果满足指定标准)。在其它情况中,可定义指定一种或多种计算资源的计算节点数量或总量的特定绝对或相对变化的触发器,例如如果计算节点组的一种或多种指示的性能特性达到指定阈值或者说是满足指定标准,则其可被触发(例如,保持在指定时段的指定范围内;表示特定趋势,诸如指定时段内的指定变化量,或诸如特定“加速度(acceleration)”或变化速率;符合或对应于一种或多种指定模式(例如来自表示程序执行能力的重复使用模式的历史数据);满足多种性能特性的指定逻辑或值的其它组合,例如可使用逻辑算子(诸如AND、NOT、OR等)和/或以其它方式将其组合;等)。在其它实施方案和情况中,预定义的触发器可根据不属于计算节点组的性能特性的信息以其它方式来被满足(例如,基于符合一个或多个指定时间(为特定触发器的标准的一部分或全部)的当前时间;基于在以不同于性能特性的方式测量的当前计算节点组上执行的一个或多个程序的状态信息,诸如正如由(例如)经排列或者说是已知或期望由一个或多个程序完成的工作量表示的当前计算负荷;基于未由当前计算节点组执行的一个或多个其它执行程序的性能特性或其它状态信息,例如如果当前计算节点组与其它执行程序交互或者说是支持这些程序,以便在其它执行程序上的计算负荷增加或减少时,例如提高当前计算节点组的程序执行能力;等)。此类性能特性可基于该组计算节点中的一个或多个的任何可测量的属性或与这些节点的操作相对应的其它尺度,包括以下非排他性清单项:单个计算节点的一种或多种计算资源的绝对或相对使用量(例如,所使用的可用内存的百分量或CPU周期利用率、所使用的网络带宽的绝对量等);所有该组计算节点的一种或多种计算资源的绝对或相对总使用量;响应于来自外部计算系统的通信中的绝对或相对延时(latency)或其它延迟(delay)量;计算节点在完成一个或多个所需动作中的绝对或相对失效量;等。此外,在至少一些实施方案和情况中,触发器的满足情况并非使该触发器直接指定将在被满足时发生的特定程序执行能力修改,而是可使指定系统或模块获得通知,并且该系统或模块可请求进行特定的程序执行能力修改(例如,未改变的预定义的能力修改;例如基于当时的条件在通知时动态确定的能力修改;等)。另外,在一些实施方案中,PES或其它系统可进行各种操作以监测一组计算节点,以便确定与该组相关的触发器的一些或所有性能特性,或可以其它方式从另一个来源获得此类监测的性能特性(例如,从监测所述计算节点的第三方软件、从在计算节点上执行以监测该计算节点和任选地报告监测信息的软件等)。此外,在一些实施方案中,PES或其它系统可具有在满足触发器的指示触发标准时引发程序执行能力动态修改的系统定义触发器,或可在指定情况下以其它方式自动确定以对计算节点组做出某些类型的变化。
当定义的触发器指定一种或多种计算资源的计算节点数量或总量的特定绝对或相对变化,并且基于相应计算节点组的当前情况自动确定来满足定义的触发器的一个或多个指定标准时,PES或其它系统可自动确定是否和如何对触发器进行指定的程序执行能力修改。例如,可立即进行某些类型的指定程序执行能力修改(例如,终止使用一个或多个计算节点的请求、基于用户已指定用于立即实施的触发器的请求等),而可将其它类型的指定程序执行能力修改延迟到聚合时段结束时,以将其视为在该时段期间请求或者说是确定的聚合的多次程序执行能力修改的一部分。类似地,例如基于程序执行能力动态修改的类型、基于来自用户的立即或延迟实施的显式请求等,可确定由用户动态请求的程序执行能力修改(例如,经由GUI,或者PES或其它系统的图形用户界面;通过经由定义的API或者PES或其它系统的应用程序编程接口的用户程序;等)以立即进行和/或以类似的方式暂时延迟和聚合。此外,当确定如何管理确定的多次程序执行能力修改的组合时,在某些情况下,不同的优先级可与确定的不同修改相关。如果如此,例如对于赋予与被满足的触发器不同的优先级(例如,较高或较低优先级)的动态指定的用户请求或其它用户指令、赋予不同优先级的不同类型的经确定修改而言(例如,对于与提高程序执行能力的请求相比赋予较高优先级的降低程序执行能力的请求而言)等,可以各种方式来评估此类优先级。以下包括关于使用用户定义的触发器且确定性能特性的其它细节。
此外,在至少一些实施方案中,基于追踪和使用相应计算节点组的多个属性,或者说是基于各自均与该组中一个或多个计算节点相关的可控参数,PES或其它系统可管理定期或者说是反复聚合的多次经确定程序执行能力修改。作为一个实例,将计算节点组的计算节点数量用作与该计算节点组的程序执行能力相对应的尺度,PES或其它系统可针对该计算节点组而保持和使用至少三种相互关联的度量,如下所述:计算节点组的所需计算节点数量,例如在启动该计算节点组时,相关用户可对其进行初始设定,并且该数量可根据触发器的满足情况和/或动态指定的用户请求来修改;该组中当前可用计算节点的实际计算节点数量(例如,通过对该组计算节点的连续或反复监测来确定);和该组中当前可用计算节点的正式记录的计算节点数量(例如,正如在最后一次引发一次或多次程序执行能力动态修改时所确定,并且任选地不时通过连续或反复监测来更新)。所述计算节点组的此类多个属性可以各种方式用于(例如)连续或反复地测量实际数量并由此更新正式记录的数量(例如,基于对该组计算节点进行监测),并且用于定期尝试将最近正式记录的数量更新以符合当前所需数量(例如,当考虑如何和是否要对多次聚合的经确定修改进行组合时)。
如前所述,PES或其它系统可进一步进行各种操作以将做出的特定程序执行能力动态修改的因果律信息或其它责任归因。例如,如前所述,可追踪与计算节点组的程序执行能力动态修改的请求相对应的事件,包括所接收的用户指定的动态指令和经自动确定被满足的预定义的触发器,以及在一些实施方案中由PES或其它系统自动采取的动作(例如,基于进行的监测,例如如果确定计算节点已冻结或者说是不可用于进行所需活动,自动关闭或者说是终止将计算节点用作其当前计算节点组的一部分)。类似地,可同样地追踪计算节点组的程序执行能力的实际变化,诸如与发生的事件和/或其它能力变化相对应的变化(例如,计算节点失效或者说是变得不可用的例子)。作为一个实例,可将各种事件相关信息储存在第一数据库表中,并且可将关于能力变化或其它可用性变化的各种信息储存在第二数据库表中。如果识别特定事件和特定可用性变化之间的关系(例如,特定事件致使特定可用性变化立即发生),则可通过将相同的关结相关标识符与关于该事件和该可用性变化的其它信息一起保存来追踪所述事件和可用性变化之间的相应关结。在多个事件可单独或组合地引起特定可用性变化但因果律不归因于单个事件的其它情况中,可将单个关结相关标识符与关于所述可用性变化和那些事件中的每个的其它信息一起储存,并且还可与关于一个或多个其它可用性变化的其它信息一起保存(如果它们类似地可单独或组合地归因于那些相同的多个事件)。因此,例如如果给定计算节点组的多个事件发生在单个聚合时段期间并且一个或多个程序执行能力变化发生在该相同的聚合时段期间或紧接其后发生(例如,作为在该聚合时段结束时进行的协调活动的一部分),并且如果那些事件均不可直接归因于所述一个或多个能力变化中的任一者,则所有这些多个事件的组合都可归因于所述一个或多个能力变化中的每个。以下包括关于此因果律归因的进一步细节(包括参照图2B)。
另外,以类似的方式,多个此类所需、实际和正式属性可被追踪且用于与计算节点组的程序执行能力相对应的一个或多个其它可控参数,诸如所需的第一组、实际和正式量的CPU周期总平均利用率、所需的第二组、实际和正式量的网络带宽总平均利用率等。此外,当同时追踪和使用与计算节点组的程序执行能力相对应的多个参数时,PES或其它系统可尝试管理所有参数,例如以修改计算节点组,以便同时获得所需的CPU周期总平均利用率和所需的网络带宽总平均利用率。作为另一个实例,计算节点组的多个参数可包括该组中各个计算节点的计算节点数量和指定地理位置(例如,介于第一数据中心的该组计算节点的15%和20%之间,剩余的该组计算节点位于一个或多个其它数据中心),同时PES或其它系统尝试同时管理该组的计算节点数量和计算节点地理位置。以下包括关于使用多个属性来追踪和管理一个或多个程序执行能力参数的其它细节。
另外,在各个实施方案中,PES或其它系统可使用户以各种方式访问计算节点。例如,在一些实施方案中,可将可从用于执行程序的PES处获得的计算节点中的至少一些分配给一个或多个用户,以便那些用户可优先使用,使得那些用户中的每个相对于其他用户可优先使用那些计算节点。在一个此实施方案中,这些用户的优先访问可基于可专有或专属使用指定时段的那些计算节点(例如以类似于租用的方式)的每个用户。另外,在一些实施方案中,例如当计算节点未被分配有这些计算节点的用户使用时和/或当分配有计算节点的用户明确地使已分配的计算节点可由其他用户使用时,分配给一个或多个用户以专有或优先使用的计算节点中的至少一些有时可用作过量程序执行能力供其他用户使用。这样,分配给第一组用户的至少一些程序执行能力有时可用于(例如在非保证的基础上)代表其他用户来暂时执行程序(例如,如果需要该程序执行能力来用于其它目的,诸如一个或多个其他用户的优先或保留使用,则使得过量程序执行能力的使用权可被取消)。此外,在一些实施方案中,PES可包括按需计算节点,其可用于满足用户执行程序的动态接收请求(例如,在那些用户请求时、在指示的将来时间、在指示的将来时段内的一段时间等执行),使得可执行该请求所指示的一个或多个程序,其前提是足以满足请求的执行的计算节点在所请求的时间时(或附近)可用(但不保证会满足该请求)时。另外,在一些实施方案中,在立即(或预定)执行的该按需请求被满足且代表各个用户来成功引发一个或多个程序的执行之后,可保证继续使用按需计算节点直到将来的某个时间,诸如各个用户所选择的某个时间,任选地受到某些限制的某个时间,(例如,应当保证PES不会先占用于其它目的的用途,但不保证执行程序的计算节点会失效)。在一些实施方案中,用于提供按需可变程序执行能力的计算节点可不同于用于提供专有程序执行能力的计算节点和/或用于提供过量程序执行能力的计算节点,因此如果未使用用于提供按需可变程序执行能力的计算节点中的一些,则在一些实施方案中,这些节点可用于提供过量程序执行能力,直到收到按需可变程序执行能力请求,而在其它实施方案中,这些节点可能不会用于提供过量程序执行能力。在其它实施方案中,仅可提供单一类型的程序执行能力,和/或可提供其它类型的程序执行能力。
图1A为示出对可用于提供程序执行能力以执行多个用户的程序的计算节点进行管理的程序执行服务的实例的网络图。为了进行说明性的目的,以下描述了一些实例和实施方案,其中以特定方式来提供和管理特定类型的程序执行能力。另外,在下述实例和实施方案中的一些中,由一组计算节点提供的程序执行能力可以特定方式(例如,基于计算节点的数量)来测量,可以特定方式(例如,通过追踪所需、实际和正式属性相对于一个或多个程序执行能力尺度的用途)来管理,可通过相关用户以各种方式(例如,基于预定义触发器和/或动态指定指令的用途)进行控制,可以特定方式进行修改(例如,通过聚合在一段时间内确定和延迟的至少一些程序执行能力修改,然后在该时段结束时进行一次或多次相应的聚合修改,例如以修改一组中计算节点的数量)等。提供这些实例用于进行说明性的目的且为了简洁起见而将其简化,并且应当理解到,本发明的技术可用于各种其它情况中,而下面仅描述了这些情况中的一些。
在图1A的实例中,各个用户(未示出)正在将各个客户计算系统130用于通过网络100与由程序执行服务提供实体105提供的PES进行交互,同时PES的一些功能通过程序执行服务系统管理器(″PESSM″)模块110的图示实施方案提供于该实例中,而其它功能通过程序执行服务能力维护管理器(″PESCMM″)模块115的图示实施方案提供于该实例中。PESSM模块110可例如帮助特定用户来配置待用于执行这些用户的程序的多组计算节点,包括为这些组指定初始所需计算节点数量并且指定用于随后对计算节点数量自动做出动态修改的触发器。在该实例中,PES使各个计算节点120可用于执行用户的程序,但在其它实施方案中,用于至少一些组中的计算节点中的至少一些可以其它方式来提供(例如,可通过用户和/或第三方诸如外部计算系统140来提供,但由PES进行管理)。另外,PESCMM模块115可有助于连续或反复监测在使用中的计算节点组,并且任选地尝试代替失效或者说是变得不可用的任何计算节点,以便将程序执行能力保持在先前确定的水平。
网络100可例如为链接网络的可公开访问网络,其可能由不同的各方(诸如因特网)进行操作。在其它实施方案中,网络100可为专用网,诸如非特权用户完全或部分地不可访问的企业网或校园网。在其它实施方案中,网络100可包括可访问因特网和/或可通过因特网访问的一个或多个专用网。在图示实施方案中,PESSM模块110和PESCMM模块115各自可包括在一个或多个计算系统(未示出)上执行的软件指令。另外,模块110和115以及各个计算节点120可以各种方式(诸如在单个数据中心)或者说是以使用一组协同定位的计算系统的方式,或相反以使用各个不同地理位置处的各种计算系统的分布式方式来提供。
在一些实施方案中,图示的计算节点120可包括在一个或多个物理计算系统上提供的多个物理计算系统和/或多个虚拟机(如参照图1B更详细地描述)。每个计算节点120均具有一定量的可用于执行一个或多个程序的计算资源,(例如)以提供特定量的程序执行能力,例如所述程序执行能力可例如通过一种或多种处理能力(例如,处理单元的数量和/或尺寸)、存储容量、储存容量、网络带宽容量等的组合来测量。在一些实施方案中,PES供应商105可提供预配置的计算节点,其中每个预配置的计算节点均具有相等或者说是类似量的可用于代表用户来执行程序的资源,而在其它实施方案中,PES供应商105可提供各种不同计算节点的选择,用户可从中选择以代表该用户来执行程序,例如其中每项选择均具有不同量和/或类型的计算资源(例如,处理单元的尺寸、速度和/或类型;处理单元的数量;内存量和/或存储量;平台配置,诸如32位或64位;等)。
在该图示实施方案中,程序执行服务提供用于管理多个用户中每一者的多组一个或多个计算节点120的功能。如其它地方更详细地讨论,所述各个用户可与PESSM模块110进行交互,以指定开始使用多组计算节点来代表用户执行程序的请求。在各个实施方案中,可在代表用户在一组计算节点上执行一个或多个程序的请求时和/或在一个或多个其它时间(例如当用户最初注册和/或预订使用PES的服务时)指定此类资源。在一些实施方案中,PESSM模块110可向一个或多个用户提供预订和/或注册服务,使得用户可指定与代表用户来执行的一个或多个程序相关的信息(例如,一个或多个程序的程序、源代码、可寻址位置等)、帐号信息(例如,用户名、计费信息等)、使用条款等。在一些实施方案中,在用户与PESSM模块110进行交互以预订和/或注册来获得服务之后,可向该用户发布与该用户相关且将结合代表用户的执行程序来使用的一个或多个标识符(例如,键码、令牌、用户名等)。在其它实施方案中,可提供与PESSM模块110(未示出)不同的模块,以进行与PES的预订和/或注册服务相关的各种操作。
从用户接收使用一个或多个计算节点的请求之后,PESSM1模块110可确定是否存在足够数量的计算节点120(其具有满足所述请求的可用资源),并且如果如此,PESSM1模块110可代表用户在适量的计算节点上开始执行所述请求的一个或多个程序。在用户预定将来在一组一个或多个计算节点上执行一个或多个程序的请求的情况中,PESSM模块110可尝试立即保留适量计算节点以在一个或多个将来时间执行一个或多个程序,和/或可延迟将所述计算节点用于直到稍后的时间(例如,诸如当所述一个或多个将来时间发生时)才执行的决定。在图示实施方案中,如果PESSM模块110不能针对用户请求来分配计算节点,则所述请求可能失效,使得程序无法执行。在这些情况中,用户可再次提交已失效的请求,以稍后执行。如前所述,在一些实施方案中,例如根据所用计算节点的数量、所用计算节点的类型、使用计算节点的持续时间、计算节点进行的特定操作(例如,数据传送和/或储存)等,可向用户收取与使用PES相关的各种费用。
在提供一组一个或多个计算节点用于代表用户来执行一个或多个程序之后,可以各种方式来管理所述计算节点组。例如,如前所述,PESCMM模块115可监测该组计算节点,例如以确定一些或所有计算节点的性能特性,包括实际计算节点数量或由该组计算节点提供的实际程序执行能力的其它度量。如果(例如)一个或多个计算节点失效或者说是变得不可用,则可改变该组的实际程序执行能力,并且在至少一些实施方案中,模块115可进行各种操作来保持所述计算节点组在这些情况下的程序执行能力(例如,通过向该组添加替代计算节点以取代不可用的计算节点)。另外,模块115可使用关于所述计算节点组的经确定的实际计算节点数量的信息,以例如在检测实际计算节点数量发生变化时、定期地等更新所述计算节点组的正式记录的计算节点数量。
另外,PESSM模块110也可有助于以各种方式来管理所述计算节点组。例如,如前所述,与该组相关的用户可具有先前指定的一个或多个数量修改触发器,其指定将向该组做出的计算节点数量变化的类型(如果满足各个指定标准)。此外,在至少一些实施方案中,与该组相关的用户可在各个时间动态指定对其相关计算节点组的操作变化,包括对该组计算节点的数量变化。作为管理所述计算节点组的一部分,模块110可追踪所述计算节点组的所需计算节点数量,并且定期将所述计算节点组的正式记录的计算节点数量与所述计算节点组的所需计算节点数量进行协调。例如根据一个或多个用户指定的预定义触发器的满足情况和/或一个或多个动态指定的用户指令,此定期协调可包括追踪和聚合在聚合时段期间发生的计算节点数量的经请求的修改。在该时段结束时,模块110然后可确定是否和如何进行聚合的计算节点数量修改,并且可根据聚合的计算节点数量修改来更新所需计算节点数量。然后,模块110可通过启动聚合的计算节点数量修改,以及更新正式记录的计算节点数量以匹配将由聚合的计算节点数量修改引起的新的所需计算节点数量来对所需和正式记录的计算节点数量进行协调。此外,在当前的实际计算节点数量在该时段结束时不同于正式记录的计算节点数量的情况中,还可根据实际计算节点数量对所需和正式记录的计算节点数量进行协调,使得进行开始聚合的计算节点数量修改,以将当前的实际计算节点数量更新为当前所需的计算节点数量。模块110还可反复地,诸如每次经过指定时段时、每次已经请求了最小量的计算节点数量变化时等进行此类定期协调活动。
此外,PESSM模块110可进行其它活动,以追踪针对特定计算节点组发生的事件和特定程序执行能力变化。至少一些程序执行能力变化信息可与由模块110引发以作为定期或反复协调活动的一部分的程序执行能力动态修改相对应,并且任选地在某些情况下还可包括由PESCMM模块115进行的监测中的程序执行能力变化信息(例如,以对应于失效或者说是变得不可用的计算节点,或计算节点组的程序执行能力的其它类型的所检测变化)。模块110还可例如根据进行的定期或其它反复协调活动在各个时间(或相反在其它时间)进行自动确定,以将特定能力变化的因果律或其它责任归因于特定事件。
虽然针对向各个用户提供各类功能的PES描述了图1A的上述示例性实施方案,但应当理解到可以存在各种其它实施方案。例如,在至少一些实施方案中,单个计算节点120的未使用部分(例如,未使用的处理单元时钟周期、内存的未使用部分等)可供一个或多个用户使用,使得第一用户的一个或多个程序可与一个或多个其他用户的那些程序共享单个计算节点的资源。另外,虽然针对程序执行服务和程序执行能力描述了一些实施方案,但应当理解到所述技术可用于管理各个其它组计算节点或其它类型的计算相关资源的使用权。可经管理以供多个用户使用的其它类型的计算相关资源的实例的非排他性清单项可包括如下内容:持久性数据存储能力(例如,在非易失性存储设备,诸如硬盘驱动器上);临时数据存储能力(例如,在易失性存储器,诸如RAM上);消息排队和/或传递能力;其它类型的通信能力(例如,网络插座、虚拟通信电路等);数据库管理能力;专有带宽或其它网络相关资源;输入装置能力;输出装置能力;CPU周期或其它指令执行能力;等。
图1B示出了其中可采用包括多个物理计算系统的一个或多个数据中心来提供程序执行服务的实施方案。具体地讲,图1B为示出其中程序执行服务的PESSM模块180和PESCMM模块160采用所述一个或多个数据中心处的各个计算系统来管理代表用户的一个或多个程序的执行的示例性实施方案的网络图。图示实例包括PES使用的数据中心170,数据中心170连接至数据中心170外部的因特网196。在该实例中,因特网196提供访问各种外部计算系统的权利,诸如经由专用网194的计算系统190以及可直接访问的计算系统192。专用网194可为例如从专用网194外部的非特权计算系统完全或部分地不可访问的企业网。计算系统192可包括例如直接连接至因特网(例如,经由电话或电缆调制解调器、数字用户线路(″DSL″)等)的家用计算系统。另外,示出了经由因特网196连接至数据中心170的一个或多个其它数据中心198,例如数据中心198在至少一些实施方案中可被PES进一步使用。
示例性数据中心170包括许多物理主机计算系统175、物理计算系统182、PES的PESSM模块180和PES的PESCMM模块160。在该实例中,主机计算系统175各自提供多个虚拟机,并且具有管理那些虚拟机的虚拟机(″VM″)管理器组件(例如,管理程序或其它虚拟机监视器),例如针对具有多个虚拟机177a和VM管理器组件179a的主机计算系统175a所示出。其它主机计算系统175b可同样地包括此类组件,为了简洁起见,此处未示出那些其它组件,并且一些或所有计算系统182可任选地同样具有一个或多个此类虚拟机和/或VM管理器组件(未示出)。由主机计算系统提供的虚拟机中的每个均可作为不同的计算节点用于PES中,例如以使主机计算系统上的第一虚拟机计算节点成为第一用户的第一计算节点组的一部分,并且使所述相同主机计算系统上的第二虚拟机计算节点成为第二用户的第二计算节点组的一部分。或者,在其它实施方案中,所述数据中心处的物理主机计算系统中的一些或全部可能不提供任何虚拟机,例如相反直接作为代表PES的最终消费用户来执行一个或多个程序的计算节点。此外,在一些实施方案中,各个计算系统175和182均可具有不同的能力,可具有不同的相关使用费,可支持不同类型的用户程序(例如,不同尺寸的虚拟机的软件映像例子,或具有不同类型的资源标准和/或计算资源使用率,诸如不同模式的I/O和存储器存取以及网络使用率的程序)等。如果如此,则可根据一个或多个此类因素对特定用户和/或其程序进行分组(例如自动地),这些因素还可用作选择计算系统来执行特定程序的约束条件和/或首选项。示例性数据中心170还包括可包括多个联网装置(未示出)(诸如转换器、边缘路由器和核心路由器)的内部网络172,以及连接至内部网络172的计算系统175和182、PESCMM模块160和PESSM模块180。各个主机计算系统175和其它计算系统182均可以各种方式来设置,包括通过将其分组在共享共用底板或其它互连介质的机架中。此外,可采用一个或多个计算系统(未示出)来执行模块160和180中的每个。
图示的PESSM模块180和PESCMM模块160实施所述技术中的至少一些,以便管理在采用计算系统175和182来提供的多组计算节点上执行程序,如其它地方更详细地描述。当选择特定计算节点来执行用户的一个或多个程序时,在一些实施方案中,PESSM模块可通过与VM管理器组件或控制所述所选计算节点的程序的执行的其它管理器组件进行交互来开始执行那些程序,或者可在所选计算节点上直接执行程序。PES的用户可使用各种计算系统,诸如计算系统190或192,或其它数据中心198之一处的计算系统以与PESSM模块180进行交互。
应当理解到,图1B的数据中心仅提供用于说明性的目的,并且在其它实施方案中可以其它方式来提供程序执行服务和其它软件执行服务。例如,相反地可采用数据中心170外部的一个或多个其它计算系统,诸如计算系统190、192或者数据中心198处的计算系统来提供PESSM模块180和/或PESCMM模块160。
图2A示出了对提供用于执行示例性用户的一个或多个程序的一组示例性计算节点进行管理的技术的实例,诸如可由PESSM模块和/或PESCMM模块的实施方案自动实施的技术。具体地讲,在该实例中,特定用户(以下简称用户UUU且在图2A中未示出)已开始使用一组多个计算节点以代表该用户各自执行所指示的程序的复本,例如以用作替代计算节点来处理由所述执行程序提供的服务所接收的请求(例如,以便平衡该服务在整个该组的多个计算节点中的计算负荷)。如时间线坐标图210中所示出,用户在时间T1已请求提供计算节点组,并且已为该组的8个计算节点指定初始所需计算节点数量215a。信息250对各个用户定义的触发器指示,用户已在例如初始请求时向计算节点组指定。另外,时间线坐标图205示出了关于将被追踪用于计算节点组且将用于确定触发器250是否被满足的性能特性的两种实例类型的信息,所述信息在该实例中包括计算节点组的CPU总平均利用率205a和计算节点组的网络带宽总平均利用率205b。
响应于与开始提供计算节点组的所接收的用户请求相对应的时间T1时的事件E1,示例性PES(未示出)根据初始所需的计算节点数量向用户启动最初包括八个计算节点的计算节点组。另外,向八个计算节点同样地设置计算节点组的正式记录的计算节点数量225。然而,如时间线坐标图210中所示,所述八个计算节点实际上并未立即可用,因为需要一段时间来提供这些计算节点且使其可用作计算节点组的一部分,包括通过PES或用户来使程序复本在这些计算节点中的每个上执行。具体地讲,在经过时间T1之后的初始时间后,计算节点组的程序执行能力发生变化C1255,该变化在时间T1时开始,在大约时间T2时结束,并且与可用的八个计算节点中的前四个相对应。因此,追踪用于计算节点组的实际计算节点数量220在所述时间从0增加至4。另外,同时或此后不久,时间线坐标图205表明,根据该组中可用计算节点的操作而开始追踪CPU总平均利用率205a和网络带宽总平均利用率205b的性能特性。
在该实例中,PES(或其它第三方系统)以大致连续的方式对该组计算节点进行监测,使得以最新的方式来保持性能特性205a和205b以及实际计算节点数量220的信息。然而,在该实例中,仅定期对计算节点组的计算节点数量进行至少某些类型的动态修改,例如以在聚合时段260期间聚合至少某些类型的经请求的修改,并且以在分别在所需、实际和正式记录的计算节点数量215、220和225之间的聚合时段结束时进行协调活动。因此,在第一聚合时段260a期间,计算节点组的计算节点数量发生额外变化255。例如,在使前四个计算节点可用的变化C1之后,在大约时间T3时结束的后续变化C2与可用作计算节点组的一部分的三个附加计算节点相对应。
然而,在该实例中,例如由于最初选择的计算节点存在的硬件问题(或相反在其它情况中,由于在时间T1时仅7个计算节点可用于计算节点组中,其中一旦第八个计算节点随后可用,便将其动态添加),最初请求的第八个计算节点不能及时可用。因此,示出了事件E2265发生在变化C2之后不久(在大约时间T4时),其中PES终止原来的第八个计算节点(如果需要)(例如,如果其被冻结在中间状态下),并且开始提供第八个替代计算节点。如参照图2B更详细地讨论,在该实例中,PES已引起与添加初始的第八个计算节点相对应的时间T1时的变化C10a,但该变化C10a未能通过已添加且可用的实际第八个计算节点来完成,因此变化C10a未在时间线坐标图210的实际计算节点数量220中体现,也未以其它方式在图2A中示出。相反,在该实例中,事件E2被分成同时或接近同时发生的两个不同的事件E2a和E2b(未单独示出)。具体地讲,在该实例中,PES记录与未能正确初始化(例如在指定期限内)的第八个计算节点相对应的时间T4时的事件E2a,并且PES自动引发时间T4时的变化C10b(未示出)以终止未能正确初始化的初始的第八个计算节点。此外,在该实例中,初始的第八个计算节点由于事件E2a而发生的实际终止本身被视为时间T4时的个别事件E2b,个别事件E2b自动引发立即提供第八个替代计算节点。使得第一事件的变化引起的结果本身可被视为引起另一种变化的第二事件的此类链接事件和相应变化结果在追踪事件和相应变化结果之间的相互关系中可提供各种益处,如其它地方更详细地讨论。随后,根据事件E2b在时间T4时开始,并且在时间T5时结束的变化C3255使实际计算节点数量从七个变为八个,因为第八个替代计算节点可用作计算节点组的一部分。
在计算节点组的八个计算节点以预期的方式操作聚合时段260a的一部分之后,在大约时间T7,实际计算节点数量220发生另一种变化C4255,该变化由失效或者说是变得不可用的计算节点中的一个促使。相应事件E3265与变化C4大约同时发生,其中PES终止不可用计算节点(如果需要),并且任选地自动开始提供替代计算节点。具体地讲,以类似于此前针对事件E2所讨论的方式,事件E3在该实例中被分成同时或接近同时发生的两个不同的事件E3a和E3b(未单独示出)。因此,PES在该实例中记录与经检测已变得不可用的计算节点相对应的时间T7时的事件E3a,并且PES自动引发时间T7时的活动以终止不可用计算节点,例如以直接引起变化C4。此外,在该实例中,不可用计算节点由于事件E3a而发生的终止本身被视为在大约时间T7时自动引发以立即提供替代计算节点的个别事件E3b,但在其它实施方案和情况中,替代计算节点的任何这种提供相反地将被延迟直到在聚合时段260a结束时进行的协调活动H1。随后,在该实例中,变化C5255在大约时间T9时结束,该变化将实际计算节点数量恢复至八个,这由事件E3b直接引起,因为所述替代计算节点可用作计算节点组的一部分。在该实例中,暂时不更新正式记录的计算节点数量225以对应于变化C4和C5,也不更新以对应于先前的变化C1-C3,但在其它实施方案中,可更新正式记录的计算节点数量225以反映一些或所有此类变化,例如以连续或反复地将正式记录的计算节点数量225保持在与所更新的实际计算节点数量220一致的状态中。在该实例中,在聚合时段260a的其余时间内未发生其它计算节点能力可用性变化或事件,包括所有指定的触发器250不被满足,并且未接收动态指定的用户指令。因此,在所述时段260a结束时的时间T11时,考虑了第一组协调活动H1,但无需任何活动,因为当前所需、实际和正式记录的计算节点数量215、220和225分别在八个计算节点处均匹配。如果在聚合时段260a期间未进行代替不可用计算节点的变化C5(如该实例中所示),则在该聚合时段之后,该变化相反地会作为协调活动H1的一部分被引起,以便代替所述时间处的不可用计算节点(例如,结合在聚合时段260a期间请求或引起的任何其它动态可用性变化)。
然而,在第二聚合时段260b期间,发生了其它事件。具体地讲,事件E5265首先发生在大约时间T16时,从而与PES做出的自动确定相对应,即已通过提高CPU总平均利用率205a来使触发器TR-1250a被满足,如时间线坐标图205中通过CPU总平均利用率205a线上的第一个黑色椭圆所图示。对于十二个经请求的全部所需计算节点数量215c而言(或者无论当前所需的计算节点数量如何,可请求将所更新的所需计算节点数量设置为十二个),触发器TR-1的满足情况引发了将所需计算节点数量215增加4个计算节点的请求。类似地,在经过另外的额外时间之后,事件E6265接下来发生在大约时间T18时,从而与确定已通过提高网络带宽总平均利用率205b来使触发器TR-N 250c被满足相对应,如时间线坐标图205中通过网络带宽总平均利用率205b线上的黑色椭圆所图示。对于十个经请求的全部所需计算节点数量215d而言(或者无论当前所需的计算节点数量如何,可请求将所更新的所需计算节点数量设置为十个),触发器TR-N的满足情况引发了将所需计算节点数量215增加2个计算节点的请求。在经过较短的额外时间之后,事件E4265发生在大约时间T19时,其中对于十一个经请求的全部所需计算节点数量215b而言(或者无论当前所需的计算节点数量如何,可请求将所更新的所需计算节点数量设置为十一个),与计算节点组相关的用户提供了将所需计算节点数量215增加3个计算节点的动态指定请求。可例如根据注意到CPU总平均利用率205a为较高、计算节点组上的总计算负荷正在增加等的用户来做出该请求。
最后,在聚合时段260b结束之前不久,额外变化C6发生在大约时间T20时,该变化由失效或者说是变得不可用的该组计算节点中的一个促使。相应事件E9与变化C6大约同时发生,其中PES终止不可用计算节点(如果需要)。在该实例中,然而PES并非立即开始提供替代计算节点,而是决定等待直到即将进行的第二组协调活动H2在时间T21时开始(例如,根据时间T21之前所剩余的少量时间、根据替代计算节点的此类延迟提供等,所述延迟为在使用时变得不可用的任何计算节点的默认动作),因为可能的是将根据那些协调活动来减少计算节点组中计算节点的数量,并且无需所述替代计算节点。在其它实施方案中,PES相反地可立即开始提供替代计算节点(例如,基于在任何情况下未延迟不可用计算节点的替代;基于在该情况下未延迟不可用计算节点的替代(由于所需计算节点数量作为协调活动H2的一部分而可能增加而非减少);基于在该情况下未延迟不可用计算节点的替代(由于其它因素,诸如用户在稍后的时间T3之前已对八个计算节点进行支付);等)。具体地讲,以类似于此前针对事件E2和E3所讨论的方式,事件E9被分成同时或接近同时发生的两个不同的事件E9a和E9b(未单独示出)。因此,PES在该实例中记录与经检测已变得不可用的计算节点相对应的时间T20时的事件E9a,并且PES自动引发时间T20时的活动以终止不可用计算节点,例如以直接引起变化C6。此外,在该实例中,不可用计算节点由于事件E9a而发生的终止本身被视为大约时间T20时的个别事件E9b,该事件引发将该组的附加计算节点用作替代计算节点的请求,例如以将所需计算节点数量215保持在八个计算节点的所需数量215a。在该实例中,以类似于事件E4-E6的方式来处理事件E9b的请求,该请求被延迟直到将在当前聚合时段260b结束时进行的协调活动H2,但在其它实施方案和情况中,相反地可立即开始替代计算节点的这种提供。另外,在该实例中,未以类似于此前针对变化C4和C5描述的方式来更新正式记录的计算节点数量225以对应于变化C6,但在其它实施方案中,可更新正式记录的计算节点数量225以反映此类变化。
因此,在第二聚合时段260b结束时,开始协调活动H2,并且在该情况下会引起对计算节点组的动态修改。具体地讲,PES在该实例中将与事件E4、E5、E6和E9b的各种经请求的所需计算节点数量215b、215c、215d和215a相对应的经请求的修改聚合,并且决定对八个先前所需计算节点数量215a做出聚合的动态数量修改,同时聚合的动态数量修改在该实例中增加了四个附加计算节点(例如,基于采用经请求的数量修改中的最大值),以便对应于十二个所更新的当前所需计算节点数量215e。在其它实施方案中,可以其它方式来确定聚合的动态数量修改,例如以选择聚合的动态数量修改以便根据事件E9b来保持先前所需计算节点数量215a(例如,从而导致从当前的实际计算节点数量增加一个计算节点),以采用事件E4-E6的经请求的数量修改中的最小值(例如,从而导致从当前所需的计算节点数量增加两个计算节点),以采用事件E4-E6的经请求的数量修改的平均值(例如,从而导致从当前所需的计算节点数量增加三个计算节点),以采用事件E4-E6的经请求的数量修改的聚合值(例如,从而导致从当前所需的计算节点数量增加九个计算节点),以采用事件E4-E6的经请求的数量修改的最高优先级(例如,从而导致从当前所需的计算节点数量增加三个计算节点,其前提是例如相比事件E5和E6的触发器满足情况,E4的用户指令被视为具有较高优先级),以采用事件E4-E6的经请求的数量修改中第一次请求的修改或最后一次请求的修改(例如,从而导致从当前所需的计算节点数量分别增加四个或三个计算节点)等。在其中用户指令事件相比触发器满足事件具有较高优先级的一些实施方案和情况中(例如,如果用户指令始终会覆盖来自触发器满足事件的任何经请求的动态修改),PES还可防止其它触发器满足事件发生在接收用户指令事件之后的聚合时段期间,例如以在该实例中忽略(或绝不确定)发生在针对事件E4来接收用户指令之后的任何触发器满足事件。此外,在该实例中,在协调活动H2时,当前实际和正式记录的计算节点数量220和225在七个和八个计算节点处分别不同。因此,作为协调活动H2的一部分,PES开始向计算节点组提供五个附加计算节点,以将七个当前的实际计算节点数量增加至十二个新更新的所需计算节点数量,并且进一步更新正式记录的计算节点数量225以符合十二个新更新的所需计算节点数量。因此,在该实例中,5个计算节点的能力可用性变化间接地由以下方式引起:根据事件E9b来代替由于变化C7而变得不可用的一个计算节点,以及增加与来自事件E4、E5和E6的所确定的聚合数量修改相对应的4个附加计算节点。
在第三聚合时段260c期间,进一步发生其它事件和计算节点能力可用性变化。具体地讲,变化C7在大约时间T22时结束,其中当前可用的计算节点数量增加了五个至总共十二个计算节点,以反映其可用性在时间T21时开始的五个附加计算节点,并且实际计算节点数量220由此被更新。如时间线坐标图205所示,CPU总平均利用率205a和网络带宽总平均利用率205b均在变化C7之后降低,其中CPU总平均利用率205a迅速下降。具体地讲,在该实例中,CPU总平均利用率205a最终降至低于与触发器250b的指定标准相对应的20%的阈值,从而致使事件E8发生(包括确定触发器TR-3250b已被满足),如时间线坐标图205中通过CPU总平均利用率205a线上的第二个黑色椭圆所图示。对于十个经请求的全部所需计算节点数量215f而言(或者无论当前所需的计算节点数量如何,可请求将所更新的所需计算节点数量设置为十个),触发器的满足情况引发了将所需计算节点数量215减少2个计算节点的请求。
最后,在聚合时段260c结束之前,额外变化C8发生在大约时间T28时,该变化由失效或者说是变得不可用的该组计算节点中的一个促使。相应事件E10与变化C8大约同时发生,其中PES终止不可用计算节点(如果需要)。以类似于针对变化C6的方式,PES在该实例中选择等待直到第三组协调活动H3在时间T31时开始,而非立即开始替代不可用计算节点(例如,因为事件E8使得可能或很可能的是,计算节点组中计算节点的所需数量此后会减少),但在其它实施方案中,PES相反地可立即开始提供替代计算节点,具体地讲,以类似于此前针对事件E2、E3和E9所述的方式,事件E10在该实例中被分成同时或接近同时发生的两个不同的事件E10a和E10b(未单独示出)。因此,在该实例中,PES记录与经检测已变得不可用的计算节点相对应的时间T28时的事件E10a,并且PES自动引发时间T28时的活动以终止不可用计算节点,例如以直接引起变化C8。此外,在该实例中,不可用计算节点由于事件E10a而发生的终止本身被视为大约时间T28时的个别事件E10b,该事件引发将该组的附加计算节点用作替代计算节点的请求,例如以将所需计算节点数量215保持在十二个计算节点的所需数量215e。在该实例中,以类似于事件E9b的方式来处理事件E10b的请求,该请求被延迟直到将在当前聚合时段260c结束时进行的协调活动H3,但在其它实施方案和情况中,相反地可立即开始替代计算节点的这种提供。另外,在该实例中,未以类似于此前针对变化C4-C6所述的方式来更新正式记录的计算节点数量225以对应于变化C8,但在其它实施方案中,可更新正式记录的计算节点数量225以反映此类变化。
因此,在第三聚合时段260c结束时,开始协调活动H3,并且会导致计算节点组发生变化。具体地讲,PES在该实例中将与已经发生在时段260b期间的事件(在该实例中仅为事件E8和E10b)相对应的经请求的修改聚合,并且决定对十二个先前所需计算节点数量215e做出聚合的动态数量修改,所述修改在该实例中减少了两个计算节点,以便对应于十个所更新的当前所需计算节点数量215g。此外,在协调活动H3时,当前实际和正式记录的计算节点数量220和225在十一个和十二个计算节点处分别不同。因此,作为协调活动H3的一部分,PES按照十一个计算节点的当前实际计算节点能力来引发十二个当前正式的计算节点数量发生变化,以达到十个当前所需的实际计算节点数量,以便将现有计算节点之一从计算节点组中移除(例如,以任选地在完成已开始的一些或所有动作之后终止在已移除的计算节点上执行程序,并且以使该计算节点可供其他用户将来使用)。因此,在该实例中,在时间T31时将现有计算节点之一移除的能力可用性变化间接地由以下方式引起:终止关于事件E10b的一组计算节点,以及请求减少与事件E8相对应的2个计算节点。PES进一步更新正式记录的计算节点数量225以符合十个新更新的所需计算节点数量。在时间T31之后不久,最终变化C9在大约时间T32时结束,其中当前可用的计算节点数量减少了一个至总共十个计算节点,以反映在时间T31时开始从计算节点组中移除的计算节点,并且实际计算节点数量220由此被更新,在其它实施方案中,在决定做出所述变化时,变化C9可基本上立即发生在时间T31,例如其前提是立即将待移除的计算节点从计算节点组的其它活动中退出,甚至在已移除的计算节点暂时执行且可用于继续进行操作时。
另外,虽然在该实例中所示出的协调活动H1、H2和H3发生在单个时间点,但应当理解到一些或所有协调活动可实际上发生在一段时间内,并且还可具有持续一段时间的其它效果。例如,在至少一些实施方案中,由PES引发的对计算节点组的程序执行能力的一些或所有变化可产生可能不允许至少一些其它类型的事件或变化的临时锁定期。可引起此锁定的PES-指示的程序执行能力变化可包括例如作为协调活动的一部分来引起的程序执行能力增加和/或降低(例如,添加新计算节点、移除现有计算节点等),和/或响应于PES决定(例如,计算节点失效、接收用户指令、用户指定的触发器的满足情况等)而立即引发的程序执行能力变化。此类锁定可具有各种类型的持续时间(例如,直至指定的结果或发生,例如直到所添加的计算节点已变得可用;指定的持续时间,诸如所添加的计算节点变得可用的平均或预期时间;等),并且在一些实施方案中可根据PES引发的变化的类型而有所不同。在此类锁定期间,可能不允许至少某些类型的事件或变化,例如不允许在该锁定持续时间期间用户指定的触发器被满足(或通过忽略任何此类触发器满足情况),和/或不允许在该锁定持续时间期间接受用户指令(或通过忽略任何此类用户指令)。此外,在一些实施方案中,与计算节点组相关的用户可同样地指定以与锁定冷却期类似的方式操作的冷却期,诸如紧接锁定或相反地发生在其它时间的指定时间量的冷却期。如同锁定,在冷却期间,可能不允许至少某些类型的事件或变化,例如以不允许在冷却期间用户指定的触发器被满足(或通过忽略任何此类触发器满足情况)。应当理解到,在其它实施方案中,用户和/或PES可以其它方式来控制对计算节点组的修改。
因此,这样,PES操作以管理由一组计算节点提供给用户的程序执行能力,包括以根据各种情况对该计算节点组做出各种动态修改。应当理解到,图2A中示出的事件和变化仅提供用于进行示意性的目的,并且PES的所述实际事件、变化和其它操作在其它实施方案和情况中可能不同。
图2B示出了用于将因果关系信息自动归因于此前参照图2A所讨论的计算节点数量动态修改的技术的实例,诸如可由PESSM模块的实施方案自动进行的技术。具体地讲,图2B示出了储存与图2A所示信息中的一些相对应的信息的两个实例数据库表数据结构,其中图2B的实例表280储存与图2A的示例性计算节点组(图2B中称为“第1组”)发生的示例性计算节点能力可用性变化有关的各种信息,并且图2B的实例表290储存与图2A的示例性计算节点组(第1组)发生的示例性事件有关的各种信息。
实例表280包括各自对应于参照图2A所讨论的示例性变化C1-C10中之一的各行或项285a-285k,其中示出了各行的各栏或列280a-280x。具体地讲,在该实例中,各行包括唯一标识符(″ID″)280a,与变化相对应的适用计算节点组的ID 280b、程序执行能力变化的类型280c、程序执行能力变化的预期结果的指示280d、关于变化的各种详情280e、变化的开始和结束时间280f和280g、发生变化或者说是与变化相关的聚合时段280h(在该实例中为基于在聚合时段结束时进行的协调活动所提及的聚合时段)、变化-事件关结ID 280x和任选的各种其它信息。作为一个示例性实例,行285a对应于第1组的变化C1,变化C1对应于第1组的计算节点数量的变化,该变化涉及增加4个计算节点并且在聚合时段H1期间于时间T02时结束。其它行包括类似的信息。
实例表290包括各自对应于参照图2A所述的示例性事件E1-E10中之一的各行或项295a-295m,其中示出了各行的各栏或列290a-290x。具体地讲,在该实例中,各行包括唯一标识符(″ID″)290a、与事件相对应的适用计算节点的ID 290b、事件的类型290c、关于事件来源的信息290d、事件的时间290e、发生事件或者说是与事件相关的聚合时段290f(在该实例中指基于在聚合时段结束时进行的协调活动)、变化-事件关结ID 290x和任选的各种其它信息(例如,与所接收的用户指令相关的特定用户)。作为一个示例性实例,行295h对应于第1组的事件E4,该事件E4对应于在聚合时段H2期间的时间T19时所接收的用户指令,该指令请求第1组的所需计算节点数量增加3个计算节点。其它行包括类似的信息。
在图2B的实例中,表280和290的变化-事件关结ID信息280x和290x反映了被归因以反映变化和事件之间的关系的因果关系信息。具体地讲,在该实例中,如果表280和290中的行针对变化-事件关结ID信息280x和290x而共享共同的值,则其反映了相应事件和变化之间的被归因的因果关系。作为一个实例,如此前参照图2A所讨论,事件E3b对应于提供变为不可用的计算节点的替代计算节点,所述计算节点可直接归因于对应于由此将计算节点添加至该组的变化C5。因此,行295e(对应于事件E3b)和行285g(对应于变化C5)共享共同的关结标识符。
相反地,与在协调活动H2期间开始的添加五个计算节点相对应的变化C7不具有可直接归因于该变化的单个事件。具体地讲,事件E4、E5和E6各自请求对第1组进行动态修改,这些动态修改经聚合且共同用于促使针对变化C7而添加五个计算节点中的四个。因而,行295f-295h(对应于事件E4-E6)和行285i(对应于变化C7)均共享共同的关结标识符。此外,在图2A的实例中,被添加作为变化C7的一部分的五个计算节点之一为由于变化C6而变得不可用的计算节点的替代节点,同时开始对应于事件E9b的替代计算节点。因此,行295j(对应于事件E9b)和行285i(对应于变化C7)也共享相同的共同关结标识符。在其它实施方案中,如果通过提供对应于事件E4-E6的四个附加计算节点以单独地在事件E9b中开始提供替代计算节点,例如以立即代替不可用计算节点,则所述替代计算节点的相应变化将在时段260b和由此进行的协调活动H2结束之前发生,并且将在表280中与事件E9b和共享不同的相应关结标识符的所述额外变化单独地示出。另外,虽然针对变化C7而添加的五个计算节点以聚合的方式在表280的单行中示出,但在其它实施方案中,所添加的每个计算节点均可在表280的单独的行285中表示,并且如果如此,其各自共享相同的关结标识符N7,该关结标识符N7目前针对聚合变化C7的唯一行285i而示出。
此外,在该实例中,在表280中追踪了变化,这些变化不仅对应于基于动态用户指令和/或被满足的用户触发器的计算节点数量的动态修改,还基于计算节点数量的意外变化(例如,由于计算节点失效或者说是变得不可用)。此类变化基于监测活动来检测,并且被示为触发额外变化的事件(例如提供替代计算节点),但在其它实施方案中,可以其它方式对其进行处理,例如不追踪此类变化和/或不将系统启动的替代活动视为事件。此外,虽然表280和290中的变化-事件关结信息未对可直接归因于一个或多个相应事件(例如,立即引发那些变化的事件)的变化与可间接归因于一个或多个相应事件(例如,例如在协调活动期间聚合在一起且共同引起那些变化的事件)的变化进行区分,但在其它实施方案中,可进一步追踪此类信息。
如前所述,对计算节点组的特定程序执行能力动态修改的责任归因可提供各种益处,包括向与计算节点组相关的用户提供为何会发生变化的解释。还可响应于从用户或其它来源处接收的各类询问来产生和/或使用此类责任归因信息,这些询问诸如关于识别哪些(多个)事件为引起一组一个或多个计算节点的可用性发生指示的特定程序执行能力修改或其它变化的原因的请求和/或关于哪些(多次)程序执行能力修改或其它计算节点组的(多个)可用性变化由一个或多个指示的事件引起的请求。参照图2B所讨论,表280和290中示出的关结信息提供了一种用于追踪和提供责任归因信息的机制。例如,对于图2A中与变化C7相对应的添加5个计算节点而言,用户可能想知道为何添加了5个计算节点(例如,特别是按照添加3个计算节点的事件E4的用户指令)。通过采用图2B中示出的关结信息,PES或其它系统可易于自动生成人可读的解释。例如,响应于关于与图2A的变化C1相对应的添加四个计算节点的原因的用户请求,PES或其它系统可例如指示以下内容:“变化C01由时间T1时的事件E01直接引起。事件E01为来自用户UUU以开始提供一组8个计算节点的请求”。该信息可这样产生:通过采用行285a中对应于变化C1的关结信息280x以识别表290中对应于事件E1的行295a,并且以所需方式从行285a和295a中提取和格式化信息(例如,以基于用户请求或先前的用户首选项的格式、以基于PES默认值的格式等)。类似地,响应于关于执行用户指令E1以开始提供该组八个计算节点的用户请求,PES或其它系统可例如指示以下内容:“时间T1时的事件E01直接引起变化C01、C02和C03。变化C01为添加4个计算节点,其在时间T1时开始并且在时间T2时结束。变化C02为添加3个计算节点,其在时间T1时开始并且在时间T3时结束。变化C03为添加1个计算节点,其在时间T1时开始,但未结束”。作为另一个实例,响应于关于与图2A的变化C7相对应的添加五个计算节点的原因的用户请求,PES或其它系统可例如指示以下内容:“变化C07由发生在时段T11至T21期间的事件E05、E06、E04和E09b间接引起。事件E05为基于触发器TR-1的满足情况的4个附加计算节点的请求。事件E06为基于触发器TR-N的满足情况的2个附加计算节点的请求。事件E04为基于来自用户UUU的用户提供动态指令的3个附加计算节点的请求。事件E09b为基于该组中不可用计算节点的自动终止的1个替代计算节点的请求”。作为对此类文本串的补充或替代,责任归因信息还可以各种其它形式诸如自动报表(例如,以表格、图表等)以及以定期或其它预定方式来产生。应当理解到,在其它实施方案中,此类责任归因信息可以各种其它方式来产生和使用。
应当理解到,关于图2B中示出的事件和变化的信息仅提供用于进行示意性的目的,并且对于所储存的信息而言,此类信息的储存在其它实施方案中可以各种其它方式来进行。此外,在其它实施方案中,PES可储存关于用户和计算节点组的各种其它类型的信息,例如以提供储存关于用户定义的触发器、关于监测的性能测量信息、关于用户账号等的信息的附加表。
另外,图2A和2B的前述实例提供用于进行示意性的目的,并且其它实施方案可以各种方式不同于这些实例。例如,虽然在这些实例中,程序执行能力根据计算节点的数量来测量和修改,例如其前提是各种可用计算节点被视为等效(例如,具有等效的计算资源),但可提供其它实施方案,其中各种可用计算节点可为具有不同特性(例如不同的处理能力、内存量、平台规格等)的不同类型,和/或其中以不同于计算节点数量的方式来追踪程序执行能力。在一些此类实施方案中,各种请求可包括一个或多个特定类型的计算节点的指示,所述计算节点用于被选择来执行与所述请求相关的程序的多组计算节点中,并且那些请求仅可在相应的指定类型的计算节点上实现。
另外,在至少一些实施方案中,PES或其它系统还可进行作为管理多组计算节点的一部分的其它类型的活动。例如,如前所述,PES或其它系统可决定在各个时间从计算节点组中添加或移除计算节点,各个时间包括如下:在聚合时段结束时进行的协调活动期间(响应于在所述时段期间被满足的一个或多个触发器和/或在所述时段期间接收的用户指令);在响应于经指定或确定而具有瞬即效应的用户指令或触发器满足情况的任何时间;在响应于PES或其它系统的自动活动例如以代替失效的计算节点和/或终止并移除当前操作被禁止的计算节点的任何时间;等。在至少一些实施方案中,PES或其它系统还可在确定至少一些此类计算节点组修改的确切时间时考虑其它因素。例如,在用户将负责针对给定时段使用给定数量的计算节点的情况中(例如,已经收取了X个计算节点在下一小时的费用),此类信息可用于确定关于计算节点组的至少某些类型的修改的时间。如果PES或其它系统决定将该组中计算节点的数量减少至低于X,则PES或其它系统可决定在实际上将计算节点数量减少至低于X之前,等待直到接近给定时段或给定时段结束时(例如,在已向用户收取费用的小时结束时)。类似地,如果一组计算节点在接近进行新的协调活动时失效(例如,在接近将经请求的计算节点数量修改聚合期间的一段时间结束时),则PES或其它系统可决定对实际节点数量和任选的正式记录的节点数量进行更新,以反映所述失效,但无需立即开始添加替代计算节点-这样,如果已确定在协调活动期间聚合经请求的计算节点数量修改可将该组的计算节点数量减少一个或多个计算节点,则失效的计算节点可用作一个减少的此类节点,而非终止该组的执行计算节点。
在一些实施方案中,PES或其它系统可同时管理对计算节点组进行的多次不同类型的修改。作为一个实例,可采用单个位置处的计算节点来将计算节点组管理在当前所需的计算节点数量,但用户可决定为计算节点组指定第二类型的尺度,使得该组中计算节点的指定的所需子集位于不同的第二位置。如果如此,PES或其它系统可操作以通过各种方式来满足第二尺度的期望值,各种方式包括通过将任何新计算节点逐步添加至第二位置处的组中并且从第一位置处的组中逐步移除任何现有计算节点直到实现第二尺度的期望值,或者立即终止第一位置处的组中的现有计算节点以能够使替代计算节点添加至第二位置处的组中。此类逐步添加和/或移除可以其它地方更详细地讨论的方式中的任何方式来触发,包括代替不可用计算节点、响应于动态指定的用户指令和/或被满足的用户指定的触发器来修改计算节点数量等。另外,虽然计算节点数量和位置在该实例中为同时均衡,但可以类似的方式来进行各种其它类型的变化(例如,例如根据具有不同相关数量的计算资源的不同类型将现有计算节点从第一种类型改变为第二种类型)。此外,虽然通过改变计算节点数量在一些实例中进行了程序执行能力修改,但在其它实施方案中,此类能力修改可通过改变该组中一个或多个计算节点的程序执行能力来进行(例如,通过用具有或多或少的一种或多种类型的相关计算资源的第二计算节点代替第一计算节点、通过对已成为该组的一部分的计算节点中的一个节点可用的一种或多种计算资源的量进行修改等)。
如前所述,PES可在各个实施方案中提供和使用各类功能,并且这些功能可以各种方式提供。例如,在一些实施方案中,可从PES获得的程序执行能力可包括多个计算节点,所述计算节点用于代表用户来执行程序,例如通过经由一个或多个网络或能够在计算机之间传输数据的其它数据交换介质互连的多个物理计算机。这些计算机中的至少一些可在一些实施方案中各自包括同时执行多个程序的足够的计算相关资源(例如,足够的可写内存、非易失性存储、CPU周期或其它CPU使用率度量、网络带宽、交换空间等),并且这些计算机中的至少一些在一些此类实施方案中可各自提供多个虚拟机计算节点,所述虚拟机计算节点各自可代表不同的用户来执行一个或多个程序。此外,在各个实施方案中,PES可代表多个用户来执行各类程序。例如,代表用户来执行的此类程序可包括一个或多个操作系统、应用(例如,服务器和/或其它软件应用)、实用程序、程序库等。另外,在至少一些实施方案中,此类程序可包括可执行的软件映像,诸如虚拟机映像,其在一个或多个虚拟机计算节点上可启动或者说是可受载,并且各自可包括操作系统软件、用于一个或多个应用程序的软件,和/或配置信息等。
在至少一些实施方案中,通过PES在一组一个或多个计算节点上执行一个或多个程序可响应于立即执行那些程序的当前执行请求来引发。或者,所述引发可基于此前接收的程序执行请求,该请求可对当前时间内的那些程序预定或者说是保留日后执行。程序执行请求可以各种方式来接收,例如直接从用户处接收(例如,经由交互式控制台或由程序执行服务提供的其它GUI),或者从自动引发一个或多个其它程序或其它实例的自行执行的用户执行程序处接收(例如,经由程序执行服务提供的API,诸如使用网络服务的API)。程序执行请求可包括用于引发一个或多个程序的执行的各种信息,诸如可执行的程序或待执行的程序的其它复本、此前经注册或者说是提供用于执行的程序的指示,和待同时执行的许多程序实例(例如,表示为单个所需数量的实例、最小和最大数量的所需实例等),以及用于执行一个或多个程序的各种其它类型的首选项和/或要求(例如,资源分配、用于执行的地理和/或逻辑位置、其它程序和/或计算节点的临近执行、时间相关标准等)。
在接收用于在指示的时间执行一个或多个程序实例的请求之后,PES可决定将一个或多个计算节点用于执行程序实例的一组中。在一些实施方案中,使用计算节点(即使用于将来执行)的决定在所述请求时进行。在其它实施方案中,将计算节点用于将来执行一个或多个程序实例的决定可基于当时可用的信息而被延迟至稍后的时间,诸如将来的执行时间。在一些实施方案中,将哪些计算节点用于代表用户来执行一个或多个程序的决定在执行请求之前做出,例如在用户预订和/或注册以使用PES的时间和/或执行用户程序的请求之前的另一个时间。例如,在一些此类实施方案中,一个或多个计算节点在一段时间内可与用户相关,使得可在所述期间的任何时间(诸如接收在所述期间执行所述用户的软件的请求的任何时间)代表该用户在相关的计算节点上执行程序。另外,在一些实施方案中,将哪些计算节点用于代表用户来执行程序的决定可在一个或多个计算节点和/或一个或多个计算节点的计算资源可用于执行所述用户的程序时做出,例如以在计算节点未被使用和/或可以其它方式用于执行程序时,在一个或多个计算节点上执行一个或多个待处理请求的程序。
将哪些计算节点用于执行各程序复本或实例的决定可以各种方式做出,包括基于在请求中指定的或者说是为程序和/或相关用户指定的任何首选项和/或要求(例如,在注册时间等)。例如,如果确定了用于执行程序实例的优选和/或所需资源(例如,内存和/或存储;CPU类型、周期或其它性能度量;网络容量;平台类型等)的标准,则将适当的计算节点用于执行程序实例的决定可至少部分地基于计算节点是否具有可用于满足那些资源标准的足够资源。关于执行和配置程序以在程序执行服务上执行的其它细节包括在2006年3月31日提交的名称为″Managing Execution of Programs by Multiple ComputingSystems″的待审的美国专利申请No.11/395,463中,该专利全文据此以引入的方式并入本文。
在一些实施方案中,费用可与PES的使用相关,使得PES可代表用户来执行程序以交换该用户对一项或多项费用的付款。例如,在一些实施方案中,根据分配用于代表用户来执行一个或多个程序的程序执行能力的量和/或类型,例如根据分配用于执行该用户的程序的许多处理单元中的一个或多个、内存量、存储量、网络资源量等,可以向该用户收取费用。在一些实施方案中,费用可基于其它因素,诸如用于执行程序的计算资源的各种特性,例如基于CPU能力或性能、平台类型(例如,32位、64位等)等。在一些实施方案中,费用可根据各种使用因素来收取,诸如每次使用服务的价格、使用计算服务的每个时间单位的价格、每个所用存储量的价格、每个传入和/或传出的数据的价格等。在至少一些实施方案中,如下文更详细地讨论,费用可基于各种其它因素,诸如关于执行程序的各种性质(例如,执行连续性、故障容差等)。在至少一些实施方案中,PES供应商可提供用于代表多个用户来执行程序的各种等级、类型和/或水平的服务或功能中的一种或多种,并且在一些此类实施方案中,各种费用可与各种等级、类型和/或水平的服务相关。另外,例如,等级可用于由PES提供的特定类型的功能,例如以针对第一数量的程序执行能力功能收取第一等级的费用(例如,高达所用计算节点的指定的第一阈值)、针对第二数量的程序执行能力功能收取第二等级的费用(例如,较低价格等级)(例如,高于所用计算节点的指定的第一阈值和高达所用计算节点的指定的第二阈值)等。关于与程序执行服务相关的各种费用的其它细节包括在2007年12月21日提交的名称为″ProvidingConfigurable Pricing for Execution of Software Images″的待审的美国专利申请No.11/963,331中,该专利全文据此以引入的方式并入本文。
此外,PES可在各个实施方案中提供和使用各种其它类型的功能,如其它地方更详细地讨论。
图3为示出适用于对管理多个用户的多组计算节点的技术进行实施的系统的示例性实施方案的框图。具体地讲,图3示出了适用于提供程序执行服务的至少一些功能的服务器计算系统300,以及程序执行服务的用户可以使用的各个客户计算系统350、程序执行服务可以使用的计算节点360、和其它计算系统380。在图示实施方案中,服务器计算系统300具有以下部件,其包括CPU 305、各种I/O部件310、存储装置320和存储器330。图示的I/O部件包括显示器311、网络接线312、计算机可读介质驱动器313和其它I/O设备315(例如,键盘、鼠标、扬声器等)。另外,图示的用户计算系统350具有与服务器计算系统300的部件相类似的部件,其包括CPU 351、I/O部件352、存储装置354和存储器357。其它计算系统380和计算节点360各自也可包括与参照服务器计算系统300所示出的部件中的一些或全部相类似的部件,但为了简洁起见,在该实例中未示出此类部件。
程序执行服务系统管理器模块340的实施方案正在存储器330中执行,并且通过网络390(例如,经由因特网和/或万维网、经由私用蜂窝网络等)与计算系统350和380以及计算节点360进行交互。在该示例性实施方案中,PESSM 340包括关于管理(例如结合由PESSM340管理的程序执行服务)与用户计算系统350进行交互的各个用户(未示出)对多个计算节点360的使用的功能。其它计算系统350和380以及计算节点360可将各种软件作为与PESSM的交互作用的一部分来执行。例如,用户计算系统350可在存储器357中执行软件以与PESSM 340进行交互(例如,作为万维网浏览器或专用客户端应用程序的一部分),例如以配置和/或请求代表那些系统的用户在一个或多个计算节点360上以各种方式来执行程序,以及以实施各种其它类型的动作,如其它地方更详细地讨论。可将关于PESSM模块340的功能的各种信息储存在存储装置320中,诸如关于用于代表多个用户来执行程序的配置、执行和/或注册的信息322、关于计算节点组的程序执行能力修改的信息324(例如,关于用户指定的预定义触发器的信息;关于来自用户的动态指定的能力修改指令的信息;关于计算节点性能测量的信息和关于确定指定的触发器是否被满足的其它信息;各组的所需、实际和正式记录的计算节点数量的当前值;等),以及关于特定计算节点组的特定程序执行能力修改的因果关系归因的信息326(例如,通过列出所发生的至少一些事件和各组计算节点的至少一些变化,并且将特定事件与特定变化联系起来,例如以类似于图2B和其它地方所讨论的方式)。
在PESSM模块340接收在一组一个或多个计算节点360上执行一个或多个程序的请求(或其它指示)之后,PESSM模块340选择该组的一个或多个计算节点,并且引发那些程序在那些计算节点360上的执行。另外,PESSM模块340可进一步与计算节点360进行交互,以随后终止所引发的程序在所述计算节点上的执行,将所述程序中的一个或多个移动至一个或多个其它计算节点360或计算系统380等。计算节点360在各个实施方案中可具有各种形式,例如以包括许多物理计算系统和/或在一个或多个物理计算系统上执行的许多虚拟机。在一些实施方案中,服务器计算系统300和计算节点360可为数据中心或其它组的协同定位计算系统的一部分,或者可以其它方式为专用网的计算节点。另外,在一些实施方案中,PESSM模块340可与一个或多个其它计算系统380进行交互,以启动或终止一个或多个程序在那些计算系统上的执行,例如其前提是计算系统380由提供计算节点以供其他用户使用的一个或多个第三方参与者提供。在一些实施方案中,PESSM模块340可进一步或相反地管理一种或多种类型的计算相关资源或服务(除程序执行服务之外)(例如,持久性或临时数据存储服务、消息服务、数据库服务等)的使用权。
另外,程序执行服务能力维护管理器模块345的实施方案正在存储器330中执行,并且在该实施方案中通过网络390与计算节点360进行交互。具体地讲,在该示例性实施方案中,PESCMM模块345包括关于监测计算节点360中的一个或多个或者说是与其进行交互以追踪那些计算节点的使用的功能,例如以确定计算节点组的当前实际程序执行能力和/或确定与计算节点组的一些或所有计算节点相对应的当前性能特性。如前所述,此类信息可储存在存储装置320上和/或其它位置,并且可以各种方式被模块340和345使用。例如,在一些实施方案中,如果模块345发现计算节点已失效或者说是变得不可用(例如,作为提供或者说是初始化计算节点以用作计算节点组的一部分的过程中的一部分,在计算节点已用做计算节点组的一部分之后等),则模块345可自动采取动作以将不可用计算节点用新计算节点来代替。在其它实施方案中,模块345可能相反地不可对计算节点进行一些或所有监测,例如其前提是模块345相反地从另一个来源处获得关于计算节点组的当前实际程序执行能力和/或与计算节点组的一些或所有计算节点相对应的当前性能特性的信息,然后视情况将该信息用于维持计算节点组的程序执行能力。
应当理解到,计算系统300、350和380以及计算节点360仅为示例性的,并且并非旨在限定本发明的范围。所述计算系统和/或节点相反地可各自包括多个交互计算系统或设备,并且所述计算系统/节点可包括通过一个或多个网络(诸如因特网)、经由万维网或经由专用网(例如移动通信网络等)连接至未示出的其它设备。更一般地说,计算节点或其它计算系统可包括可进行交互且执行所述类型的功能的硬件或软件的任何组合,包括但不限于台式电脑或其它计算机、数据库服务器、网络存储设备和其它网络设备、PDA、手机、无线电话、寻呼机、电子整理器、因特网设备、电视系统(例如,采用机顶盒和/或个人/数字视频录像机),以及包含适当通信能力的各种其它消费品。另外,由图示的模块340和/或345提供的功能可在一些实施方案中分配于其它模块中。类似地,在一些实施方案中,可能不可提供模块340和/或345的一些功能和/或其它附加功能可能是可用的。
也应当理解到,虽然各个项目在使用时被示为储存在存储器中或存储装置上,但这些项目或其部分可在为了存储管理和数据完整性的存储器和其它存储设备之间传送。或者,在其它实施方案中,所述软件模块和/或系统中的一些或全部可在另一台设备上的存储器中执行,并且经由计算机之间通信与图示的计算系统进行通信。此外,在一些实施方案中,所述系统和/或模块中的一些或全部可以其它方式来实施或提供,这些方式诸如至少部分地以固件和/或硬件的方式,包括(但不限于)一个或多个专用集成电路(ASIC)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等。也可将所述模块、系统和数据结构中的一些或全部(例如,作为软件指令或结构化数据)储存在计算机可读介质上,诸如硬盘、存储器、网络,或者通过适当的驱动器或经由适当的连接件读取的便携式介质物件。所述系统、模块和数据结构也可作为产生的数据信号(例如,作为载波或者其它模拟或数字传播信号的一部分)在各种计算机可读传输介质(包括无线和有线/电缆介质)上传输,并且可采取各种形式(例如,作为单一或多路模拟信号的一部分,或者作为多个离散数字包或帧)。在其它实施方案中,此类计算机程序产品也可采取其它形式。因此,本发明可通过其它计算机系统配置来实施。
图4为程序执行服务系统管理器程序400的示例性实施方案的流程图。所述程序可通过以下方式来提供,例如执行图1A和图1B各自的PESSM模块110和180,和/或图3的PESSM模块340,例如以有助于管理用户对多组计算节点的使用,以及在某些情况下进行其它类型的管理操作。在该图示实施方案中,程序400管理程序执行服务的各个使用方面,该程序执行服务提供了代表多个用户来执行程序的程序执行能力。
在图示实施方案中,所述程序从接收信息或请求的图框405处开始。所述程序继续至图框410,以确定所接收的请求或信息(诸如来自用户的请求)是否是关于引发一个或多个程序在一组计算节点上的执行。如果是,所述程序继续至图框415,以获得关于经请求的程序执行的信息,诸如计算节点组的程序执行能力的初始所需量(例如,所需计算节点数量)、任选地一个或多个待执行的程序以及任选地一个或多个用户指定的能力修改触发器。如其它地方所讨论,在一些实施方案中,用户可从各类计算节点中的一个或多个中选择和/或可以其它方式指定各种量和/或类型的所需计算资源(例如,处理单元类型/量、内存量、平台规格等)。在图框420中,所述程序然后选择计算节点以用于该组中,并且在图框425中,开始使那些所选计算节点可供用户使用,例如通过提供所选计算节点并且任选地引发一个或多个待执行的程序的执行。所述程序也将该组中的所选计算节点的所需程序执行能力指定为该组的正式记录的初始程序执行能力。当代表用户可使用计算节点时,可以各种方式使该用户获知其可用性,或在其它实施方案中,计算节点可以自动方式进行操作,而无需用户的进一步交互。所述程序然后继续至图框430,以储存关于计算节点组的信息,包括该组的任何用户指定的触发器。
如果相反地在图框410处确定未接收到引发一组计算节点的执行的请求,则所述程序相反地继续至图框440,以确定是否接收到关于修改现有计算节点组的程序执行能力的请求。如果是,所述程序继续至图框445,以接收和储存关于修改所指示的现有计算节点组的程序执行能力的动态指定的用户指令。在图示实施方案中,用户指令可与发生在当前聚合时段期间的其它可能的程序执行能力修改请求聚合在一起,并且在下次进行协调活动期间进行进一步处理(例如参照图框465-477),但在其它实施方案中,相反地可立即执行至少一些此类用户指定的修改请求。
如果相反地在图框440处确定未接收到修改一组计算节点的程序执行能力的请求,则所述程序相反地继续至图框460,以确定是否当前要针对一个或多个计算节点组的程序执行能力进行定期或者说是反复的协调活动,例如在此计算节点组的程序执行能力修改请求的聚合时段结束时。如果是,所述程序继续至图框465,以确定当前进行协调活动的一个或多个计算节点组(例如,聚合时段已结束的计算节点组和一个或多个程序执行能力动态修改已被聚合的计算节点组),并且在图框467中,选择下一个经确定的计算节点组,从第一个开始。所述程序然后继续至图框470,以执行进行反复能力协调活动的程序,其中此程序的一个实例将参照图5更详细地描述。所述程序接下来继续至图框475,以执行进行关于程序执行能力修改的因果关系归因的活动(在图框470中进行)的程序,其中此程序的一个实例将参照图6更详细地描述。在图框475之后,所述程序继续至图框477,以确定是否要处理更多经确定的计算节点组,并且如果是,所述程序返回至图框467,以选择下一个经确定的此计算节点组。
如果相反地在图框460处确定当前未针对一个或多个计算节点组的程序执行能力进行定期或者说是反复的协调活动,则所述程序相反地继续至图框480,以任选地进行一个或多个其它指示的操作。此类操作可包括例如以下中的一个或多个:关于进行其它类型的程序执行的用户请求(如果所提供的程序执行服务提供了此类其它程序执行类型),例如以在单个计算节点上执行单个程序;未立即执行的用户指定的程序执行能力修改请求(例如,终止执行所指示的特定计算节点的用户指令,例如如果该计算节点不能正常运行);指定附加触发器或者说是修改所指示的计算节点组的配置信息的用户请求;针对所指示的计算节点组立即进行协调活动的用户请求,诸如作为反复的协调活动的补充或替代(例如,如果仅在用户请求时才进行协调活动);获得关于与用户相关的一个或多个计算节点组的各种状态信息的用户请求;向用户进行管理相关活动(诸如预订、注册或付款操作)的请求;等。
在图框430、445或480之后,或者如果相反地在图框477中确定经确定的附加计算节点组不可用,则所述程序继续至图框485,以根据图框405中所接收的信息或请求或者以其它方式(例如定期地)引发的信息或请求,任选地进行任何用户计费(或偿付)活动,例如以根据提供给这些用户的程序执行功能来从一个或多个用户处收取和/或收集费用。所述程序还可视情况任选地进行定期内务操作。
在图框485之后,所述程序继续至图框495,以确定是否要继续,例如直到终止执行所述程序的明确指示时。如果确定要继续,则所述程序返回至图框405,否则,继续至图框499并且结束。应当理解到,可在一些实施方案和情况中进行其它类型的活动,例如以确定用户是否被授权进行经请求的特定操作,以针对某些类型的经请求的操作立即从用户处获得付款等。另外,虽然用户请求且其它操作在图示实施方案中被指示为以专门针对特定计算节点组和特定相关用户的方式来进行,但在其它实施方案中,一些或所有此类操作相反地可以更普遍地例如应用于与单个用户相关的多个计算节点组和/或从与一个或多个计算节点组相关的多个用户处应用。
图5为递归能力协调程序500的示例性实施方案的流程图。所述程序可通过以下方式来提供,例如执行图1A和图1B各自的PESSM模块110和180,和/或图3的PESSM模块340,例如该程序可从图4中的程序400的图框470处开始。
在图示实施方案中,所述程序开始于图框505,其中其获得了待进行的能力协调活动的当前所选计算节点组的指示。在图框515中,所述程序然后检索关于所选计算节点组的正式记录的程序执行能力的信息,例如根据先前针对所选计算节点组进行的协调活动(或如果该活动为所进行的第一次协调活动,则为所选计算节点组的正式记录的初始程序执行能力),和/或根据可由PES能力维护管理器模块对正式记录的程序执行能力进行的后续修改(例如,如参照图7更详细地描述)。所述程序然后继续至图框520和525,以分别确定所选计算节点组的当前实际和当前所需程序执行能力。确定当前实际程序执行能力可包括例如检索此前由PES能力维护管理器模块作为监测所选计算节点组的一部分来储存的信息,但在其它实施方案中,所述程序500可动态确定当前实际能力(例如,通过动态请求PES能力维护管理器模块或其它监测来源提供该信息)。
在图框525中确定当前所需程序执行能力可包括例如检索以下信息,关于在与协调活动相对应的当前聚合时段期间已针对所选计算节点组从相关用户处接收的动态指定的任何能力修改指令的信息(例如,如此前参照图4的图框445所讨论),以及关于先前已在当前聚合时段期间被确定为被满足的所选计算节点组的任何用户指定的触发器的信息。或者,在一些实施方案中,所述程序相反地可检索所选计算节点组的所确定的性能特性信息(例如,此前由PES能力维护管理器模块作为监测所选计算节点组的一部分来储存的信息,或通过请求PES能力维护管理器模块或其它监测来源提供该信息而动态获得的信息),以便当前确定是否所选计算节点组的任何用户指定的触发器目前被满足和/或此前在当前聚合时段期间已被满足。在检索各种信息之后,当前所需程序执行能力可通过聚合一个或多个经请求的程序执行能力修改来确定(如其它地方更详细地讨论),以便在做出任何此类聚合的能力修改之后,确定所得的所需程序执行能力。
在图框525之后,所述程序继续至图框530,以确定将对所选计算节点组做出的实际变化,以便协调所选计算节点组的当前实际、所需和正式记录的程序执行能力,例如以将当前正式能力调整为当前所需能力。所述程序然后继续至图框535,以将由经修改的所选计算节点组提供的当前所需程序执行能力指定为所选计算节点组的所更新的当前正式记录的程序执行能力,并且进一步引发图框530中确定的程序执行能力修改。在图框535之后,所述程序继续至图框599并且返回。
图6为能力修改归因程序600的示例性实施方案的流程图。所述程序可通过以下方式来提供,例如执行图1A和图1B各自的PESSM模块110和180,和/或图3的PESSM模块340,例如该程序可从图4中的程序400的图框475处开始。
在图示实施方案中,所述程序开始于图框605,其中其获得了待进行的能力修改归因活动的当前所选计算节点组的指示。在图框625中,所述程序然后识别关于自先前的时间(诸如先前针对所选计算节点组进行的协调活动)以来发生的程序执行能力可用性变化的信息。识别所述变化信息可包括例如检索此前由PES能力维护管理器模块作为监测所选计算节点组的一部分来储存的信息,但在其它实施方案中,所述程序600可动态确定该信息(例如,通过动态请求PES能力维护管理器模块或其它监测来源提供该信息)。
在图框625之后,所述程序继续至图框630,以确定是否已发生任何此类能力可用性变化,否则,继续至图框699。否则,所述程序继续至图框635,以识别关于自先前的时间(诸如先前针对所选计算节点组进行的协调活动)以来发生的程序执行能力修改请求事件的信息。识别所述事件信息可包括例如检索此前由PES系统管理器模块作为向所选计算节点组提供功能的一部分来储存的信息,例如参照图4和图5更详细地讨论。在图框640中,例如根据事件的类型(例如代替不可用计算节点的自动化系统操作、指定相应的立即响应的所接收的用户指令等),所述程序然后确定直接引起相应的可用性变化的所识别事件中的任何事件。
在图框640之后,所述程序继续至图框645,以选择图框625中所识别的下一个可用性变化,从第一个开始。在图框650中,所述程序然后确定该变化是否可直接归因于图框640中确定的个别事件之一,如果是,将该事件记录为所选能力可用性变化的原因。否则,所述程序在图框650中将所选能力可用性变化的原因归因为图框640中未确定的其它所识别事件的组合。在图框660中,所述程序然后确定是否存在更多能力可用性变化,如果是,返回至图框645以选择下一个此能力可用性变化。否则,所述程序继续至图框699并且返回。
图7为程序执行服务能力维护管理器程序700的示例性实施方案的流程图。所述程序可通过以下方式来提供,例如执行图1A和图1B各自的PESCMM模块115和160,和/或图3的PESCMM模块345,例如以有助于监测用户的多组计算节点,包括确定可从计算节点组获得的实际程序执行能力。在该图示实施方案中,所述程序700结合提供代表多个用户来执行程序的程序执行能力的程序执行服务进行操作,但在其它实施方案中,可以其它方式提供程序700的一些或所有功能。
在图示实施方案中,所述程序开始于图框705,其中已接收到开始收集关于一个或多个计算节点组的计算节点的信息的指示(例如连续地或者说是以重复的方式),虽然此处未示出,但在一些实施方案中,其它模块和/或程序可动态请求程序700以产生和提供特定的相关信息(例如关于特定的相关计算节点组的信息)。在图框705中,所述程序收集一个或多个此类计算节点的性能特性信息,包括那些计算节点所属的计算节点组的指示,以供以后用于产生所述计算节点组的聚合信息。所述信息可以各种方式产生,包括通过请求特定计算节点或相关模块(例如,虚拟机计算节点的相关VM管理器组件)提供该信息来拖取此信息,通过此类计算节点和/或相关部件将该信息推送至程序700(例如定期地;在某些类型的事件时,诸如会使计算节点关闭或者说是变得不可用的检测出的错误状态;等),通过特定计算节点来监测网络流量和/或单个资源使用率;等。
所述程序然后继续至图框710,以确定一个或多个所选计算节点组的聚合性能特性信息并且储存该所确定的信息以供以后使用,例如用于所有计算节点组、恰好收集了单独的计算节点信息的计算节点组、已请求或最近尚未产生的聚合性能特性信息的计算节点组、其中单独的计算节点信息可用于计算节点组中的每个计算节点的计算节点组等。应当理解到,聚合性能特性信息可以各种方式产生,包括当仅部分信息可用于该组的计算节点时,诸如推断或者说是估算不可用的单独的性能特性信息。另外,收集和/或聚合的特定性能特性信息可以各种方式而有所不同,例如以在某些实施方案中始终收集所有计算节点组的某些类型的信息,以根据特定计算节点组的所确定触发器的指定标准来收集某些类型的信息等。此外,虽然图框705-785在该实例中被示为以连续的方式来实施,但应当理解到,在一些实施方案中,各图框相反地可以其它方式来实施。例如,在一些实施方案中,图框705的信息收集活动可在连续的基础上或在接近连续的基础上进行,但图框710和/或其它图框中的聚合信息产生仅可定期进行。
在图框710之后,所述程序继续至图框715,以确定和储存一个或多个计算节点组中的每个的当前实际程序执行能力信息,例如以反映当前可用的一组计算节点的当前数量和/或计算节点组的程序执行能力的一种或多种其它度量,并且储存所确定的信息以供以后使用。虽然此处未示出,但在一些实施方案和情况中,所述程序还可立即更新计算节点组的相应的正式记录的程序执行能力,以反映计算节点组的所确定的当前实际程序执行能力,而在其它实施方案中,该程序会等待直到相应的下一组协调活动时才更新正式记录的程序执行能力。
在图框720中,所述程序然后任选地确定对于任何计算节点组而言已被满足的任何计算节点组的任何能力修改触发器(例如,根据图框705中收集的和/或图框710中聚合的性能特性信息,和/或根据图框715中确定的实际程序执行能力信息),但在其它实施方案中,此触发器满足情况确定相反地可在聚合时段结束时进行(诸如参考参照图5更详细地讨论的相应协调活动)。如果任何触发器经确定被满足,则然后储存关于此类被满足的触发器的信息以供以后使用。在一些实施方案和情况中,特定触发器被满足还可立即引发相关计算节点组的程序执行能力修改,并且如果如此,则可引发此程序执行能力修改活动,并且所述程序还可记录将该被满足的触发器与所述程序执行能力修改活动关联的因果关系信息,例如以供以后使用(参考图6的程序600)。
以类似的方式,所述程序在图框725中确定是否已引发任何计算节点组的任何计算节点以可用于计算节点组,但该初始化已失效或者说是未在指定时段(例如10分钟)之内完成,如果是,所述程序的图示实施方案开始立即提供任何此类计算节点的替代计算节点,并且所述程序还可记录将该初始化计算节点不可用性作为所引发的替代活动的原因的因果关系信息。在其它实施方案中,此类替代活动相反地可能不以直接方式进行(例如,相反地可连同修改程序执行能力的其它请求一起聚合)和/或相反地可由图4的程序400进行。另外,作为引发此类不可用计算节点的替代活动的一部分,所述程序还可采取动作以终止不可用计算节点(例如,如果该节点仍在运行但无响应)。
以类似的方式,所述程序在图框730中任选地开始立即提供计算节点组中此前用作计算节点组的一部分但目前被确定为已失效或者说是变得不可用的任何计算节点的替代计算节点,并且如果如此,所述程序还可记录将该计算节点不可用性作为所引发的替代活动的原因的因果关系信息。在其它实施方案中,此类替代活动相反地可能不以直接方式进行(例如,相反地可连同修改程序执行能力的其它请求一起聚合)和/或可由图4的程序400进行,和/或可进行可自动引发特定计算节点组的程序执行能力的立即变化的其它类型的自动确定。另外,作为引发不可用计算节点的替代活动的一部分,所述程序还可采取动作以终止该不可用计算节点(例如,如果该节点仍在运行但无响应)。此外,如其它地方更详细地讨论,当确定是否要参照图框725和/或730立即进行替代活动时,所述程序可在一些实施方案中考虑其它因素,诸如将向或已向相关用户收取费用的时段、直至计划进行可影响替代活动进行可取性的下一次协调活动之前的大量时间等。
在图框730之后,所述程序继续至图框785,以任选地进行任何内务操作,包括视情况更新存储信息。在图框785之后,所述程序继续至图框795,以确定是否要继续,例如直到接收到终止的明确指示时。如果确定要继续,则所述程序返回至图框705,否则,继续至图框799并且结束。虽然参照程序700所述的各种活动在该实施方案中被示为通过与执行程序400的模块不同的模块进行,但在其它实施方案中,这两个程序的一些或所有功能可由单个模块执行或者以其它方式组合。
应当理解到,在一些实施方案中,由上述程序提供的功能可以替代方式来提供,诸如分配在更多程序之间或合并于较少的程序中。类似地,在一些实施方案中,例如当其它图示的程序相反地分别缺乏或包括此类功能时,或者当改变所提供的功能数量时,图示的程序可提供与所述功能相比更多或更少的功能。另外,虽然各种操作可以被示为以特定的方式(例如串行或并行)和/或以特定的顺序进行,但本领域的技术人员将意识到,在其它实施方案中,这些操作可以其它顺序和以其它方式进行。本领域的技术人员还将意识到,上述数据结构可以不同的方式结构化,诸如通过使单个数据结构分成多个数据结构或者通过使多个数据结构合并为单个数据结构。类似地,在一些实施方案中,例如当其它图示的数据结构相反地分别缺乏或包括此类信息时,或者当改变所储存的信息数量或类型时,图示的数据结构可储存与所述信息相比更多或更少的信息。
第1条:一种用于程序执行服务的配置计算系统中以确定提供给用户的程序执行能力的动态修改的因果律的方法,所述方法包括:
在所述程序执行服务的所述配置计算系统的控制下,所述程序执行服务提供可被配置来执行多个远程用户的程序以换取向所述用户收取的费用的多个计算节点,并且针对多个所述用户中的每个,
从以下用户处接收信息,所述用户指定用于执行所述用户的指示程序的计算节点的初始所需数量并且指定用于随后引发对供所述用户使用的计算节点的数量的自动修改的多个数量修改触发器,所述数量修改触发器中的每个均包括用于确定所述数量修改触发器是否被满足的一个或多个标准,并且如果所述数量修改触发器是被满足的,则包括待请求的指定的计算节点数量变化;
向所述用户自动确定用于执行所述用户的所述指示程序的一组所述多个计算节点中的多个,所述多个计算节点具有初始所需计算节点数量,并且在第一时间提供所述多个计算节点以供所述用户使用;
响应于来自所述用户的指令,引发所述指示程序的复本在所述组计算节点中的每个上的执行;并且
在从所述第一时间至随后的第二时间的一段时间期间,通过以下方式来自动管理所述组计算节点:
在所述时段期间,自动监测所述组计算节点以通过那些计算节点的操作来确定性能度量,并且根据所述确定的性能度量来自动确定由所述用户指定的所述数量修改触发器中的至少一个被满足;
在所述时段期间,从所述用户处接收各自指示所述组计算节点的数量变化的动态指定请求的一个或多个数量变化指令;
在所述第二时间自动确定实际计算节点数量,所述数量反映了在所述第二时间实际上可用以执行所述用户的程序的所述组计算节点的数量,至少部分地根据所述时段期间的所述组计算节点的多个可用性变化,在所述第二时间确定的实际计算节点数量不同于所述第一时间处的计算节点的初始所需数量,所述多个可用性变化中的至少一些具有向所述用户收取的一项或多项相关费用;
对于所述多个可用性变化的至少一个中的每个而言,将所述可用性变化的单个原因自动归因,所述单个原因为经确定被满足的所述至少一个数量修改触发器之一或来自所述用户的所述一个或多个数量变化指令之一;
对于单个原因未自动归因的所述多个可用性变化中的至少另一个中的每个而言,所述至少另一个可用性变化不同于所述至少一个可用性变化,将多种可能原因的组合自动归因于所述可用性变化,所述多种可能原因彼此独立,并且包括经确定被满足的所述至少一个数量修改触发器中的一个或多个且包括来自所述用户的所述一个或多个数量变化指令中的至少一个;以及
提供所述至少一个可用性变化中的每个的所归因的单个原因的指示和所述至少另一个可用性变化中的每个的所归因的多个原因组合的指示,以便能够将所述至少一些可用性变化的相关费用归于所述用户。
第2条:根据第1条所述的方法,其中针对所述多个用户之一,至少部分地根据所述一个用户的所述组计算节点的数量的经请求的增加,在所述第二时间确定的实际计算节点数量大于所述第一时间处的初始所需计算节点数量,所述经请求的增加根据经确定被满足的所述至少一个数量修改触发器的一个或多个中的每个和来自所述一个用户的所述一个或多个数量变化指令中的至少一个,其中自动确定所述一个用户的所述第二时间处的实际计算节点数量包括通过聚合所述一个或多个被满足的数量修改触发器的经请求的增加和来自所述一个用户的所述至少一个数量变化指令的经请求的增加来确定待做出以增加所述一个用户的所述组的计算节点数量的单次聚合修改,其中增加所述一个用户的所述组的计算节点数量的所述确定的单次聚合修改为所述一个用户的所述组的所述至少另一个可用性变化中的一个,其中所述一个或多个被满足的数量修改触发器和来自所述一个用户的所述至少一个数量变化指令均未被归因为所述一个用户的所述组的所述至少一个可用性变化中任何一个的单个原因,并且其中所述一个用户的所述组的所述至少另一个可用性变化中的每个的多种可能原因的组合包括在所述时段期间针对所述一个用户的所述计算节点组的可用性变化确定的并且未被归因为所述至少一个可用性变化之一的单个原因的所有可能原因。
第3条:根据第2条所述的方法,其中所述程序执行服务为网络访问服务使得所述远程用户中的每个均通过一个或多个网络来提供来自客户计算设备的指令,其中具有所述相关费用的所述一个用户的所述组的所述至少一些可用性变化包括所述一个用户的所述组计算节点的数量的一次或多次增加,并且其中所述一个用户为在所述第一时间提供由所述一个用户使用的所述多个计算节点支付第一费用并且针对作为所述一个用户的所述组的所述一次或多次数量增加的一部分来提供的每个附加计算节点支付一次或多次不同的第二费用。
第4条:一种用于确定提供给用户的程序执行能力的动态修改的因果律的计算机实现方法,所述方法包括:
在被配置来提供由多个用户使用的程序执行服务的一个或多个计算系统的控制下,所述程序执行服务具有可被配置来执行所述程序执行服务的所述用户的程序的多个计算节点,
接收用于代表所述程序执行服务的第一用户来执行一个或多个软件程序的初始所需程序执行能力的指示;
确定用于随后引发对提供给所述第一用户的程序执行能力的自动修改的多个能力修改触发器,所述能力修改触发器中的每个均包括用于确定所述能力修改触发器是否被满足的一个或多个标准,并且如果所述能力修改触发器是被满足的,则包括待请求的指定类型的程序执行能力修改;
自动确定用于提供所述第一用户的所述初始所需程序执行能力的第一组所述多个计算节点中的多个,并且使所述第一组的计算节点在第一时间可用以各自执行所述第一用户的一个或多个软件程序;
自动识别发生在所述第一时间和随后的第二时间之间的一段时间期间并且各自能够引起对所述第一组的多个计算节点提供的所述程序执行能力的修改的多个独立事件,所述多个事件包括经确定被满足的所述指定的能力修改触发器中的至少一个;
在所述第二时间自动确定所述第一用户可从所述第一组计算节点中获得的实际程序执行能力,至少部分地根据发生在所述第一时间和所述第二时间之间的时段期间的所述第一组的一个或多个计算节点的一个或多个可用性变化,所述第二时间处的实际程序执行能力不同于在所述第一时间提供给所述第一用户的所需程序执行能力;
对于所述第一组的所述一个或多个计算节点的所述可用性变化中的每个而言,将所识别事件中的一个或多个自动归因为所述可用性变化的原因,所述可用性变化中的至少一个具有原因,所述原因为彼此独立并且包括经确定被满足的所述至少一个指定的能力修改触发器中的一个或多个的多个事件的组合;并且
提供一个或多个所述可用性变化中的每个的所述归因的原因的指示,以便能够进行与所述归因的原因相对应的一个或多个进一步动作。
第5条:根据第4条所述的方法,其中所述多个事件还包括由所述第一用户动态指定以请求对所述第一组提供的所述程序执行能力的指定修改的至少一个能力修改指令,并且其中被归因为所述至少一个可用性变化之一的原因的多个事件的组合包括所述至少一个指定的能力修改指令中的一个或多个。
第6条:根据第4条所述的方法,其中所述可用性变化中的至少另一个具有为所述多个事件中的单个事件的所归因的原因,所述至少另一个可用性变化不同于所述至少一个可用性变化。
第7条:根据第6条所述的方法,还包括:自动确定所述单个事件为所述至少另一个可用性变化的所确定类型的原因,所述所确定类型的原因为直接原因或间接原因,并且提供所述单个事件为所述至少另一个可用性变化的所述所确定类型的原因的指示。
第8条:根据第4条所述的方法,其中自动确定所述实际程序执行能力包括确定已发生的多个可用性变化,并且其中将所述一个或多个事件自动归因为所述可用性变化中的每个的原因包括识别各自为所述多个可用性变化之一的单个原因的一个或多个所述多个事件,并且将不为所述多个可用性变化之一的单个原因的所有所述多个事件聚合为不具有单个原因的所述多个可用性变化彼此的组合的一部分。
第9条:根据第4条所述的方法,其中对于所述至少一个可用性变化之一而言,将所述多个事件的组合自动归因为所述一个可用性变化的原因包括确定所述多个事件的组合为所述一个可用性变化的所确定类型的原因,所述所确定类型的原因为直接原因或间接原因,并且其中提供所述一个或多个可用性变化中的每个的所述归因的原因的所述指示包括提供所述多个事件的组合为所述一个可用性变化的所述所确定类型的原因的指示。
第10条:根据第4条所述的方法,其中所述多个独立事件各自请求对所述第一组提供的所述程序执行能力的修改,并且其中所述方法还包括:通过聚合所述多个事件的经请求的修改并且在所述第二时间之前引发对所述第一组的所述确定的单次聚合修改来自动确定将对所述第一组的程序执行能力做出的单次聚合修改。
第11条:根据第10条所述的方法,其中所述多个事件还包括由所述第一用户动态指定以请求对所述第一组提供的所述程序执行能力的指定修改的至少一个能力修改指令,其中所述确定的多个能力修改触发器由所述第一用户在所述第一时间之前指定,并且其中被归因为所述至少一个可用性变化之一的原因的多个事件的组合包括所述至少一个指定的能力修改指令中的一个或多个。
第12条:根据第11条所述的方法,其中所述确定的单次聚合修改为所述一个可用性变化,其所述一个或多个指定的能力修改指令包括在被归因为所述原因的组合中。
第13条:根据第10条所述的方法,其中所述第一组的程序执行能力根据为所述第一组的一部分的计算节点的数量来测量,使得所述初始所需程序执行能力为计算节点的初始所需数量,并且使得在所述第二时间确定的实际程序执行能力为在所述第二时间可用作所述第一组的一部分的计算节点的实际数量,其中所述第一组的所述一个或多个计算节点的所述一个或多个可用性变化各自包括为所述第一组中不可用部分的一个或多个计算节点中的至少一个和添加至所述第一组的一个或多个新计算节点中的至少一个,并且其中对所述第一组的所述确定的单次聚合修改为所述第一组计算节点的数量的所确定的变化。
第14条:根据第13条所述的方法,其中所述确定的单次聚合修改将通过指定数量的一个或多个计算节点来增加所述第一组计算节点的数量,其中所述确定的单次聚合修改为提供有所述归因的原因的所述指示的所述一个或多个可用性变化中的一个,并且其中所述方法还包括至少部分地根据所述引发的所确定的单次聚合修改进行一个或多个进一步动作,所述动作包括开始向所述第一用户收取一项或多项费用。
第15条:根据第4条所述的方法,其中提供有所述归因的原因的所述指示的所述一个或多个可用性变化中的一个包括作为所述一个可用性变化的原因的至少一部分的所述多个事件中的至少第一个,并且其中响应于所述事件中的至少一个引起所述一个可用性变化和所述可用性变化中的至少一个由所述第一事件引起的请求来提供所述一个可用性变化的所述归因的原因的所述指示。
第16条:根据第15所述的方法,其中从用户处接收所述请求,并且其中提供所述一个可用性变化的所述归因的原因的所述指示包括产生所述一个可用性变化的所述归因的原因的人可读的解释并且提供所述产生的人可读的解释以显示给所述用户。
第17条:根据第4条所述的方法,还包括:对于发生在所述第二时间之后的一个或多个附加时段中的每个而言,将一个或多个附加所识别事件自动归因为发生在所述附加时段期间的可用性变化的原因,并且其中,对于作为发生在所述一个或多个附加时段中的一个时段期间的所述可用性变化中的一个变化的原因的一个所述附加所识别事件而言,所述一个附加所识别事件为发生在所述第一时间和所述第二时间之间的时段期间的所述可用性变化中的一个变化的结果。
第18条:根据第4条所述的方法,其中使所述第一组计算节点在所述第一时间可用以各自执行所述第一用户的所述一个或多个软件程序包括自动提供所述第一组计算节点中的每个,并且包括自动引发所述一个或多个软件程序中的每个在所述第一组计算节点中的每个上的执行。
第19条:根据第4条所述的方法,其中所述程序执行服务为远离所述第一用户的收费性网络访问服务,其中所述程序执行服务提供以下两者中的至少一者:用于远程计算系统中以通过一个或多个网络以编程方式与所述程序执行服务进行交互的一个或多个应用程序编程接口(API)和远程用户通过所述一个或多个网络来使用的图形用户界面,并且其中所述第一用户至少部分地根据一个或多个所述可用性变化的所述归因的原因来支付一项或多项费用。
第20条:根据第4条所述的方法,其中所述程序执行服务采用虚拟化技术使得所述多个计算节点对于多个物理计算系统中的每个而言包括由所述物理计算系统提供的各自能够执行至少一个程序的多个虚拟机,其中所述第一组计算节点为装载虚拟机,并且其中所述第一用户的所述一个或多个程序为虚拟机映像的一部分。
第21条:一种计算机可读介质,其内容通过实施一种方法来配置计算系统以确定提供给用户的程序执行能力的动态修改的因果律,所述方法包括:
在所述配置计算系统的控制下,在第一时间接收与第一用户相关的第一组多个计算节点的指示,以提供用于代表所述第一用户来执行一个或多个软件程序的初始程序执行能力;
自动识别发生在所述第一时间和随后的第二时间之间并且各自具有所述第一组的程序执行能力的相关所需修改的多个独立事件;
在所述第二时间自动确定所述第一用户可从所述第一组计算节点中获得的实际程序执行能力,至少部分地根据所述第一组的一个或多个计算节点的一个或多个可用性变化,所述第二时间处的实际程序执行能力不同于在所述第一时间提供的初始程序执行能力;
将一个或多个原因自动归因于所述第一组的所述确定的可用性变化中的每个,归因于所述可用性变化中的至少一个的所述一个或多个原因为多个所述所识别的独立事件的组合;以及
提供所述至少一个可用性变化中一个或多个的所述所归因的一个或多个原因的指示。
第22条:根据第21条所述的计算机可读介质,其中所述配置计算系统为提供多个计算节点的程序执行服务的一部分,所述多个计算节点可被配置来执行所述程序执行服务的用户的程序,其中所述第一组的多个计算节点为所述多个计算节点的子集,其中接收所述第一组的指示包括在所述第一时间之前从所述第一用户处接收所述初始程序执行能力的请求,并且在所述第一时间将所述第一组计算节点与所述第一用户自动关联以用于将所述初始程序执行能力提供给所述第一用户,其中所述第一用户在所述第一时间之前还指示一个或多个能力修改触发以用于随后引发对所述第一组的程序执行能力的自动修改,并且其中所述多个独立事件包括经确定被满足的所述能力修改触发器中的至少一个且包括由所述第一用户动态指定的至少一个能力修改指令。
第23条:根据第22条所述的计算机可读介质,其中每个所述多个独立事件的所述程序执行能力的所述所需修改为经请求的修改,其中所述方法还包括通过聚合至少一个被满足的能力修改触发器的经请求的修改和来自所述第一用户的所述至少一个能力修改指令的经请求的修改来自动确定待做出以提高所述第一组的程序执行能力的单次聚合修改,并且在所述第二时间之前引发所述确定的单次聚合修改,其中所述确定的单次聚合修改为所述至少一个可用性变化之一,并且其中被归因为所述确定的单次聚合修改的所述一个或多个原因的所述多个独立事件的组合包括所述至少一个被满足的能力修改触发器和来自所述第一用户的至少一个能力修改指令。
第24条:根据第21条所述的计算机可读介质,其中所述计算机可读介质为以下两者中的至少一者:储存所述内容的计算系统的存储器和包括包含所述内容的所产生的存储数据信号的数据传输介质,并且其中所述内容为在执行时会使所述计算系统实施所述方法的指令。
第25条:一种被配置来确定用户的程序执行能力的动态修改的因果律的计算系统,包括:
一个或多个处理器;和
系统管理器模块,在由所述一个或多个处理器中的至少一个执行时,针对所述多个用户中的每个,其被配置来通过以下方式管理网络访问服务的多个用户的程序执行能力:
确定待提供用于代表所述用户来执行一个或多个软件程序的初始程序执行能力,并且确定用于随后引发对向所述用户提供的所述程序执行能力的自动修改的一个或多个能力修改触发器;
在第一时间将一组多个可用计算节点与所述用户自动关联,以用于将所述初始所需程序执行能力提供给所述用户;以及
在所述第一时间之后,自动识别发生在所述第一时间和随后的第二时间之间并且各自具有所述组的所述程序执行能力的相关所需修改的多个独立事件,所述多个事件包括经确定被满足的所述能力修改触发器中的至少一个;
自动确定所述组的一个或多个计算节点的一个或多个可用性变化,所述可用性变化影响由所述组提供的所述程序执行能力;
将一个或多个原因自动归因于所述组的所述确定的可用性变化中的每个,归因于所述可用性变化中的至少一个的所述一个或多个原因为多个所述所识别的独立事件的组合,并且归因于所述可用性变化中的至少另一个的所述一个或多个原因为所述所识别的独立事件中的单个事件;并且提供所述组的所述确定的可用性变化中的一个或多个的所述所归因的一个或多个原因的指示。
第26条:根据第25条所述的计算系统,其中所述多个用户之一的所述多个独立事件还包括由所述一个用户动态指定的至少一个能力修改指令,其中所述系统管理器模块还被配置来通过聚合所述至少一个被满足的能力修改触发器的所需修改和由所述一个用户指定的所述至少一个能力修改指令的所需修改以自动确定待做出以提高所述一个用户的所述组的所述程序执行能力的单次聚合修改,并且在所述第二时间之前引发对所述一个用户的所述组的所述确定的单次聚合修改,其中所述确定的单次聚合修改为所述一个用户的所述至少一个可用性变化之一,并且其中被归因为所述确定的单次聚合修改的所述一个或多个原因的所述多个独立事件的组合包括所述至少一个被满足的能力修改触发器和由所述一个用户指定的所述至少一个能力修改指令。
第27条:根据第26条所述的计算系统,其中所述一个用户的所述确定的能力修改触发器由所述一个用户指定,其中所述网络访问服务为提供多个计算节点的程序执行服务,所述多个计算节点可被配置来执行所述程序执行服务的远程用户的程序,并且其中所述多个用户中的至少一个的每个的所述组的所述多个计算节点为所述多个计算节点的子集。
第28条:根据第25条所述的计算系统,其中所述系统管理器组件包括由所述计算系统执行的软件指令。
第29条:根据第25条所述的计算系统,其中针对所述多个用户中的每个,所述系统管理器组件由用于通过以下方式来管理所述网络访问服务的多个用户的程序执行能力的装置组成:
确定待提供用于代表所述用户来执行一个或多个软件程序的初始程序执行能力,并且确定用于随后引发对向所述用户提供的所述程序执行能力的自动修改的一个或多个能力修改触发器;
在第一时间将一组多个可用计算节点与所述用户自动关联,以用于将所述初始所需程序执行能力提供给所述用户;以及
在所述第一时间之后,自动识别发生在所述第一时间和随后的第二时间之间并且各自具有所述组的所述程序执行能力的相关所需修改的多个独立事件,所述多个事件包括经确定被满足的所述能力修改触发器中的至少一个;
自动确定所述组的一个或多个计算节点的一个或多个可用性变化,所述可用性变化影响由所述组提供的所述程序执行能力;
将一个或多个原因自动归因于所述组的所述确定的可用性变化中的每个,归因于所述可用性变化中的至少一个的所述一个或多个原因为多个所述所识别的独立事件的组合,并且归因于所述可用性变化中的至少另一个的所述一个或多个原因为所述所识别的独立事件中的单个事件;并且提供所述组的所述确定的可用性变化中的一个或多个的所述所归因的一个或多个原因的指示。
第30条:一种用于程序执行服务的配置计算系统中以动态修改用户的程序执行能力的方法,所述方法包括:
在所述程序执行服务的所述配置计算系统的控制下,所述程序执行服务提供可被配置来执行多个远程用户的程序的多个计算节点,并且针对多个所述用户中的每个,
从以下用户处接收信息,所述用户指定用于执行所述用户的指示程序的计算节点的初始所需数量并且指定用于随后引发对所述所需计算节点数量的自动修改的一个或多个数量修改触发器,所述数量修改触发器中的每个均包括用于确定所述数量修改触发器是否被满足的一个或多个标准,并且如果所述数量修改触发器是被满足的,则包括指定的计算节点数量变化;
自动确定用于执行所述用户的所述指示程序的一组所述多个计算节点中的多个,所述组的所述多个计算节点具有所述初始所需计算节点数量,并且在第一时间提供所述多个计算节点以供所述用户使用;
响应于来自所述用户的一个或多个指令,引发所述指示程序的复本在所述组计算节点中的每个上的执行,并且将所述初始所需计算节点数量指定为被记录为所述用户在所述第一时间可使用的正式的计算节点数量;以及
在从所述第一时间至随后的第二时间的一段时间期间,通过以下方式来自动管理所述组计算节点:
在所述时段期间,自动监测所述组计算节点以通过所述计算节点的操作来确定性能特性,并且根据所述确定的性能特性来自动确定由所述用户指定的所述数量修改触发器中的至少一个被满足;
在所述时段期间,接收指示由所述用户动态指定的所述组计算节点的用户指示的计算节点数量变化的至少一个指令;
在所述第二时间自动确定经修改的所需计算节点数量,至少部分地根据来自所述至少一个被满足的数量修改触发器的所述指定的计算节点数量变化以及所述用户指示的计算节点数量变化,所述经修改的所需计算节点数量包括自所述第一时间对所述所需计算节点数量的变化;
在所述第二时间自动确定实际计算节点数量,所述数量反映了在所述第二时间实际上可用以执行所述用户的程序的所述组计算节点的数量;
在所述第二时间,将所述用户的所述正式的计算节点数量与所述经修改的所需计算节点数量自动协调,所述协调包括通过采取动作来自动修改作为所述组的一部分的所述计算节点的数量,以将所述确定的实际计算节点数量改变为所述经修改的所需计算节点数量;以及
提供所述组计算节点的所述经修改的数量以供所述用户使用,并且将所述经修改的所需计算节点数量指定为所述用户在所述第二时间可使用的正式的计算节点数量。
第31条:根据第30条所述的方法,其中针对所述多个用户之一,至少部分地根据在从所述第一时间至所述第二时间的时段期间的变得不可用的所述一个用户的所述组计算节点中的一个或多个,在所述第二时间确定的实际计算节点数量小于所述第一时间处的正式的计算节点数量,其中在所述时段期间自动监测所述一个用户的所述组计算节点包括反复确定所述一个用户的当前的实际计算节点数量,并且更新所述一个用户的所述正式的计算节点数量以使所述更新的正式的计算节点数量与所述确定的当前的实际计算节点数量一致,其中所述一个用户的所述至少一个被满足的数量修改触发器为以下触发器,其指定以根据所述一个或多个不可用计算节点的数量来增加所述一个用户的所述组计算节点,以便将所述第二时间处的正式的计算节点数量保持在由所述一个用户指定的计算节点的初始所需数量,其中由所述一个用户动态指定的所述用户指示的数量变化包括至少一个计算节点的计算节点初始所需数量的指示的减少量,其中在所述第二时间自动确定所述一个用户的所述经修改的所需计算节点数量包括用所述一个或多个不可用计算节点来至少部分地抵消所述指示的减少量,并且其中所述一个用户在所述第二时间可使用的正式的计算节点数量为由所述一个用户指定的计算节点初始所需数量减去由所述一个用户指定的所述指示的减少量。
第32条:根据第31条所述的方法,其中所述程序执行服务为收费性网络访问服务,使得所述多个用户各自为在所述第一时间提供由所述用户使用的所述多个计算节点支付第一费用,并且各自为在所述第二时间提供由所述用户使用的所述组计算节点的经修改的数量支付不同的第二费用,所述第一和第二费用各自至少部分地基于所述用户的所述组计算节点的当前数量。
第33条:一种用于动态修改用户的程序执行能力的计算机实现方法,所述方法包括:
在被配置来提供由多个用户使用的程序执行服务的一个或多个计算系统的控制下,所述程序执行服务具有可被配置来执行所述程序执行服务的所述用户的程序的多个计算节点,
接收指定用于代表所述程序执行服务的第一用户来执行一个或多个软件程序的初始所需程序执行能力并且指定用于随后引发对所述所需程序执行能力的自动修改的一个或多个能力修改触发器的信息,所述能力修改触发器中的每个均包括用于确定所述能力修改触发器是否被满足的一个或多个标准,并且如果所述能力修改触发器是被满足的,则包括待请求的对所需程序执行能力的指定类型的修改;
自动确定用于提供所述第一用户的所述初始所需程序执行能力的第一组所述多个计算节点中的多个,使所述第一组计算节点在第一时间可用以各自执行所述第一用户的一个或多个软件程序,并且将所述初始所需程序执行能力指定为被记录为所述第一用户在所述第一时间可使用的正式程序执行能力。
在所述第一时间之后,监测所述第一组计算节点以确定关于执行所述一个或多个软件程序的那些计算节点的一种或多种类型的性能特性的当前值,所述监测包括在所述第一时间之后的随后的第二时间确定所述第一用户可从所述第一组计算节点中获得的实际程序执行能力;
自动确定以根据发生在所述第一时间和所述第二时间之间的一段时间期间的多个事件来修改所述第一用户的所述所需程序执行能力,所述多个事件至少部分地根据所述一种或多种性能特性类型的所述确定的当前值包括经确定被满足的所述指定的能力修改触发器中的至少一个,并且包括由所述第一用户动态指定的至少一个能力修改指令,所述至少一个指定的能力修改触发器和所述至少一个能力修改指令中的每个指示对所述所需程序执行能力的指定修改;以及
将所述第一用户可用的所述记录的正式程序执行能力与在所述第二时间确定的实际程序执行能力和所述经修改的所需程序执行能力自动协调,协调所述记录的正式程序执行能力包括根据所述确定的实际程序执行能力和所述经修改的所需程序执行能力来自动修改作为所述第一组的一部分的计算节点,使得所述经修改的计算节点可用于提供所述经修改的所需程序执行能力,并且使得所述记录的正式程序执行能力被更新以反映所述提供的经修改的所需程序执行能力。
第34条:根据第33条所述的方法,其中所述第一组的程序执行能力根据作为所述第一组的一部分的计算节点的数量来测量,使得所述初始所需程序执行能力为计算节点的初始所需数量,在所述第二时间确定的实际程序执行能力为在所述第二时间可用作所述第一组的一部分的计算节点的实际数量,修改所述所需程序执行能力的自动确定包括将所述经修改的所需程序执行能力确定为所述第一组计算节点的经修改的所需数量,并且自动修改作为所述第一组的一部分的计算节点包括将作为所述第一组的一部分的计算节点的实际数量改变为所述经修改的所需数量。
第35条:根据第34条所述的方法,其中对所述至少一个指定的能力修改触发器和所述至少一个能力修改指令中的每个的所述所需程序执行能力的指定修改反映了所述第一组计算节点的所需数量的指示的数量变化,并且其中确定所述第一组的所述经修改的所需程序执行能力包括聚合所述至少一个指定的能力修改触发器和所述至少一个能力修改指令的所述指示的数量变化,并且根据所述聚合数量变化来修改计算节点的初始所需数量。
第36条:根据第34条所述的方法,其中当前值通过所述监测确定的所述第一组计算节点的所述一种或多种类型的性能特性包括可用作所述第一组的一部分的计算节点的实际数量,其中所述监测包括在所述第一和第二时间之间的时段期间的多个时间中的每个时间确定计算节点的当前实际数量,并且其中协调所述记录的正式程序执行能力还包括将所述第一组计算节点的所述经修改的所需数量指定为所述第一用户在所述第二时间可使用的当前正式程序执行能力。
第37条:根据第33条所述的方法,其中所述第一组的程序执行能力根据可从作为所述第一组的一部分的计算节点中获得的多种类型的计算资源中的每一种来测量,并且其中自动修改作为所述第一组的一部分的计算节点包括改变所述多种类型的计算资源中至少一种的总量,所述计算资源在所述计算节点的自动修改之后可从作为所述第一组的一部分的计算节点中获得。
第38条:根据第33条所述的方法,其中所述至少一个指定的能力修改触发器中的每个的一个或多个标准基于所述一种或多种性能特性类型中至少一种的一个或多个给定值,并且其中所述方法还包括至少部分地根据所述至少一个指定的能力修改触发器中的每个的一个或多个给定值与所述一种或多种性能特性类型的确定的当前值之间的匹配情况来自动确定所述至少一个指定的能力修改触发器被满足。
第39条:根据第38条所述的方法,其中所述至少一种性能特性类型对应于所述第一组计算节点上的计算负荷,其中所述至少一个指定的能力修改触发器被满足的确定基于所述第一组计算节点上处于暂时增加状态的计算负荷,其中自动修改作为所述第一组的一部分的计算节点包括暂时增加可从所述第一组计算节点中获得的实际程序执行能力以便容纳所述暂时增加状态的计算负荷,并且其中所述方法还包括在所述实际程序执行能力的暂时增加之后的随后的第三时间自动确定以降低所述第一组计算节点的暂时增加的实际程序执行能力,从而反映所述计算负荷的暂时增加状态的结束。
第40条:根据第38条所述的方法,其中所述至少一个性能特性类型包括可用作所述第一组的一部分的计算节点的实际数量,其中所述至少一个指定的能力修改触发器被满足的确定基于所述第一组计算节点的实际数量,所述实际数量已偏离计算节点的指定所需量,并且其中自动修改作为所述第一组的一部分的计算节点包括所述第一组计算节点的已偏离的实际数量返回至计算节点的指定所需量。
第41条:根据第38条所述的方法,其中所述至少一个指定的能力修改触发器之一的一个或多个标准基于以下中的一个或多个:指示性能特性类型的确定的当前值的阈值、指示性能特性类型的确定的当前值随时间变化的度量和多种性能特性类型的确定的当前值的逻辑组合。
第42条:根据第33条所述的方法,其中所述多个事件还包括其中一个或多个标准基于一个或多个指定时间的被触发的指定的能力修改触发器之一,并且其中所述方法还包括至少部分地根据符合所述一个或多个指定时间的当前时间来自动确定所述一个指定的能力修改触发器被满足。
第43条:根据第33条所述的方法,其中所述多个事件还包括其中一个或多个标准基于由历史数据确定的一种或多种模式的被触发的指定的能力修改触发器之一,并且其中所述方法还包括至少部分地根据与所述一种或多种模式中的至少一个相对应的一种或多种性能特性类型的确定的当前值来自动确定所述一个指定的能力修改触发器被满足。
第44条:根据第33条所述的方法,其中所述多个事件还包括其中一个或多个标准基于将由在所述第一组计算节点上执行的所述一个或多个软件程序完成的工作量的一个或多个指示的被触发的指定的能力修改触发器之一,并且其中所述方法还包括至少部分地根据所获得的关于将由所述一个或多个软件程序完成的实际工作量的信息来自动确定所述一个指定的能力修改触发器被满足。
第45条:根据第33条所述的方法,其中确定所述第一组的所述经修改的所需程序执行能力包括聚合对所述所需程序执行能力的指示的修改,所述修改由所述至少一个指定的能力修改触发器和所述至少一个能力修改指令中的每个指定,并且根据对所述所需程序执行能力的聚合的指示修改来指定所述确定的经修改的所需程序执行能力。
第46条:根据第45条所述的方法,其中聚合对所述所需程序执行能力的指示修改包括以下中的至少一个:累积所述指示修改、用所述指示修改中的至少另一个修改来抵消所述指示修改中的至少一个、根据一个或多个选择标准选择所述指示修改中的一个并且采用与所述指示修改中的一个或多个相关的一个或多个优先级。
第47条:根据第33条所述的方法,其中由所述第一用户动态指定并且包括在所述多个事件中的至少一个能力修改指令包括由所述第一用户指定的单个能力修改指令,其中由所述第一用户指定的能力修改指令优先于经确定被满足的指定的能力修改触发器,并且其中确定所述第一组的所述经修改的所需程序执行能力包括选择由所述单个能力修改指令指定的对所述所需程序执行能力的指示修改以用于代替所述至少一个指定的能力修改触发器的指示修改。
第48条:根据第33条所述的方法,还包括所述第一用户接收多个不同地理位置的说明,根据位于所述地理位置的所述第一组计算节点中的一个或多个,所述地理位置各自需包括所述第一组计算节点的程序执行能力的指示子集,并且其中自动修改作为所述第一组的一部分的计算节点还根据所述接收的说明来进行,使得所述经修改的计算节点被修改以包括位于所述多个地理位置中每个位置处的第一组计算节点的程序执行能力的指示子集。
第49条:根据第33条所述的方法,其中自动修改作为所述第一组的一部分的计算节点包括用一个或多个其它计算节点来代替所述第一组计算节点中的一个或多个,所述一个或多个其它计算节点各自具有与所述一个或多个替代的计算节点不同的量的可用程序执行能力。
第50条:根据第33条所述的方法,其中使所述第一组计算节点在所述第一时间可用以各自执行所述第一用户的所述一个或多个软件程序包括自动提供所述第一组计算节点中的每个,并且包括自动引发所述一个或多个软件程序中的每个在所述第一组计算节点中的每个上的执行。
第51条:根据第33条所述的方法,其中所述程序执行服务为远离所述第一用户的收费性网络访问服务,其中所述程序执行服务提供以下两者中的至少一者:用于远程计算系统中以通过一个或多个网络以编程方式与所述程序执行服务进行交互的一个或多个应用程序编程接口(API)和远程用户通过所述一个或多个网络来使用的图形用户界面,并且其中作为所述自动协调的一部分,所述第一用户为自动修改作为所述第一组的一部分的计算节点支付一项或多项费用。
第52条:根据第33条所述的方法,其中所述程序执行服务采用虚拟化技术使得所述多个计算节点对于多个物理计算系统中的每个而言包括由所述物理计算系统提供的各自能够执行至少一个程序的多个虚拟机,其中所述第一组计算节点为装载虚拟机,并且其中所述第一用户的所述一个或多个程序为虚拟机映像的一部分。
第53条:一种计算机可读介质,其内容通过实施一种方法来配置计算系统以动态修改用户的程序执行能力,所述方法包括:
在所述配置计算系统的控制下,在第一时间接收与第一用户相关的第一组多个计算节点的指示,以提供用于代表所述第一用户来执行一个或多个软件程序的所需程序执行能力;
在所述第一时间之后的随后的第二时间自动确定所述第一用户可从所述第一组计算节点中获得的实际程序执行能力,至少部分地根据所述第一组的多个计算节点中的一个或多个的一个或多个可用性变化,所述第二时间处的实际程序执行能力不同于在所述第一时间提供给所述第一用户的所需程序执行能力;
根据各自发生在所述第一时间之后并且各自指定所述所需程序执行能力的指示修改的多个独立事件,在所述第二时间自动确定提供给所述第一用户的经修改的所需程序执行能力,所述第二时间处的经修改的所需程序执行能力基于对所述多个独立事件的指定的指示修改的聚合并且不同于在所述第一时间提供的指示的所需程序执行能力;以及
在所述第二时间自动修改作为所述第一组的一部分的计算节点,以便将所述第二时间处的经修改的所需程序执行能力与所述第二时间处的确定的实际程序执行能力协调,所述经修改的计算节点用于将所述经修改的所需程序执行能力提供给所述第一用户。
第54条:根据第53条所述的计算机可读介质,其中所述配置计算系统为提供多个计算节点的程序执行服务的一部分,所述多个计算节点可被配置来执行所述程序执行服务的用户的程序,其中所述第一组的多个计算节点为所述多个计算节点的子集,并且响应于在所述第一时间之前从所述第一用户处接收的所述所需程序执行能力的请求,通过所述程序执行服务在所述第一时间与所述第一用户自动相关,其中所述第一用户还指示用于随后引发对所述所需程序执行能力的自动修改的一个或多个能力修改触发器,并且其中所述确定的经修改的所需程序执行能力基于其的多个独立事件包括经确定被满足的所述能力修改触发器中的至少一个并且包括由所述第一用户动态指定的至少一个能力修改指令。
第55条:根据第54条所述的计算机可读介质,其中所述一个或多个软件程序在所述第一组的多个计算节点上执行,以支持在并非所述第一组的一部分的至少一个计算系统上执行的至少另一个软件程序,并且其中经确定被满足的所述至少一个能力修改触发器中的一个或多个各自具有基于所获得的关于所述至少另一个软件程序的执行的状态信息的一个或多个标准。
第56条:根据第54条所述的计算机可读介质,其中所述程序执行服务将在所述第一时间提供给所述第一用户的指示的所需程序执行能力记录为所述第一用户可在所述第一时间使用的初始正式程序执行能力,其中所述方法还包括:从所述第一时间至所述第二时间的一段时间期间监测所述第一组计算节点以识别对所述第一组的一个或多个计算节点的一个或多个可用性变化,并且更新所述第一用户可用的所述程序执行服务的记录的正式程序执行能力以便反映所述一个或多个可用性变化,其中所述第一用户可用的所述程序执行服务的记录的正式程序执行能力未通过在所述第二时间自动确定所述经修改的所需程序执行能力进行更新,并且其中还在所述第二时间进行修改作为所述第一组的一部分的计算节点以便将所述第二时间处的记录的正式程序执行能力与所述第二时间处的经修改的所需程序执行能力协调,协调所述记录的正式程序执行能力包括将所述第二时间处的经修改的所需程序执行能力确定为所述第一用户可用的所述程序执行服务的进一步更新的记录的正式程序执行能力。
第57条:根据第53条所述的计算机可读介质,其中所述计算机可读介质为以下两者中的至少一者:储存所述内容的计算系统的存储器和包括包含所述内容的所产生的存储数据信号的数据传输介质,并且其中所述内容为在执行时会使所述计算系统实施所述方法的指令。
第58条:一种被配置来动态修改用户的程序执行能力的计算系统,包括:
一个或多个处理器;和
系统管理器模块,在由所述一个或多个处理器中的至少一个执行时,针对所述多个用户中的每个,其被配置来通过以下方式管理网络访问服务的多个用户的程序执行能力:
确定用于代表所述用户来执行一个或多个软件程序的所需程序执行能力,并且确定用于随后引发对所述用户的所述所需程序执行能力的自动修改的一个或多个能力修改触发器;
在第一时间将一组多个可用计算节点与所述用户自动关联,以用于将所述确定的所需程序执行能力提供给所述用户;以及
在所述第一时间之后,在所述第一时间之后的随后的第二时间自动确定所述用户可从所述组计算节点中获得的实际程序执行能力,所述第二时间处的实际程序执行能力不同于在所述第一时间提供给所述用户的所需程序执行能力;
根据各自发生在所述第一时间之后并且各自具有所述所需程序执行能力的相关修改的多个独立事件,在所述第二时间自动确定提供给所述用户的经修改的所需程序执行能力,所述多个独立事件包括经确定被满足的所述能力修改触发器中的至少一个并且包括由所述用户动态指定的至少一个能力修改指令,所述第二时间处的经修改的所需程序执行能力基于对所述多个独立事件的相关修改的聚合;以及
在所述第二时间自动修改作为所述组的一部分的计算节点,以便将所述第二时间处的经修改的所需程序执行能力与所述第二时间处的确定的实际程序执行能力协调,所述经修改的计算节点用于将所述经修改的所需程序执行能力提供给所述用户。
第59条:根据第58条所述的计算系统,其中所述多个用户之一的确定的所需程序执行能力由所述一个用户指示并且被确定为经记录为所述一个用户在所述第一时间可使用的初始正式程序执行能力,其中自动确定所述一个用户在所述第二时间可使用的实际程序执行能力至少部分地基于在从所述第一时间至所述第二时间的一段时间期间监测所述一个用户的所述组计算节点来进行以便识别一个或多个变化,监测所述计算节点包括更新所述一个用户可用的记录的正式程序执行能力以反映所述一个或多个变化,其中所述一个用户可用的记录的正式程序执行能力未通过自动确定所述第二时间处的经修改的所需程序执行能力进行更新,并且其中还在所述第二时间修改作为所述组的一部分的计算节点以便将所述第二时间处的记录的正式程序执行能力与所述第二时间处的经修改的所需程序执行能力协调,协调所述记录的正式程序执行能力包括将所述第二时间处的经修改的所需程序执行能力确定为所述第一用户可用的进一步更新的记录的正式程序执行能力。
第60条:根据第59条所述的计算系统,其中所述一个用户的所述确定的能力修改触发器由所述一个用户指定,其中所述网络访问服务为提供多个计算节点的程序执行服务,所述多个计算节点可被配置来执行所述程序执行服务的远程用户的程序,并且其中所述多个用户中的至少一个的每个的所述组的所述多个计算节点为所述多个计算节点的子集。
第61条:根据第58条所述的计算系统,其中所述系统管理器模块包括由所述计算系统执行的软件指令。
第62条:根据第58条所述的计算系统,其中针对所述多个用户中的每个,所述系统管理器模块由用于通过以下方式来管理网络访问服务的多个用户的程序执行能力的装置组成:
确定用于代表所述用户来执行一个或多个软件程序的所需程序执行能力,并且确定用于随后引发对所述用户的所述所需程序执行能力的自动修改的一个或多个能力修改触发器;
在第一时间将一组多个可用计算节点与所述用户自动关联,以用于将所述确定的所需程序执行能力提供给所述用户;以及
在所述第一时间之后,在所述第一时间之后的随后的第二时间自动确定所述用户可从所述组计算节点中获得的实际程序执行能力,所述第二时间处的实际程序执行能力不同于在所述第一时间提供给所述用户的所需程序执行能力;
根据各自发生在所述第一时间之后并且各自具有所述所需程序执行能力的相关修改的多个独立事件,在所述第二时间自动确定提供给所述用户的经修改的所需程序执行能力,所述多个独立事件包括经确定被满足的所述能力修改触发器中的至少一个并且包括由所述用户动态指定的至少一个能力修改指令,所述第二时间处的经修改的所需程序执行能力基于对所述多个独立事件的相关修改的聚合;以及
在所述第二时间自动修改作为所述组的一部分的计算节点,以便将所述第二时间处的经修改的所需程序执行能力与所述第二时间处的确定的实际程序执行能力协调,所述经修改的计算节点用于将所述经修改的所需程序执行能力提供给所述用户。
根据前述内容,应当理解到,尽管出于说明目的在本文中描述了具体实施方案,但可在不脱离本发明的精神和范围的情况下做出各种修改。因此,本发明仅受所附权利要求及本文所提及要求的限制。另外,虽然本发明的某些方面在下文以某些权利要求的形式示出,但发明人以任何可用权利要求的形式考虑到本发明的各个方面。例如,虽然只有本发明的某些方面目前可被提及为体现于计算机可读介质中,其它方面可同样得到体现。

Claims (15)

1.一种计算机实现的方法,包括:
通过被配置来提供程序执行服务的一个或多个计算系统提供第一组多个计算节点,所述第一组多个计算节点提供第一时间的程序执行能力以执行用户的一个或多个软件程序;
通过配置的所述一个或多个计算系统识别多个事件,每个事件能够导致所述第一组多个计算节点提供的程序执行能力的修改,其中所述多个事件发生在当所述第一组多个计算节点执行所述一个或多个软件程序时的第一时间与随后的第二时间之间;
通过配置的所述一个或多个计算系统在所述第二时间处或所述第二时间之后,接收对与所述第一组中的计算节点在所述第二时间能够提供给用户的实际程序执行能力有关的信息的请求,所述第二时间的实际程序执行能力至少部分基于所述第一组中的一个或多个计算节点在所述第一时间与所述第二时间之间的可用性改变而与在所述第一时间提供的程序执行能力有所不同;以及
通过配置的所述一个或多个计算系统响应于所述请求提供对识别出的所述多个事件中的几个事件的组合的指示,所述组合被归因为所述可用性改变的原因。
2.根据权利要求1所述的计算机实现的方法,其中对信息的所述请求是从用户接收的,并且其中提供对识别出的所述几个事件的组合的指示包括生成对所述可用性改变的所归因原因的人可读说明,并提供所生成的人可读说明以向用户显示。
3.根据权利要求1所述的计算机实现的方法,其中对信息的所述请求包括对所述可用性改变的指示以及关于哪些事件能够被归因为所述可用性改变的原因的查询。
4.根据权利要求1所述的计算机实现的方法,其中对信息的所述请求指定识别出的所述几个事件中的一个或多个事件,并且包括与所指定的识别出的所述一个或多个事件导致哪些可用性改变有关的查询。
5.根据权利要求1所述的计算机实现的方法,其中识别出的所述多个事件包括在所述第一时间与所述第二时间之间由用户指定的至少一个能力修改请求,用于对所述第一组多个计算节点提供的程序执行能力进行指定的修改,其中识别出的所述几个事件包括指定的所述至少一个能力修改请求中的一个或多个能力修改请求。
6.根据权利要求1所述的计算机实现的方法,还包括在第一时间处或在第一时间之前,从用户接收指定了一个或多个限定的能力修改触发器的配置信息,所述一个或多个限定的能力修改触发器用于在随后发生指定条件时发起对所述第一组多个计算节点提供的程序执行能力的自动修改,其中识别出的所述几个事件包括确定至少一个所述限定的能力修改触发器被满足。
7.根据权利要求6所述的计算机实现的方法,其中经由用户与所述程序执行服务提供的图形用户界面之间的一个或多个交互来接收所述配置信息。
8.根据权利要求6所述的计算机实现的方法,其中所述程序执行服务提供由程序执行服务的客户端使用的应用程序编程接口API,其中从由用户控制的执行程序经由API接收来自用户的所述配置信息。
9.根据权利要求1所述的计算机实现的方法,其中基于所述第一组中的部分计算节点的数量来测量所述第一组的程序执行能力,使得在所述第一时间提供的程序执行能力是计算节点的第一数量,在所述第二时间的实际程序执行能力是计算节点的不同的第二能力,其中所述第一时间与所述第二时间之间的可用性改变包括所述第一组中的一个或多个计算节点变为不可用或一个或多个附加计算节点被添加到所述第一组。
10.根据权利要求1所述的计算机实现的方法,还包括针对所述第二时间之后的附加时段,将在所述附加时段发生的附加事件识别为在所述附加时段期间的附加可用性改变的原因。
11.根据权利要求1所述的计算机实现的方法,其中所述用户是程序执行服务的多个用户之一,其中程序执行服务提供配置为执行所述多个用户的程序的几个计算节点,其中所述第一组多个计算节点是所述几个计算节点的子集。
12.一种计算系统,包括:
一个或多个处理器;以及
一个或多个模块,当通过所述一个或多个处理器中的至少一个处理器执行所述一个或多个模块时,将所述至少一个处理器配置为:
将一组多个计算节点与用户相关联,以用于在第一时间向用户提供初始程序执行能力;
识别多个事件,每个事件与由所述一组多个计算节点提供的程序执行能力的指定修改相关联,其中当所述一组多个计算节点执行一个或多个软件程序时,在所述第一时间与随后的第二时间之间发生所述多个事件;
在所述第二时间处或在所述第二时间之后,接收对与所述一组多个计算节点在所述第二时间提供给用户的第二程序执行能力有关的信息的请求,所述第二程序执行能力至少部分基于所述一组多个计算节点中的一个或多个计算节点在所述第一时间与所述第二时间之间的可用性改变而与所述第一程序执行能力有所不同;以及
至少部分基于所述请求提供对识别出的所述多个事件中的几个事件的组合的指示,所述组合被确定为所述可用性改变的原因。
13.根据权利要求12所述的计算系统,其中接收的所述请求包括对所述可用性改变的指示以及关于哪些事件能够被归因为指定的可用性改变的原因的查询。
14.根据权利要求12所述的计算系统,其中接收的所述请求指定识别出的所述几个事件中的一个或多个事件,并且包括对指定的所述一个或多个事件导致哪些可用性改变的查询。
15.根据权利要求12所述的计算系统,其中识别出的所述几个事件包括通过所述一组多个计算节点提供给用户的程序执行能力的一个或多个自动修改,其中所述第一或多个自动修改中的至少一个自动修改至少部分基于确定满足了用户先前指定的一个或多个能力修改标准。
CN201410646174.5A 2009-09-29 2010-09-27 计算机实现方法和计算系统 Active CN104331333B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/569,744 2009-09-29
US12/569,723 US8352609B2 (en) 2009-09-29 2009-09-29 Dynamically modifying program execution capacity
US12/569,723 2009-09-29
US12/569,744 US8689225B2 (en) 2009-09-29 2009-09-29 Attributing causality to program execution capacity modifications
CN201080041786.1A CN102511041B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201080041786.1A Division CN102511041B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统

Publications (2)

Publication Number Publication Date
CN104331333A true CN104331333A (zh) 2015-02-04
CN104331333B CN104331333B (zh) 2018-09-18

Family

ID=43826606

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201410648530.7A Active CN104331334B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统
CN201080041786.1A Active CN102511041B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统
CN201410646174.5A Active CN104331333B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN201410648530.7A Active CN104331334B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统
CN201080041786.1A Active CN102511041B (zh) 2009-09-29 2010-09-27 计算机实现方法和计算系统

Country Status (6)

Country Link
EP (1) EP2483797A4 (zh)
JP (2) JP5486687B2 (zh)
CN (3) CN104331334B (zh)
CA (1) CA2774297C (zh)
SG (2) SG188079A1 (zh)
WO (1) WO2011041253A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831944A (zh) * 2020-07-09 2020-10-27 腾讯科技(深圳)有限公司 多媒体处理方法、装置、客户端、服务器及存储介质
CN112400159A (zh) * 2018-07-23 2021-02-23 国际商业机器公司 在数量动态更新中同时维护计算节点

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102646B (zh) * 2013-04-07 2019-01-15 腾讯科技(深圳)有限公司 数据处理的方法、装置及系统
US11140045B2 (en) 2015-07-31 2021-10-05 Microsoft Technology Licensing, Llc Changelog transformation and correlation in a multi-tenant cloud service
CN108632067B (zh) 2017-03-21 2020-12-08 华为技术有限公司 容灾部署方法、装置及系统
CN110968590A (zh) * 2019-12-23 2020-04-07 北京奇艺世纪科技有限公司 任务执行方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779030B1 (en) * 1997-10-06 2004-08-17 Worldcom, Inc. Intelligent network
US20060173857A1 (en) * 2005-01-31 2006-08-03 Cassatt Corporation Autonomic control of a distributed computing system using rule-based sensor definitions
CN101127130A (zh) * 2006-08-14 2008-02-20 林伟龙 用于车辆的安全记录和控制系统
US20080059557A1 (en) * 2006-03-31 2008-03-06 Desantis Peter N Executing programs based on user-specified constraints

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590739B2 (en) * 1999-11-22 2009-09-15 Akamai Technologies, Inc. Distributed on-demand computing system
US6957343B2 (en) * 2001-03-30 2005-10-18 Intel Corporation Validating keying material by using a validation area of read-only media to prevent playback of unauthorized copies of content stored on the media
JP3772713B2 (ja) * 2001-09-12 2006-05-10 日本電気株式会社 プライオリティ動的制御方式、プライオリティ動的制御方法およびプライオリティ動的制御用プログラム
JP2005196601A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 自律管理システム向けポリシシミュレータ
JP2005250818A (ja) * 2004-03-04 2005-09-15 Hitachi Ltd プログラム実行サービス提供方法
US7680799B2 (en) * 2005-01-31 2010-03-16 Computer Associates Think, Inc. Autonomic control of a distributed computing system in accordance with a hierarchical model
US7543020B2 (en) * 2005-02-10 2009-06-02 Cisco Technology, Inc. Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US8767535B2 (en) * 2007-07-11 2014-07-01 Hewlett-Packard Development Company, L.P. Dynamic feedback control of resources in computing environments
US8396846B2 (en) * 2007-12-13 2013-03-12 International Business Machines Corporation Database trigger modification system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779030B1 (en) * 1997-10-06 2004-08-17 Worldcom, Inc. Intelligent network
US20060173857A1 (en) * 2005-01-31 2006-08-03 Cassatt Corporation Autonomic control of a distributed computing system using rule-based sensor definitions
US20080059557A1 (en) * 2006-03-31 2008-03-06 Desantis Peter N Executing programs based on user-specified constraints
CN101127130A (zh) * 2006-08-14 2008-02-20 林伟龙 用于车辆的安全记录和控制系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112400159A (zh) * 2018-07-23 2021-02-23 国际商业机器公司 在数量动态更新中同时维护计算节点
CN111831944A (zh) * 2020-07-09 2020-10-27 腾讯科技(深圳)有限公司 多媒体处理方法、装置、客户端、服务器及存储介质
CN111831944B (zh) * 2020-07-09 2021-09-28 腾讯科技(深圳)有限公司 多媒体处理方法、装置、客户端、服务器及存储介质

Also Published As

Publication number Publication date
CN104331333B (zh) 2018-09-18
CA2774297A1 (en) 2011-04-07
JP5486687B2 (ja) 2014-05-07
JP5868442B2 (ja) 2016-02-24
EP2483797A4 (en) 2013-08-07
EP2483797A1 (en) 2012-08-08
JP2013505519A (ja) 2013-02-14
CN102511041B (zh) 2014-12-10
CN104331334A (zh) 2015-02-04
CA2774297C (en) 2015-03-03
SG188079A1 (en) 2013-03-28
SG179098A1 (en) 2012-05-30
WO2011041253A1 (en) 2011-04-07
JP2014089776A (ja) 2014-05-15
CN104331334B (zh) 2018-04-06
CN102511041A (zh) 2012-06-20

Similar Documents

Publication Publication Date Title
US10360083B2 (en) Attributing causality to program execution capacity modifications
US9985905B2 (en) System and method for cloud enterprise services
US9400690B2 (en) Dynamically modifying program execution capacity
US8689227B2 (en) System and method for integrating capacity planning and workload management
US9479382B1 (en) Execution plan generation and scheduling for network-accessible resources
US20090307685A1 (en) Method, Arrangement, Computer Program Product and Data Processing Program for Deploying a Software Service
CN102511041B (zh) 计算机实现方法和计算系统
KR101700313B1 (ko) 인스턴스 호스트 구성
CN102567106B (zh) 任务调度方法、系统和装置
EP2954412A1 (en) Cost-minimizing task scheduler
CN107968810A (zh) 一种服务器集群的资源调度方法、装置和系统
US10555145B1 (en) Learned configuration of modification policies for program execution capacity
US20150310390A1 (en) Aggregation and workflow engines for managing project information
US20050071281A1 (en) Software license optimization
US20060149611A1 (en) Peer to peer resource negotiation and coordination to satisfy a service level objective
US20220237197A1 (en) System and method for supporting rollback of changes made to target systems via an integration platform
US9412083B2 (en) Aggregation and workflow engines for managing project information
CN116051003B (zh) 库存处理方法、装置、电子设备及存储介质
CN117114613A (zh) 一种业务流程控制的流程引擎、方法、设备及程序产品
CN116360912A (zh) 一种虚拟机调度方法、装置、核心网网元和网络设备
CN116401224A (zh) 一种日志记录方法、终端设备及计算机可读存储介质
CN116542478A (zh) 资源处理方法、装置、计算机设备和存储介质
US20150331896A1 (en) Method and apparatus for managing distributed transactions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant