通用自动缩放的制作方法

文档序号:16807111发布日期:2019-02-10 13:09阅读:162来源:国知局
本申请要求以下专利申请的优先权:2016年5月17日提交的名称为“versatileautoscaling”的美国临时申请no.62/337,809;2016年6月27日提交的名称为“versatileautoscaling”的共同未决的美国专利申请no.15/194,479(代理人案卷号0097749-690us0);以及2016年6月27日提交的名称为“versatileautoscalingforcontainers”的共同未决的美国专利申请no.15/194,486(代理人案卷号0097749-711us0),这些专利申请的内容全文以引用方式并入本文。
背景技术
::计算资源提供商利用大规模的服务器和存储装置网络,使其客户能够执行各种应用和web服务。这种远程分布式计算模型允许客户高效且自适应地满足其计算需求,而无需自己托管和维护计算基础设施。然而,随着虚拟资源的使用不断增加,客户会遇到固定的虚拟资源组难以解决的情况,例如意外的负载和流量峰值。此外,到目前为止,自动负载均衡和资源缩放技术限于少量资源服务类型。另一方面,计算资源服务提供商的客户还经常利用监测服务来测量资源的性能并诊断资源问题。例如,通过这些监测服务,客户可以获取有关资源使用情况的数据,并使用此数据来决定如何调整资源分配。但是,这种决策是手动流程,不足以对负载和网络流量的快速变化作出反应。附图说明将参考附图描述各种技术,其中:图1示出根据实施方案的缩放服务的示例;图2示出根据实施方案的缩放服务的架构的示例;图3示出根据实施方案的用于将软件容器服务资源进行缩放的控制台的第一屏幕的示例;图4示出根据实施方案的用于将软件容器服务资源进行缩放的控制台的第二屏幕的示例;图5示出根据实施方案的用户界面控制台的示例;图6是示出根据实施方案的配置缩放服务的示例的流程图;图7是示出根据实施方案的缩放服务的示例性工作流的流程图;图8示出根据实施方案的将软件容器服务进行缩放的示例;图9是示出根据实施方案的将软件容器服务进行缩放的示例的流程图;并且图10示出可实现各种实施方案的环境。具体实施方式在一个示例中,客户可以使用缩放服务来注册许多不同类型的资源以进行缩放,例如数据库资源、负载均衡资源、计算资源等,并且缩放服务可以集中管理这些资源的缩放,而不是每个单独资源(或管理这些资源的服务)具有专用的缩放组件。客户可通过提供各种标识信息或元数据来注册其待缩放的目标资源(例如,数据库实例、计算实例等),所述标识信息或元数据例如服务名称(例如,命名空间)、资源id和资源的可缩放维度(例如,资源能够独立地缩放读取和写入维度)。在目标资源的操作期间,从计算资源服务提供商的遥测服务接收通知。在该示例中,遥测服务聚合从计算资源服务提供商的服务分配给客户的资源的测量结果。该通知指示资源的聚合测量结果已相对于客户对遥测服务的遥测服务警报指定的警报阈值达到一定值。作为接收通知的结果,获得与警报相关联的缩放策略。缩放策略包括一组参数,所述参数指定作为触发遥测服务警报的结果,应如何缩放可缩放目标(例如,资源的维度)。基于缩放策略中包括的参数组,做出对服务的缩放动作请求,缩放动作指示要对可缩放目标做出的改变量(例如,将资源的可缩放维度增加/减少一定量或容量百分比,将可缩放维度设置为固定容量等)。进行服务的状态请求,并且作为响应,接收来自服务的状态指示。基于状态指示,确定是否已履行缩放请求。在另一个示例中,接收注册软件容器服务的资源维度的请求。作为响应,资源维度被注册为可缩放目标。随后接收来自计算资源服务提供商的遥测服务的警报,并且至少部分地基于所接收的警报,获得与警报相关联的缩放策略,其中缩放策略包括用于缩放资源的一组参数。获得表示与用于授权履行对软件容器服务的请求的角色相关联的会话凭证的令牌,并且作出软件容器服务对资源的第一当前容量的第一请求。第一请求可包括令牌。作为接收第一当前容量的结果,至少部分地基于缩放策略和第一当前容量来计算资源的新容量。进行软件容器服务的第二请求,以将资源的容量设置为新容量。第二请求也可包括令牌。最后,针对资源的第二当前容量进行软件容器服务的第三请求。第三请求也可包括令牌。然后,基于第三当前容量和新容量的比较结果,确定是否已履行第二请求。在前面和后面的描述中,描述了各种技术。出于解释的目的,阐述了具体配置和细节,以便提供对实现技术的可能方式的透彻理解。然而,还将明显的是,下文所述的技术可以在没有具体细节的情况下以不同的配置实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。本公开中描述和建议的技术使用被设计为针对计算资源服务提供商的客户动态地缩放各种分布式计算资源特性的系统来改进计算领域,尤其是自动缩放领域。另外,本公开中描述和建议的技术通过提供可兼容用于动态缩放多种类型资源的单组应用编程接口来利用分布式计算资源改善用户体验。此外,本公开中描述和建议的技术必须植根于计算机技术中,以便克服由于缺乏对某些类型的计算资源的动态缩放的可用性而具体引起的问题。图1示出可实践实施方案的环境100的一方面。如图1所示,环境100可包括缩放服务102,其被配置为响应于从遥测服务106接收到警报110而向资源服务104作出缩放请求108,以将资源112纵向扩容或缩容。本公开提出了用于缩放服务102的设计,其可用于为具有可缩放维度的资源的各种资源服务管理资源缩放。利用缩放服务102,计算资源服务提供商的客户可能能够自动缩放各种资源服务(除虚拟计算系统服务之外)。例如,客户可以定义资源112的缩放策略,响应于警报110或其他事件而缩放资源112,根据时间表缩放资源112,查看缩放事件的历史,以及接收缩放事件的通知。在一些示例中,“缩放策略”可以指定义如何(例如,方式和量值)缩放可缩放目标的策略。具体地讲,缩放策略可提供缩放服务102所需的参数,以计算可缩放目标的新的期望容量。在一些示例中,“可缩放目标”可以指可以编程方式缩放(例如,经由发送到应用编程接口(api)的命令、远程过程调用等)的资源(例如,软件容器的数量、处理器内核的数量、存储器的量、存储装置的吞吐量、网络的带宽、消息队列的深度等)的维度。可缩放目标可以与零个或多个缩放策略相关联。本公开的缩放服务102提供了许多有益效果。例如,客户只需要学习并使用单一组api来缩放多种不同的资源类型。此外,随着更高级的缩放形式(例如,目标利用缩放)变得受欢迎,缩放服务可适于执行用于缩放的重要计算(例如,不同类型的缩放策略可具有不同的计算算法,策略的并发执行被协调和优先化),并且可适于缩放新的web服务类型。缩放服务102可允许计算资源服务提供商的客户将缩放策略与资源服务相关联,例如2014年11月11日提交的名称为“systemformanagingandschedulingcontainers”的美国专利申请no.14/538,663中所述的软件容器服务,该专利申请以引用方式并入。缩放策略可以由来自另一服务或应用的通知触发,例如利用遥测服务诸如遥测服务106配置的警报的触发。在一些实施方案中,缩放策略根据需要由客户执行,例如通过使用executescalingpolicy()api来执行缩放策略。然而,在缩放服务102的一些实施方案中,存在冷却的概念。在一些示例中,“冷却”可以指在采取动作之后暂停缩放的时间段。冷却用作限制缩放尝试频率的节流器。在一些实施方案中,如果客户未指定冷却,则应用默认冷却时间段(例如,30秒)。缩放服务102还可以维护详细的历史/日志,该详细的历史/日志描述了对资源服务104进行缩放请求的原因以及缩放请求是否成功缩放资源112。以这种方式,缩放服务102使客户不必响应于改变需求而手动缩放其服务。在实施方案中,服务提供商使客户能够通过命令行界面(cli)、软件开发工具包(sdk)、api(例如,registerscalableresource()、putscalingpolicy()等)或图形用户界面中的管理控制台来配置缩放服务102。这种管理控制台的示例可见于图3至图5中。缩放服务102可以是被配置为自动和动态地管理可能遭受需求波动的计算资源的服务。例如,自动缩放服务可以响应于来自外部应用的警报或其他通知,例如由遥测服务106传输到缩放服务102的警报110,以使另一服务调整和/或分配资源。本公开的缩放服务102的优点不仅仅在于它能够使资源服务对资源进行纵向扩容或缩容,而且缩放服务102未被计算资源服务提供商专门配置以缩放任何特定资源;也就是说,缩放服务102是通用的,因为它允许客户注册和配置哪些资源类型要缩放或自动缩放、什么是可缩放的维度、应在哪个方向上缩放资源类型以及哪些事件应触发自动缩放。例如,客户可以使用缩放服务102来注册许多不同类型的资源以进行缩放,例如数据库资源、负载均衡资源、计算资源等。在该示例中,缩放服务102集中管理这些资源的缩放,而不是每个单独资源(或管理这些资源的服务)具有专用的缩放组件。客户可通过提供各种标识信息或元数据来注册其待缩放的目标资源,所述标识信息或元数据例如服务命名空间或名称、资源id和资源的可缩放维度(例如,资源能够独立地缩放读取和写入维度)。客户可以定义缩放服务102外部的事件(例如,用于触发遥测服务的警报的参数、通过调度服务安排的时间的发生等),并且事件的发生可以使缩放服务102检索客户定义的缩放策略,该缩放策略规定缩放服务102响应于该事件应采取什么动作。在一些情况下,可基于与待缩放的服务不同的服务的量度来触发事件。例如,在第一服务处超过阈值的负载可以触发待发送到缩放服务102的警报,并且对应于警报的缩放策略可以声明应增加来自第二服务的一个或多个资源。作为更详细的示例,客户可以独立地操作视频流站点和用于存储数字照片的站点。在一天中的某些时间,视频流站点可经历超过阈值的需求,这导致警报被发送到缩放服务102。客户可具有缩放策略,该缩放策略声明在这种事件下,应增加视频流站点的资源以适应增加的需求,但为了抵消增加对视频流站点的需求的成本,可以对应地减少数字照片站点的资源。在该示例中,客户可能已确定数字照片站点资源的减少不会显著影响该站点的用户。关于缩放策略,缩放策略定义“如何”缩放可缩放目标(即,资源112)。具体地讲,缩放策略提供了缩放服务102所需的参数,以计算可缩放目标的新的期望容量。存在不同类型的缩放策略,并且可以分配可缩放目标具有零个或多个缩放策略。缩放策略可以指定作为执行缩放策略的结果而执行的缩放活动(例如,由警报110触发)。缩放活动表示在特定时间增加或减少可缩放目标的期望容量所采取的动作。可缩放目标的按年月顺序的缩放活动序列表示其缩放历史,其可被记录以供稍后由可缩放目标的客户所有者参考。如本公开所述,可能存在需要定制缩放参数以处理服务独特性的情况。例如,对于存储器内高速缓存服务集群缩放,客户应当能够指定是立即对高速缓存节点计数应用更改还是在下一个维护窗口期间应用更改。缩放服务102可允许在缩放策略中(例如,在json映射中)指定特定于具体资源服务104的参数。这些特定参数的使用可以限于特定于服务的性质和/或功能。关于请求参数和响应元素的更多细节可以在下面的图2和图6的描述中找到。资源服务104可以是由计算资源服务提供商单独地或作为服务的组合向客户提供的具有可缩放资源的任何服务。例如,资源服务104可以是虚拟计算系统服务、软件容器服务、块级数据存储服务、按需数据存储服务、通知服务、消息服务、流式服务、消息传递服务或数据库服务中的一种或多种。可缩放资源是具有可增加或减少以便影响性能的维度的计算资源。例如,虚拟计算系统服务是可缩放资源,因为分配给客户的虚拟机的数量、分配给虚拟机的处理器/计算(计算)功率以及分配给虚拟机的虚拟存储器是可增加或减少的维度。同样,数据库服务具有也可以增加或减少的维度,诸如读取容量吞吐量和写入容量吞吐量等等。又如,用于将消息从一个计算实体发布到另一个计算实体的消息传递服务具有作为可缩放维度的队列大小。除了其他可缩放的维度之外,存储服务还具有卷大小、块大小和吞吐量。由计算资源服务提供商提供的服务可包括一个或多个接口,所述接口使客户或其他授权实体能够经由例如适当配置的api调用来提交请求。此外,每个服务可包括一个或多个服务接口,所述服务接口使服务能够彼此访问(例如,使虚拟计算机系统服务的虚拟计算机系统能够将数据存储在按需数据存储服务中或从按需数据存储服务检索数据和/或访问由块级数据存储服务提供的一个或多个块级数据存储装置)。每个服务接口还可经由加密密钥和/或其他此类安全和/或受保护的访问方法彼此提供安全和/或受保护的访问,从而实现它们之间的安全和/或受保护的访问。作为分布式计算机系统协同操作的服务集合可具有分布式计算机系统的元件之间的单个前端接口和/或多个接口。资源112旨在表示由资源服务104提供的资源。例如,如果资源服务104是数据库服务,则资源112可以是数据库。如果资源服务104是虚拟计算系统服务,则资源112可以是虚拟机实例的集群。又如,如果资源服务104是消息排队服务,则资源112可以表示消息队列。在图1所示的具体示例中,资源112响应于发送到缩放服务102的警报110而增加。然而,可以设想,增长的资源可能会减少,并且不同的警报可以触发缩放服务1022,从而使资源服务104减少资源112。还必须注意,除“大小”之外的维度也可以缩放。例如,资源112可以表示在容器实例集群中运行的一组任务,例如2014年11月11日提交的名称为“systemformanagingandschedulingcontainers”的美国专利申请no.14/538,663中所述的软件容器服务任务,该专利申请以引用方式并入,并且待增加或减少的维度可以是该组任务中的任务量;也就是说,可请求资源服务104增加或减少待运行的任务的数量。缩放服务102可允许计算资源服务提供商的客户使用api调用(例如,putmetricalarm())、遥测服务控制台将缩放策略与遥测服务106的遥测服务警报相关联,或者使用api调用(例如,putrule())将缩放策略与遥测服务事件相关联,使得在警报或事件激发时可触发该策略。在大多数情况下,客户会为资源服务设置一个横向扩容策略和一个横向缩容策略(或一个纵向扩容策略和一个纵向缩容策略),以便管理所需要的增加和减少;但在实施方案中,客户还可以选择为同一资源服务设置多个横向扩容或横向缩容策略。在一些示例中,术语“横向扩容”可以指复制/创建将被缩放的类型的附加资源(例如,添加附加软件容器)的概念。同样,术语“横向缩容”可以指减少/终止将被缩放的类型的多个资源(例如,终止容器实例)的概念。类似地,术语“纵向扩容”可以指增加资源的量值(例如,增加存储容量的大小)。同样,术语“纵向缩容”可以指减小资源的量值(例如,减小数据库服务表的读取吞吐量)。如上所述,可以使缩放服务响应于从外部应用或服务接收到通知而执行一个或多个动作。在一些实施方案中,该外部应用或服务包括遥测服务,例如遥测服务106。遥测服务106可以是被配置为聚合控制组测量结果(例如,关于资源服务104的资源112的状态的信息)和容器日志的服务,并且响应于触发客户定义的警报而启动警报动作。控制组测量结果包括信息,诸如在资源服务104下运行的进程所使用的存储器的量、在资源服务104下运行的进程触发页面错误的次数、在资源服务104下运行的进程的中央处理单元使用、中央处理单元代表在资源服务104下运行的进程执行系统调用的时间、对资源112的读取和写入的次数、资源服务104代表客户使用的网络流量以及排队等待资源服务104的输入/输出操作的数量。当某些控制组测量结果相对于阈值达到一定值时,遥测服务106可允许客户配置遥测服务106以将警报110发送到另一应用或服务(例如,缩放服务102)。缩放请求108可以是对资源服务104的请求,以增加或减少资源112的可缩放维度。是增加还是减少可缩放维度以及如何作出请求可以在缩放服务102处通过由客户配置的对应于警报110的缩放策略来规定。缩放请求108可以呈对资源服务104的api调用的形式。必须注意,在一些实施方案中,资源服务104不需要是由与缩放服务102和/或遥测服务106相同的计算资源服务提供商提供的服务。也就是说,提供缩放服务102的计算资源服务提供商可以进一步提供网关服务138,该网关服务使得能够在缩放服务102与其他计算资源服务提供商提供的服务之间交换api调用。因此,网关服务138被示出为缩放请求108可以通过的可能组件。在这些实施方案中,触发缩放策略的警报或其他通知也可以由第三方的遥测或其他服务(未在环境100中示出)提供,并且还通过网关服务138传递到缩放服务102。警报110表示响应于指定条件的发生而发送到缩放服务102的通知。例如,遥测服务106可以由分配了资源112的客户配置,以监测关于对资源服务104的资源112的需求的特定量度,并且如果需求超过客户指定的阈值,则将警报110发送给缩放服务102。需注意,虽然警报110被描绘为来自遥测服务106,但可以设想,可以从其他应用和服务接收警报。例如,调度器服务(未示出)可被配置为在周一至周五的上午8:00发送触发缩放服务102以使资源服务104将资源112增加一定量的警报,并在周二至周六晚上九点钟发送触发缩放服务102以使资源服务104将资源112减少该一定量的警报。因此,缩放服务102可允许客户设置缩放策略,这使得客户的资源纵向扩容(增加)和纵向缩容(减少)可缩放资源的可缩放维度。在一些实施方案中,除了纵向扩容和纵向缩容的缩放动作之外,缩放服务102的缩放策略可导致其他动作被执行,例如检查资源的健康状况,导致不健康的资源被替换,将资源附加到负载均衡器等等。缩放服务102可以与在可由客户增加或减少资源的维度(即,特性)的意义上可缩放的资源兼容。因此,缩放服务102通过提供一个接口用于将传统上不可自动缩放的各种资源服务(例如,软件容器服务、数据库服务和数据流服务)进行缩放来改善客户体验。因此,缩放服务102可允许客户设置缩放策略,并为各种类型的资源服务定义缩放参数。以这种方式,缩放服务102不需要适于支持缩放不同类型的服务的不同类型的资源。基于缩放策略确定缩放什么和如何缩放,和/或向可由可缩放资源的客户所有者提供的缩放服务102注册可缩放资源。每个资源必须可与其他资源唯一地区分;资源可具有可用于标识特定资源的唯一标识符(id)。每个资源可具有对容量单元的某一度量。例如,软件容器服务软件容器可具有对在软件容器服务的服务构造中运行的任务数量的度量。又如,流式服务流可具有对流中的分片数量的度量。又如,数据库服务表可具有对读取和写入容量单元数量的度量。“软件容器”(也简称为“容器”)可以是隔离的用户空间实例。也就是说,软件容器可以是在包括程序、数据和系统库的计算机系统实例下运行的轻量级虚拟化实例。软件容器与虚拟机之间的区别在于,当虚拟机的管理程序使整个硬件装置抽象化时,软件容器引擎可以仅使操作系统内核抽象化。虽然软件容器彼此隔离运行,但它们可以根据需要共享相同的二进制文件和库文件。因此,在资源使用方面,软件容器可以比虚拟机更有效。在客户需要运行同一应用的多个副本的环境中,与使用相同硬件在单独的虚拟机中同时运行应用相比,可以在软件容器中同时运行更多应用。软件容器可以在容器实例中运行。在一些示例中,“容器实例”可以指被配置为启动和运行软件容器的虚拟或非虚拟(例如,运行操作系统的物理计算机系统)的计算机系统实例。因此,容器实例可以是被配置为启动和执行软件容器的虚拟机。当运行软件容器时,运行程序(即,进程)与在同一计算机系统实例中运行的其他进程隔离。因此,多个软件容器可以各自在容器实例的操作系统(例如,使用由操作系统分配的存储器、cpu和存储装置)下运行,并且彼此隔离地执行(例如,每个容器可具有操作系统的文件系统的隔离视图)。每个容器可具有其自己的命名空间,并且在容器内运行的应用可通过仅具有对容器命名空间可用的资源的访问权限来隔离。以这种方式,容器可以是在其自己的命名空间内运行一个或多个单个应用的有效方式,而没有与启动和维护用于运行单独的用户空间实例的虚拟机相关联的开销。用于管理软件容器的系统的示例包括docker容器引擎和coreosrocket容器引擎。一个或多个容器实例可包括集群。在一些示例中,“集群”可以指已向特定集群注册(即,与其相关联)的一个或多个容器实例的集合。集群可以与计算资源服务提供商的客户的账户相关联,该计算资源服务提供商可以向客户提供用于运行软件容器的软件容器服务。因此,可缩放服务可以一种形式或另一种形式全都具有容量的概念。缩放服务102可具有单个接口,该接口允许客户针对具有特定id的资源指定响应于缩放策略的执行而将该容量增加或减少一定百分比或绝对量。以这种方式,客户可以从相同接口为不同资源类型指定资源缩放。客户可以将缩放策略附加到遥测服务106的警报,或者在一些实施方案中,客户可以将缩放策略附加到遥测服务事件(如本公开所述)。以这种方式,计算资源服务提供商不需要为所提供的每个不同的可缩放服务向单独缩放服务付费。对于软件容器服务,例如图8的软件容器服务804,服务构造可以是可缩放资源。在一些示例中,“服务构造”可以指由客户配置为作为应用服务(例如,用于执行特定工作负荷处理)运行的一组任务/容器。一个或多个服务构造可以在容器实例的集群中运行。客户可以指定期望的任务计数,该任务计数指示应当在服务构造中同时执行的任务的数量。因此,期望的任务计数可以是服务构造资源的可缩放维度。关于缩放数据库服务资源维度(例如,预配置的吞吐量缩放),与服务构造任务计数不同,数据库服务可能无法区分api级的表的预配置吞吐量的“期望”容量和“实际”容量(即,数据库服务可能无法区分预配置的吞吐量和实际的吞吐量)。对于缩放服务,表的当前预配置吞吐量是期望容量和实际容量。如图2所示,缩放服务202可以与计算资源服务提供商的其他服务交互。图2示出可实践实施方案的环境200中的缩放服务的系统架构。如图2所示,环境200可包括缩放服务202,该缩放服务包括缩放服务前端214、缩放服务后端228和缩放服务工作流管理器224。客户226可经由缩放服务前端214设置缩放策略,并且还利用遥测服务206设置触发缩放策略的警报动作。对缩放服务前端214的调用可通过认证服务216认证。缩放策略可以利用数据库服务220由缩放服务后端228存储,并且缩放动作可以由缩放服务后端228通过缩放服务工作流管理器224发起。客户226可以经由策略/角色管理服务(未示出)指定待分配给缩放服务202的角色,并且缩放服务202可以从令牌服务218获得令牌作为缩放服务202已被授予该角色的证据。在触发缩放策略时,缩放服务202可以获得资源的当前容量,并在指定角色下为资源服务204的相应资源服务设置资源的容量。缩放服务前端214可以是缩放服务202的前端。也就是说,缩放服务前端214为客户226提供单个端点。客户226可使用界面控制台或调用api来指示缩放服务202为其资源创建缩放策略。也就是说,客户226可以向缩放服务前端214提交缩放服务api请求。缩放服务前端214可以将请求传递到缩放服务后端228。例如,客户226可使用服务接口(即,经由缩放服务前端214)注册可缩放目标。可缩放目标可以指客户226可以缩放的资源维度。在一些示例中,可缩放目标可包括服务id或命名空间、资源id和/或维度名称或标识符,使得可缩放目标唯一地标识待缩放的特定服务的特定资源的维度。一旦注册了可缩放目标,客户226就可以创建与可缩放目标相关联的缩放策略。缩放服务后端228可以是缩放服务202的后端数据和/或控制平面。缩放服务后端228可以(例如,经由控制平面)接收和处理缩放请求,并且(例如,经由数据平面)创建、读取、更新和删除api请求。对于缩放请求,缩放服务后端228可以计算新的期望容量并且经由工作流服务222启动缩放工作流,该工作流服务本身可以与目标资源交互并使用控制平面服务跟踪和记录交互。策略的存储、缩放活动和可缩放目标的标识可利用数据库服务220进行存储,然后可使用工作流服务222来协调缩放工作流。计算资源服务提供商可提供用于管理各种资源服务类型的缩放的通用api,使得客户226仅需要学习一个api来缩放其所有资源。缩放服务前端214所支持的api函数的示例包括:关于api函数的进一步细节将在下文结合图6论述。为了使缩放服务202确定待缩放的资源,资源必须是唯一可识别的并且具有可独立地增加或减少的一个或多个可缩放性度量(例如,可缩放的维度)。也就是说,客户226必须识别他们想要自动缩放的资源。例如,在一些具体实施中,资源可以由urn标识。除此之外或另选地,在一些具体实施中,资源可以由客户226指定的服务名称标识。urn格式的一个示例如下所示:urn:partition:service:region:account-id:resource资源可基于分区、服务、区域、账户id和/或资源标识符来明确地标识,并且服务命名空间、资源id和可缩放维度的组合可以唯一地标识可缩放目标。在这些信息中,缩放服务可能仅需要来自客户226的服务和资源标识符。例如,客户226可以为缩放服务202提供以下信息:服务命名空间(web服务文档中列出的服务命名空间之一)和资源id(唯一地标识服务命名空间内的资源的字符串)。资源id格式应遵循urn格式的资源部分;在这种情况下,如果服务具有urn,则可能足以根据需要构建资源id的urn。使用服务命名空间和资源id的组合可能比使用urn更有优势。例如,客户226可以参考服务命名空间和资源id或仅通过服务命名空间来描述在缩放服务202中注册的客户资源,并且以这种方式,客户226不需要构建或跟踪urn。这样的具体实施然后将适应不使用urn的资源服务。以下是软件容器服务任务缩放的示例:“servicenamespace”:“containerservice”“resourceid”:“service/my-cluster/my-service”以下是数据库服务220预配置吞吐量缩放的示例:“servicenamespace”:“databaseservice”“resourceid”:“table/my-table”在一些实施方案中,客户226可以在资源id中指定urn,并且系统将假设服务命名空间是urn中的命名空间。在一些具体实施中,作为单独资源缩放的替代或补充,缩放服务202提供应用缩放。在一些示例中,“应用缩放”可以指将形成客户226的应用堆栈的一组相关资源进行缩放。出于缩放的目的,相关资源组本身将作为资源,并且将是可唯一地识别的。因此,服务命名空间和资源id的概念也适用于应用缩放。然而,如果客户226仅打算缩放一个资源,则缩放服务不必知道它属于某一组。另一方面,如果意图整体地缩放组,则客户226应考虑缩放组相对缩放其中的资源。缩放服务202的工作应当是确定如何缩放资源。关于可缩放的维度,仅仅识别资源可能不足以确定待缩放的资源的维度。例如,如上所述,客户226可以单独地缩放数据库服务表的读取和写入预配置吞吐量。通常,资源可具有一个以上可以独立地改变的可缩放维度。因此,除了服务命名空间和资源id之外,客户可能还需要指定可缩放的维度。以下是软件容器服务任务缩放的示例:“scalabledimension”:“containerservice:service:desiredcount”缩放服务202可以要求客户226指定客户226想要缩放的资源的“维度”。例如,数据库服务表或全局二级索引(gsi)可具有可以独立地改变并且可被视为可缩放维度的读取和写入预配置吞吐量。对于数据库服务表和gsi,读取和写入预配置吞吐量分别可具有至少两个可缩放维度。客户226可以定义每个表/gsi和每个可缩放维度的最大和最小边界和缩放策略。在一些实施方案中,数据库服务220限于存储在特定时间帧(例如,在单个日历日期间)中给定表的一定数量(例如,四个)预配置吞吐量减少。以下是数据库服务220预配置吞吐量缩放的示例:“scalabledimension”:“databaseservice:table:readcapacityunits”在该实施方案中使用的惯例是“<service-namespace>:<resource-type>:<property>”。然而,可以设想,可使用其他格式。“可缩放维度”的概念也可应用于资源组,并且每组资源可具有其自己的可缩放性度量。可缩放资源服务的另一个示例是存储器内高速缓存服务。存储器内高速缓存服务可以是用于提供通用分布式存储器高速缓存的分布式存储器内高速缓存环境。存储器内高速缓存服务可通过在快速存储器内高速缓存中高速缓存数据来改善应用的性能,以减少必须读取的次数和外部数据源(例如,数据库)。存储器内高速缓存服务可包括具有高速缓存节点的高速缓存集群。为了缩放存储器内高速缓存服务集群,缩放服务202可以改变高速缓存集群中的高速缓存节点的数量。例如,在存储器内高速缓存服务中,客户226可以选择是立即改变高速缓存节点的数量还是在下一维护窗口期间改变高速缓存节点的数量。存储器内高速缓存服务可以支持高速缓存节点移除策略,以便可以动态地确定要移除的高速缓存节点。确定是否触发缩放策略和缩放服务202可以由缩放服务202外部的源(例如,遥测服务206)进行。也就是说,缩放策略可以由客户226附加到遥测服务206的遥测服务警报,并且缩放策略可以由遥测服务警报触发。例如,客户226可利用遥测服务206基于由遥测服务聚合的任何测量结果(但通常测量结果将是与缩放服务202将缩放的资源相关的测量结果)创建遥测服务警报。更具体地讲,如果待缩放的资源是软件容器服务软件容器,则可使用的一个量度将是软件容器正在其中运行的虚拟计算系统服务实例中的处理器利用率。在遥测服务206处,可以为遥测服务警报指定一个或多个阈值;例如,客户226可以指定当处理器利用率达到50%利用率时应激发遥测服务警报。一旦设置遥测服务警报,客户226就可以将任何缩放策略附加到其上,使得当警报激发时(即,测量值超过阈值),它可以触发缩放策略。当相关联的警报进入触发缩放策略的状态时,遥测服务206可以调用缩放服务202以调用缩放策略。在一些情况下,只要警报保持在该状态,遥测服务206就可以周期性地(例如,每分钟)调用缩放策略。在一些实施方案中,遥测服务206在每个警报状态仅调用一次缩放策略,然后可以在执行缩放动作之后执行工作流以检查警报状态,从而确定是否需要进一步缩放。作为警报激发的结果,警报的通知被发送到缩放服务前端214。缩放服务前端214将该信息传递到缩放服务后端228,然后该缩放服务后端从数据库服务220获取对应的缩放策略。缩放服务后端228检查所检索的缩放策略中的参数,从适当的资源服务获得待缩放的资源的当前容量,并且根据当前容量执行由缩放策略指定的计算以确定需要待缩放的资源的新的期望容量。需注意,对于一些策略类型,如步长策略,缩放服务202将获取关于量度的信息,以便确定将缩放策略中的哪些步长应用于资源。例如,客户226可创建缩放策略用于通过设置警报以在应用负载或流量的某些阈值处触发并将策略附加到其中,基于作为应用负载或流量的指示的量度对资源进行纵向扩容和纵向缩容。在该示例中,触发警报将调用策略,使得当流量上下变化时,资源将根据缩放策略的规定进行缩放。在一些实施方案中,遥测服务206响应于某些指定事件的发生而发送警报。此类事件的示例包括经由消息排队服务发送消息或在软件容器中执行某些功能。除此之外或另选地,在一些实施方案中,可根据预定义的时间表触发缩放策略。例如,客户226可以设置在每天下午6:00触发缩放策略的缩放时间表。遥测服务206的中断可由于遥测服务警报延迟发送到缩放服务202以触发缩放策略的执行而导致延迟的缩放。虽然基于量度的警报可能由于遥测服务206的不可用性而受到影响,但按需的缩放(例如,客户226经由缩放服务前端214)和调度的缩放(例如,根据时间表发送到缩放服务前端214的命令)不会受到影响。在接收到来自遥测服务206的调用以调用缩放策略时,缩放服务后端228可以同步地计算可缩放目标的新的期望容量,并且缩放服务工作流管理器224可以异步地设置可缩放目标的期望容量。缩放服务工作流管理器224可包含在实现和监测目标服务的变化时使用的工作流和活动定义。工作流可以由缩放服务工作流管理器224启动,该缩放服务工作流管理器可利用控制平面服务在数据库服务220中记录与目标服务的交互。除了设置期望的容量之外,缩放服务工作流管理器224还可以记录缩放活动。在一些实施方案中,缩放服务工作流管理器224还可以发送通知和/或发布事件。缩放服务后端228可以负责启动工作流执行(例如,经由工作流服务222)。在一些实施方案中,消息排队服务位于缩放服务后端228与工作流服务222之间以用于将工作流命令排队。数据库服务220可用于跟踪缩放活动的状态,存储由客户226注册的可缩放目标的标识,以及存储由客户226定义的缩放策略。缩放策略可利用数据库服务220以任何适用的格式进行存储,例如利用数据库服务220以表中的javascript对象表示法格式存储。然而,缩放策略可以由缩放服务202自动生成,使得客户226不需要直接提供缩放策略。如果数据库服务220具有中断,则可以执行各种方法以最小化对缩放服务202的不利影响。例如,可以对可缩放目标和缩放策略进行高速缓存;以这种方式,可能不创建新实体,但是缩放服务202将继续自动缩放现有可缩放目标。又如,可尽力记录缩放历史;换句话说,可以用缩放历史的准确性换取可用性,并且可以关闭“悬空”缩放活动。又如,可绕过将缩放任务写入数据库服务220的过程;例如,缩放服务后端228可以在消息排队服务的队列中放置缩放任务的消息,该消息包含工作流服务222在消息中需要的所有数据。资源服务204可以是由托管具有可缩放维度的资源的计算资源服务提供商提供的服务。资源服务的示例是软件容器服务。如果资源服务存在问题,则缩放可能受到影响,因为缩放服务202可能无法获得资源服务的当前容量或更新资源服务的资源。在一些实施方案中,即使资源服务是离线的,资源服务也能够继续接受缩放请求并将其进行排队,但此类请求的处理可能受到影响。客户226可以各种方式执行缩放策略。例如,在一些实施方案中,客户226可以使用命令行界面、软件开发工具包或控制台界面(例如,可经由浏览器访问)来执行策略。又如,在一些实施方案中,客户226可以响应于从遥测服务206接收到警报而调用策略。又如,客户226可通过由遥测服务206检测到的事件的发生而调用策略。又如,客户226可根据客户226为遥测服务206指定的时间表而调用策略。每个缩放动作(例如,对服务构造的期望任务计数进行的每个改变等)可具有相关联的元数据,诸如唯一活动标识符(id)、资源urn、描述、原因、起始时间、结束时间和/或状态。可结合由缩放服务202执行的每个缩放动作,利用数据库服务220记录/记载该相关联的元数据。客户226随后可通过其urn查询特定资源服务(例如,软件容器服务)的缩放活动。元数据的示例如下所示:activityid:ac813dee-e1e0-4804-8baf-5f3684e200cdresourceurn:urn:ws:containerservice:us-east-1:123456789012:service/my-containerservice-servicedescription:increasingdesiredtaskcountcause:at2015-10-06t17:43:07zthedesiredtaskcountwaschangedfrom1to2inresponsetoalarmmy-containerservice-scale-up-alarm.starttime:2015-10-06t17:43:10.414zendtime:2015-10-06t17:44:13.364zstatuscode:successful缩放动作可导致遥测服务事件发布。该通知可能如下所示:service:softwarecontainerservicetime:2015-10-06t17:44:13.364zevent:containerservice:service_desired_count_increaseaccountid:123456789012resourceurn:urn:ws:containerservice:us-east-1:123456789012:service/my-containerservice-serviceactivityid:ac813dee-e1e0-4804-8baf-5f3684e200cddescription:increasingdesiredtaskcountcause:at2015-10-06t17:43:07zthedesiredtaskcountwaschangedfrom1to2inresponsetoalarmmy-containerservice-scale-up-alarm.starttime:2015-10-06t17:43:10.414zendtime:2015-10-06t17:44:13.364zstatuscode:successful在对可缩放维度(例如,服务构造的期望任务计数)进行的每个改变之后,系统可以检查当前警报状态以查看是否需要额外缩放。确切的行为如下:如果缩放策略是针对ok状态的动作(即,维持当前状态),则不采取任何动作。如果缩放策略是针对alarm或insufficient_data状态的动作:获取警报的当前状态。如果警报的当前状态与配置的策略相匹配:如果超时已到期,则将警报状态重置为ok(这将确保在状态再次进入alarm或insufficient_data时,遥测服务206可调用缩放服务202以再次执行策略。如果超时未到期:如果当前时间在冷却到期时间之后,则调用invokealarmaction()以再次执行策略。否则,等待一段时间(例如,一分钟),并从获得警报状态开始(例如,每分钟评估一次警报)重复处理步骤。对于软件容器服务,至少两种类型的事件可导致发送通知:期望任务计数的增加和期望任务计数的减少。客户226可以选择针对一种或两种类型的事件(例如,经由通知服务)发送通知。此外,对于软件容器服务,如果缩放策略被遥测服务206的警报触发,则可以基于当前运行计数和缩放策略中(在最小容量和最大容量范围内)指定的缩放调整连续地改变服务构造的期望任务计数,直到警报被清除,达到最小/最大容量,或者超时已到期。超时可能主要是针对实例集群没有足够容量来运行新任务的情况,但触发策略的警报仍然生效。如果缩放策略由客户226手动触发、因事件的发生而触发或根据时间表触发,而不是通过遥测服务206的警报触发,则可以基于当前运行计数和策略中在最小容量和最大容量范围内的指定的缩放调整,改变服务构造的期望任务计数。缩放服务202可以将策略中指定的缩放调整应用于服务构造的当前运行计数。一些示例:如果当前运行计数为20,并且缩放调整为5%的百分比增量,则新的期望任务计数将为20+20*5%=21。如果当前运行计数为20,并且缩放调整为2个任务的绝对增量,则新的期望任务计数将为20+2=22。如果当前运行计数为20,并且缩放调整为25个任务的确切容量,则新的期望任务计数将为25。运行计数可以是实际处理容量,而不是处理容量本应达到的期望任务计数。根据运行计数计算新的期望任务计数可防止过度缩放。例如,如果缩放服务202已将期望任务计数增加1,则触发缩放策略的警报在启动任务期间可能仍然是有效的。然而,一旦新任务完全启动,就可以停用警报,确保缩放服务202不会进一步横向扩容。在一些实施方案中,横向扩容优先于横向缩容;即,横向扩容将超控进行中的横向缩容,但反之则不成立。在其他实施方案中,反之亦然。进行中的横向缩容可以由大于期望任务计数的运行计数来指示。在这种情况下,缩放服务202可允许横向扩容,从而以最佳地维持应用可用性的方式增加期望的任务计数。相反,进行中的横向扩容可以由小于期望任务计数的运行计数来指示,在这种情况下,缩放服务202可能不允许横向缩容以减少期望的任务计数,以便最佳地保护应用可用性。客户226可以使用一组通用自动缩放api操作(下面的括号中的名称是参数名称):registerscalableresource(resourceurn,context,maxcapacity,mincapacity,roleurn)describescalableresources(resourceurns,context)deregisterscalableresource(resourceurn,context)putscalingpolicy(policyname,resourceurn,context,policytype,simplescalingpolicyconfiguration,stepscalingpolicyconfiguration,targetutilizationscalingpolicyconfiguration)describescalingpolicies(policynamesorurns,resourceurn,context)deletescalingpolicy(policynameorurn,resourceurn,context)executescalingpolicy(policynameorurn,resourceurn,context)describescalingactivities(activityids,resourceurn,context)关于api操作的参数:resourceurn是指待缩放的资源的urn。对于软件容器服务自动缩放,resourceurn可以是软件容器服务的urn。context是指json对象的字符串表示,其允许指定特定于资源的参数。对于软件容器服务自动缩放,客户可以指定集群(如果省略,则假设为默认集群):{“cluster”:“string”}resourceurn和context的组合可以唯一地标识可缩放资源。支持的缩放策略类型可包括“simplescaling”、“stepscaling”和“targetutilizationscaling”。每个策略类型都有其自己的配置参数。对于“simplescaling”,策略配置可具有以下参数:adjustmenttype:“percentchangeincapacity”、“changeincapacity”或“exactcapacity”;对于软件容器服务自动缩放,“容量”是指集群上的任务数。scalingadjustment:一个数字,其含义取决于调整类型;例如,如果缩放调整为10并且调整类型是容量的变化百分比,则将调整加上实际容量的10%。minadjustmentmagnitude:仅在adjustmenttype为“percentchangeincapacity”时才可适用,以防止当前容量的指定百分比导致非常小的数字的事件。cooldown:允许客户226在允许额外的缩放动作之前指定要经过的时间量;一旦完成缩放动作,它就会启动,并且在到期之前不允许进一步的缩放动作。缩放服务202还可利用超时。超时可用于至少两个目的。首先,缩放服务202可以在缩放动作卡住过多(即,大于定义的阈值)时间段的情况下在检查警报状态工作流中利用超时;例如,没有足够容量来执行新任务的服务构造集群可能无法响应于增加任务数量的需求。在这种情况下,警报可能长时间保持存在,并且超时会阻止缩放服务202持续检查其状态。其次,缩放服务202可以使横向扩容/纵向扩容优先于横向缩容/纵向缩容,但缩放服务202不应让卡住的横向扩容/纵向扩容(例如,由于insufficientcapacityexception)阻止横向缩容/纵向缩容发生。因此,超时可使缩放服务202不阻挡横向缩容。需注意,在一些具体实施中,超时是用户可配置的,而在其他具体实施中,超时是用户不可配置的值,缩放服务202使用该值来确定是否放弃卡住的横向扩容。缩放服务202被设计为在资源服务204之上的层,其代表客户226调用这些服务。这确保缩放服务202为客户226提供针对所有资源服务的一致的自动缩放体验。客户226可以首先在遥测服务206的控制台中创建警报,或者客户可在其中选择现有警报,然后将缩放策略应用于警报。在某些条件下,可能会暂时停止特定资源的缩放。例如,在客户226向软件容器服务进行软件部署期间,实际容量可能超过期望的容量,这可能会无意地触发横向缩容活动。在这种情况下,可以暂停针对客户226的软件容器服务的缩放,直到部署完成。为了停止对缩放服务202所管理的资源的缩放,客户226可以简单地将作为可缩放目标的资源维度撤销。如果客户226订阅软件容器服务作为资源服务204之一,然后客户226想要为软件容器服务设置自动缩放,则客户226可以首先利用缩放服务202注册客户的软件容器服务软件容器的资源id。然后,客户226可以为对应于资源id的软件容器服务资源创建一个或多个缩放策略。在缩放策略的过程中,客户226可以定义缩放参数,该缩放参数指示缩放服务202在调用缩放策略时如何将资源进行纵向扩容或缩容。一种缩放策略类型为“步长”策略,其允许客户226相对于触发缩放策略执行的测量结果来定义缩放调整的多个步长。例如,如果处理器利用率达到某些阈值步长,则客户226可以指定将资源的可缩放维度进行纵向扩容。例如,如果处理器利用率在50%和60%之间,则客户226可以指定将资源的可缩放维度纵向扩容10%。如果处理器利用率在60%和70%之间,则客户可以进一步指定将可缩放维度纵向扩容20%,如果处理器利用率高于70%,则将可缩放维度纵向扩容30%,依此类推。以这种方式,客户226可以定义相对于指定的量度具有不同量值的多个步长和/或多个响应。缩放服务202的api可被设计为作为与资源服务204分开的服务操作,使得它不被集成到资源服务204的任何特定服务中。以这种方式,缩放服务202不依赖于资源服务204的任何特定服务。为了建立待由缩放服务202缩放的特定资源服务,缩放服务202仅需要关于待调用的特定资源服务的api的信息,以便指示特定资源服务纵向扩容或缩容。缩放服务202能够通过指定待缩放的特定资源服务的哪个资源的哪个维度以及是纵向扩容还是缩容来保持这种独立性;响应于来自缩放服务202的指示特定资源应如何缩放(例如,终止哪些任务,应启动哪些执行任务的容器实例等)的逻辑由特定资源服务本身确定。在一些实施方案中,图2中未示出的附加组件可存在于缩放服务202内。例如,在某些实施方案中,控制平面服务存在于缩放服务工作流管理器224与诸如认证服务216和数据库服务220的外部服务之间。例如,控制平面服务可以提供用于更新缩放历史的api操作。此外,如果缩放服务后端228从客户226接收对许多数据检索操作的请求,则具有由控制平面而不是缩放服务后端228执行的某些功能可以减轻性能影响。利用单独的控制平面,最小化增加的检索操作量对缩放服务202的影响。除了后端服务之外,控制平面服务也可存在,并且可以跟踪和记录所有持久性服务(例如,数据库服务220、认证服务216等)交互。然而,在其他实施方案中,控制平面功能被集成到缩放服务后端228中。同样,在一些实施方案中,服务适配器存在于缩放服务202内在资源服务204与某些缩放服务组件(诸如缩放服务后端228与缩放服务工作流管理器224)之间。服务适配器可以负责通过适当的api为目标服务路由缩放请求。在另选的实施方案中,服务适配器功能存在于缩放服务工作流管理器224和/或缩放服务后端228内。然而,因为缩放服务202与资源服务204分离,所以缩放服务202依赖于来自特定资源服务的响应,以便确定是否已履行缩放请求。工作流服务222可以是计算装置和其他资源的集合,它们共同被配置为执行任务协调和管理服务,使得能够跨多个计算环境和平台执行计算任务。工作流服务222可以提供用于实现缩放服务202中的异步变化的工作流引擎。工作流服务222可用于更新目标资源,并且还可以用作锁来控制并发缩放请求。工作流服务222可以跟踪工作流执行的进度并执行任务的分派和保持。此外,工作流服务222可以控制用于执行任务的主机或者物理或虚拟计算机器的分配。例如,用户可以定义用于执行的工作流,使得工作流包括使用对工作流服务222的api函数调用的一个或多个任务。此外,用户可以指定工作流的任务顺序、条件流和用于重启或终止工作流的执行的超时时间段。此外,可以定义工作流的执行循环。工作流执行可以是异步的,并且可以在数据库写入的同步执行之前。工作流服务222的中断可能导致延迟缩放,因为缩放请求的异步处理可能受到不利影响。减轻延迟缩放的一种方式可能仅是执行经由缩放服务前端214同步缩放所必需的内容。至少,缩放服务可以尝试设置期望的容量并记录缩放历史。从性能的角度来看,这应该是可接受的,因为它只需要对拥有待缩放的资源的资源服务的api调用以及对数据库服务220的一些额外写入。虽然这可能导致丢失工作流服务222的特征(例如,重试机制、历史跟踪等),但至少系统将执行缩放所需的操作。可缩放目标(即,可缩放资源)可利用资源服务204进行驻留。可缩放目标可以从服务(例如,服务命名空间)、资源(例如,资源id)和可缩放维度的三重组合中唯一地识别。资源服务204表示实际管理客户226想要自动缩放的资源的服务。以这种方式,缩放服务202作为与资源服务204分开的服务存在,使得资源服务的资源由缩放服务202缩放。如所指出的那样,资源服务204可包括诸如软件容器服务、数据库服务、流式服务等服务。缩放服务202可采取由客户226创建的缩放策略,并且当调用缩放策略时(例如,通过来自遥测服务206的警报),缩放服务202可以执行计算以在给定特定策略和资源的当前容量的情况下确定是增加还是减少容量到新值。为了获得资源的当前容量,缩放服务后端228可以对待缩放的资源的资源服务204进行服务调用。作为响应,资源服务204可以向缩放服务202提供当前容量(例如,“五个任务”)。然后,缩放服务工作流管理器224可以对实际拥有待缩放的资源的资源服务204(例如,软件容器服务)进行服务调用,以使得缩放动作被执行。例如,缩放服务工作流管理器224可以向服务构造发出请求,以将任务数量从五个增加到十个。作为响应,软件容器服务可以触发异步工作流来履行该请求,并且缩放服务202可通过周期性地轮询服务构造的当前容量,直到当前容量达到十或发生超时事件(在这种情况下,缩放服务202可以将其解释为缩放事件失败),来确定该请求的完成。换句话说,因为缩放服务202是与托管资源的资源服务204分开的服务,所以缩放服务202将对拥有该资源的资源服务进行服务调用,以便获得资源的状态,并且还有更改资源的状态。认证服务216可以是用于认证用户和其他实体(例如,其他服务)的服务。例如,当计算资源服务提供商的客户与计算资源服务提供商的api交互时,计算资源服务提供商查询认证服务216以确定客户是否被授权履行api请求。在创建缩放策略的过程中,客户226可以将缩放服务202分配给授权履行某些请求的角色,然后缩放服务202可以承担该角色以便做出适当的请求,以使与策略相关联的资源服务对资源进行缩放。例如,对于软件容器服务,可能需要授权执行两个软件容器服务api,即describeservices()和updateservice()。describeservices()可用于获取当前容量,并且updateservice()可用于设置新容量。在该示例中,客户226向缩放服务202提供角色管理服务角色,该角色管理服务角色提供调用这些软件容器服务api的许可。然后,缩放服务202可以在其对软件容器服务进行调用时承担角色管理服务角色。以这种方式,角色管理服务角色向缩放服务202提供访问存在于资源服务204中的资源所必需的许可。客户226可通过界面控制台创建角色管理服务角色。界面控制台可允许客户226在界面控制台中点击适当的按钮或同意复选框,并且底层系统可以创建具有必需许可的角色。令牌服务218可基于客户226指定的一个或多个角色向缩放服务202提供会话凭证。这些会话凭证可以由缩放服务202用于代表客户226与资源服务204交互。令牌服务218可以通过请求为缩放服务202提供该缩放服务可包括的令牌,该请求提供缩放服务202已被授予适当角色以使得资源服务204中的资源的可缩放维度被操纵的证明。该角色可以由自动缩放服务用于代表客户226调用资源服务的api。令牌服务218的中断可能导致缩放服务202不能承担角色管理服务角色,并且缩放服务202因此无法将客户226的资源进行缩放。在一些实施方案中,缩放服务202对缩放服务202在承担角色时可使用的临时凭证(例如,其可以保持有效15分钟等)进行高速缓存。如本公开所述,缩放服务202本身不确定是否满足触发缩放策略的条件。而是诸如遥测服务206的外部实体确定是否已满足条件(例如,通过客户226指定的警报),并且如果满足,则向缩放服务202发送触发适当缩放策略的执行的通知。因此,通过该遥测服务206发送的警报,通过触发来自外部实体的通知的事件的发生,根据客户226的需要,根据发送到缩放服务202的通知,根据时间表或通过某一其他外部通知,可触发缩放策略。如所指出的那样,在一些实施方案中,缩放服务支持应用缩放。在一些示例中,“应用缩放”可以指来自不同服务的分组资源集(例如,包括客户的应用,诸如来自虚拟计算机系统服务的虚拟机和来自数据库服务的数据库)。通过缩放服务接口,客户226可以将不同资源以共同名称分组在一起以进行缩放。例如,如果客户226具有使用数据库服务、虚拟计算系统服务、负载均衡服务和流式服务的资源,则客户226可以使用组缩放策略来基于特定触发(例如,遥测服务206的警报)将组的资源的可缩放维度纵向扩容或纵向缩容。至少部分地基于策略,缩放服务202知道将哪些缩放命令发送到哪个服务。以这种方式,客户可以将客户的服务/资源中的一些或全部分组在一起,并为该组执行缩放服务,而不是单独地缩放资源。例如,由遥测服务警报触发的缩放策略可以指定将该组增加3个数据库服务实例、10个虚拟机和4个负载均衡器。除此之外或另选地,在一些实施方案中,缩放服务202支持“目标跟踪量度”。在一些示例中,“目标跟踪量度”是指客户226想要保持在具体范围内的测量结果。这简化了用户体验,因为客户226仅需指定资源的量度和特定范围,并且缩放服务202确定如何缩放资源以将测量结果保持在特定范围内。例如,如果可缩放维度是处理器利用率,并且客户指定将可缩放维度保持在40%和60%之间,则缩放服务202确定如何将测量结果保持在该范围内。因此,客户不必例如在第一范围内定义以纵向扩容第一量,在第二范围内定义以纵向扩容第二量,等等。除了其他有益效果之外,缩放软件容器服务的资源还提供了响应于应用负载、执行时间或平衡服务性能或成本而缩放任务和/或增大和缩小容器容量的能力。缩放服务202提供基于由遥测服务206聚合的测量结果来自动缩放容器的能力。缩放服务202的缩放策略可允许启动附加容器,并且可允许停止或终止多个当前运行的容器。缩放服务202的功能可以与软件容器服务的控制台集成,该控制台可示出可用的缩放动作,并且可允许客户226为每个服务构造创建、更新和删除缩放动作。客户226可以使用遥测服务206可用的任何量度来设置警报以触发缩放策略。在遥测服务206的一些实施方案中,客户226可以创建由客户的应用发送到遥测服务206的自定义量度(例如,消息排队服务队列深度、负载均衡服务浪涌队列长度等),其也可用于触发警报以调用缩放服务策略。客户226可通过首先创建或更新服务构造并指定服务构造的最小和最大任务数量来配置利用缩放服务202进行的自动任务缩放,然后客户226可以创建缩放策略。如所指出的那样,缩放策略可以由遥测服务206的警报触发,并且作为响应,缩放服务可以执行由缩放策略指定的缩放动作(例如,纵向扩容10个任务)。软件容器服务控制台可以帮助客户226利用遥测服务206创建警报。客户226可以为缩放服务创建角色,该角色授权缩放服务履行其缩放动作,并且可以在缩放策略中指定该角色。然后,软件容器服务控制台可允许客户226通过调用缩放服务202的适当api来利用缩放服务202创建缩放策略和缩放动作。随后,作为遥测服务206激发的配置警报的结果,缩放服务202可以执行指定的缩放动作。如上所述,可通过软件容器服务cli或软件容器服务控制台来执行自动任务缩放。另外,缩放服务202可具有其自己的api,所述api可通过其自己的cli或控制台进行访问。在一些实施方案中,缩放服务为每个服务构造创建缩放动作的历史。除此之外或另选地,在其他实施方案中,软件容器服务包括可存在于服务调度器事件流中的其更新服务api的startedby(或changedby)属性。图3示出本公开的实施方案的示例性界面控制台300。如图3所示,示例性界面控制台300可包括用于配置缩放策略的多个控件。图3所示的控件包括用于指定待缩放的资源(例如,服务构造)的名称的名称字段302、用于指定资源的期望容量(例如,任务计数)的期望容量字段304、用于指定资源的资源定义文件的名称的资源(例如,任务)定义字段306、用于指定资源的基础设施(例如,集群)的身份的基础设施字段308、用于指定缩放服务将承担进行缩放请求的角色的角色字段310、指向角色的策略文档的链接312以及用于指定负载均衡器以与缩放策略相关联的负载均衡字段314。示例性界面控制台300仅出于例示性目的而描绘,并且应当理解,字段的数量和类型可基于具体实施而变化。图4示出本公开的实施方案的另一示例性界面400。如图4所示,示例性界面400可包括用于进一步配置缩放策略的多个控件。图4所示的控件包括用于指定资源维度应保持初始大小还是使用缩放策略来调整服务资源维度的大小的单选按钮402、用于指定可缩放维度应具有的最小容量(例如,任务数量)的最小容量字段404、用于指定可缩放维度应具有的最大容量的最大容量字段406、用于指定应分配给缩放策略的名称的名称字段408、指定策略类型(例如,简单、步长、目标利用率等)的策略类型字段424、用于指定利用遥测服务配置的警报量度的名称的警报字段410、用于在遥测服务处创建新警报的创建新警报按钮416、用于指定缩放动作(例如,纵向扩容、纵向缩容、横向缩容、横向扩容等)的缩放动作字段412以及用于指定待根据缩放动作字段412中指定的动作进行缩放的可缩放维度(例如,“任务”)的量的容量(例如,任务数量)字段414。图5示出本公开的实施方案的示例性控制台500。如图5所示,示例性控制台500可包括关于分配给特定资源服务的缩放策略的详细信息502。具体地讲,图5示出分配给软件容器服务(例如,图8的软件容器服务804)的服务构造(“示例”)的缩放策略。详细信息502包括最小容量(例如,任务数量)、最大容量以及分配给可缩放资源(例如,服务构造)的缩放策略的名称,如可以分别在图3和图4的示例性界面控制台300和400中设置的那样。详细信息502还可包括针对可缩放资源执行的缩放动作的历史;也就是说,资源容量的变化(例如,增加或减少)和/或缩放动作是否成功可以记录并显示为详细信息502中的活动历史。集群可以由客户(例如,图2的客户226)可以开始发起任务的一组实例组成,并且应注意,多个服务构造可以在集群内运行。因此,实例组将被视为集群。如上所述,任务可以是在虚拟机实例上的一组容器内执行的进程。因此,客户可以使用软件容器服务starttask()或runtask()api来启动任务,就像启动虚拟机一样。如果出于某种原因,任务冻结或崩溃(即“死亡”),在一些实施方案中,可能没有适当的监测系统来检测问题并重新启动“死”任务。然而,客户可以在集群内创建称为服务构造的元构造,并利用服务构造来履行该职责;即,指定服务构造应在集群中的每个实例上保持一定数量的特定任务运行。例如,客户可以定义服务构造由同一任务的十个副本支持,将服务构造链接到负载均衡器,并且指定,如果任务终止,则服务调度器将使用新任务替换该任务。在该示例中,服务构造的目标是确保所有十个任务都在运行。然而,缩放服务可以通过允许客户指定以下项为软件容器服务提供额外的灵活性:如果在该特定服务构造上存在过多负载(例如,如果存在负载峰值等),则缩放服务应当使服务构造运行20或50个任务而不是10个。客户可以指定,如果特定任务量度(例如,处理器使用、进入任务的请求的数量等)增加到阈值以上,则客户可以配置软件容器服务以将特定任务量度推送到遥测服务诸如遥测服务206。客户可利用遥测服务指定,如果量度标准测量结果超过阈值,则触发缩放策略,随后缩放策略可对服务构造进行api调用以将集群纵向扩容,将新容器实例启动到此集群中,将服务构造进行纵向扩容,等等。缩放策略可被配置为执行多个缩放动作。软件容器服务的调度器可具有称为“期望计数”的参数,其值指示应在特定集群的服务构造中运行多少任务。调度器可负责确保运行的任务数量与期望的计数相匹配。例如,如果期望的计数为50,并且50个正在运行的任务崩溃,则调度器可以启动另外50个任务以实现期望的计数。同样,如果有200个任务在集群中运行并且期望的计数为100,则调度器可以关闭其中100个任务以实现期望的计数。因此,缩放服务可通过根据缩放策略进行api请求以改变集群的服务构造中的期望计数的任务,从而对客户的任务进行缩放。响应于从缩放服务接收到改变服务构造的期望计数的请求,服务构造将尝试启动新任务,使得正在运行的任务的数量与新的期望计数相匹配。在一些实施方案中,服务构造支持启动新容器实例,例如,如果没有足够的容量来在当前运行的容器实例中启动新任务,以便履行期望的计数,或者响应于来自缩放服务的命令而启动新的容器实例。在软件容器服务的一些具体实施中,服务构造可以附加到负载均衡器。在此类具体实施中,负载均衡器本身生成测量结果,所述测量结果可以提供给遥测服务。因此,遥测警报可被配置为基于这些测量结果而被触发,并且因此可以使缩放服务执行缩放策略(例如,启动更多任务、关闭正在运行的任务等)。图6是示出根据各种实施方案的用于配置缩放服务以对资源的可缩放维度进行缩放的过程600的示例的流程图。过程600中的一些或全部(或所述的任何其他过程,或者这些过程的变型和/或组合)可以在利用可执行指令和/或其他数据配置的一个或多个计算机系统的控制下执行,并且可被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其他数据可存储在非暂时计算机可读存储介质(例如,持久地存储在磁性、光学或闪存介质上的计算机程序)上。例如,过程600中的一些或全部可以通过任何合适的系统(例如,数据中心的服务器)、通过结合图10所述的示例性环境1000的各种组件(例如,web服务器1006或应用服务器1008)、通过计算资源服务提供商的分布式系统中的多个计算装置或者通过任何电子客户端装置(例如,电子客户端装置1002)来执行。过程600包括一系列操作,其中创建遥测服务警报,指定缩放标准,识别目标资源,识别目标资源的可缩放维度,指定对可缩放维度执行的缩放动作,指定缩放动作的缩放方向,指定待缩放的量。在602中,由待缩放的资源的客户所有者创建遥测服务警报。虽然过程600使用遥测服务警报触发缩放策略,如本公开所述,但从外部实体接收到的其他信号通知(例如,根据时间表,根据客户需要,响应于事件的发生等)可用于触发缩放策略。在这种情况下,602的操作可以表示配置外部实体以触发缩放服务以调用缩放策略所必需的操作。在604中,可以指定缩放标准(除了在606-20中示出的缩放标准之外),诸如最小任务数量和最大任务数量,诸如在图4的示例性界面的字段404-06中所指定。在606中,可以指定目标资源的身份。如本公开所述,可以使用可包括服务命名空间和资源id的urn来指定身份。在608中,可以指定可缩放维度。可缩放维度可基于资源类型而变化。可缩放维度的示例包括软件容器服务的服务构造的任务数量、数据库服务的表的读取吞吐量和写入吞吐量、消息排队服务的消息队列的大小等等。在610中,可选择调整类型。调整类型的示例包括简单缩放、步长缩放和目标利用率缩放。一些调整类型可允许指定多个缩放动作。在612中,指定要采取的缩放动作(例如,增加或减少可缩放维度),例如利用图4的下拉菜单412所示。在616中,指定待缩放的量。待缩放的量可以是确切量、相对量、百分比或缩放策略指定的某一其他量。缩放量可以在界面中例如以图4的容量字段414中所示的方式指定。在618中,确定是否将另一缩放动作添加到缩放策略。如上所述,在610中,一些调整类型(例如,步长策略类型)允许客户为缩放策略的给定调用指定要采取的多个缩放动作。如果要将另一缩放动作添加到缩放策略,则执行过程600的系统可以返回到612,使得可以指定另一缩放动作。否则,如果不为缩放策略指定进一步的缩放动作,则系统可以行进至620。然而,如上所述,诸如简单缩放的一些调整类型可以仅允许每个策略一个缩放动作,在这种情况下,可以省略618的操作,并且系统可以行进至620。在620中,例如通过策略/角色管理服务,并且在缩放策略中指定,例如以图3的角色字段310所示的方式,为缩放服务创建角色。创建的角色授予分配给该角色授权的实体使资源服务履行具体api请求。以这种方式,缩放服务可承担向资源服务进行缩放请求的角色。需注意,在602-20中执行的操作中的一个或多个可以各种顺序和组合执行,包括并行执行。以下是api函数调用的非排他性列表。对于请求参数,api函数调用registerscalabletarget()可采用:registerscalabletarget()可以由计算资源服务提供商的客户用于向缩放服务注册由计算资源服务提供商托管的可缩放资源的可缩放维度。注册可缩放目标可以是使缩放服务能够缩放资源的初始步骤。可以由缩放服务自动缩放的任何资源可被称为可缩放目标。可缩放目标可通过以下三个参数的组合唯一地标识:servicenamespace、resourceid和scalabledimension。servicenamespace的参数可用于唯一地标识资源所在的服务(例如,“containerservice”、“databaseservice”、“streamingservice”等)。resourceid的参数可用于唯一标识特定servicenamespace内的资源。因此,给定servicenamespace中的每个资源都必须具有唯一的id,以将资源与同一servicenamespace中的其他资源区分开来。scalabledimension的参数是指可缩放资源的可以缩放的具体维度。使用数据库服务表作为示例,客户可以将表的读取容量吞吐量或写入容量吞吐量指定为scalabledimension。客户可以配置缩放策略以独立地对读取容量吞吐量或写入容量吞吐量进行缩放。因此,读取容量吞吐量和写入容量吞吐量是同一资源的两个不同可缩放维度。mincapacity和maxcapacity的参数可用于允许客户定义可缩放资源的可缩放维度的范围。mincapacity和maxcapacity的参数用于防止可缩放维度的纵向扩容或缩容超过客户预期的情况。也就是说,过多纵向扩容的资源可能变得比客户预期更昂贵,而过多纵向缩容的资源可能损坏取决于资源的客户应用的可用性。客户可以使用roleurn的参数指定策略/角色管理服务角色,该角色授予缩放服务许可,以对缩放资源所需的资源服务进行api调用。api函数调用describescalabletargets()可采用请求参数:describescalabletargets()的响应元素可为:api函数调用deregisterscalabletarget()可采用请求参数:客户可使用describescalabletargets()获得关于可缩放目标的信息,并且客户可使用deregisterscalabletarget()从缩放服务注册可缩放目标。api函数调用putscalingpolicy()可采用请求参数:putscalingpolicy()的响应元素可为:{“policyurn”:“string”}一旦注册可缩放目标,就可使用apiputscalingpolicy()为可缩放目标设置缩放策略。缩放策略使用policyname的参数以及servicenamespace、resourceid和scalabledimension的参数,这些参数标识可缩放目标。缩放策略还具有用于指定策略类型的参数。不同的策略类型具有不同的参数。支持的策略类型可包括simplescalingpolicyconfiguration、stepscalingpolicyconfiguration和/或targetutilizationscalingpolicyconfiguration。可指定simplescalingpolicyconfiguration的策略类型以缩放一定量,而无论相对于警报阈值的当前测量值如何,与stepscalingpolicyconfiguration不同,由此客户可以相对于不同的测量范围定义不同的缩放调整。因此,对于stepscalingpolicyconfiguration,取决于相对于警报阈值的当前测量值,客户可以基于测量值定义不同的纵向扩容或缩容量。客户可以定义adjustmenttype参数的参数,其可包括changeincapacity、percentchangeincapacity或exactcapacity的值。changeincapacity可用于以绝对量改变资源的容量。percentchangeincapacity可允许客户按一定百分比缩放资源,或者允许exactcapacity的客户使用和调整类型将可缩放维度设置为具体值。stepadjustments的参数可以对应于相对于不同范围的测量值的不同缩放调整。例如,客户可以定义量度范围的下限(metricintervallowerbound)和上限(metricintervalupperbound)。在该范围内,客户可以指定根据指定的adjustmenttype将scalingadjustment量应用于可缩放维度。在一些实施方案中,客户可以定义多个此类范围,每个范围具有不同的缩放调整。如果指定了percentchangeincapacity的adjustmenttype,则minadjustmentmagnitude的参数可用于按百分比改变容量。minadjustmentmagnitude的参数在可缩放资源的当前容量低并且因此百分比增加也低的情况下具有提供最小容量变化的效果。例如,如果可缩放资源的可缩放维度只有5个容量单位并且待缩放的百分比指定为10%,那么缩放动作通常只会将资源从5个单位扩展到5.5个单位(即,5的10%为0.5),此变化可能过小,以致不能产生很大差异。因此,为了缓解缩放过慢的问题,其中minadjustmentmagnitude为2,资源将从5个单位扩展到7个单位。因此,minadjustmentmagnitude允许客户指定最小量值,使得如果minadjustmentmagnitude大于客户百分比指定的待缩放量,则缩放服务可以使用minadjustmentmagnitude使可缩放维度更快速地纵向扩容。冷却参数可允许客户定义在完成缩放动作之后的时间量以考虑先前的缩放动作。例如,如果调用缩放策略且资源的可缩放维度扩展一个单位(例如,容量从10扩展到11)。如果在冷却(从缩放策略的前一次调用开始)到期之前第二次执行缩放策略,并且根据策略,容量现在应增加2个单位,则缩放服务认为先前的缩放动作已将容量从10增加1个单位至11。因此,如果缩放策略现在规定将容量增加2个单位,则缩放服务将减去先前的缩放动作(1个单位),这具有将容量增加1个单位(即,从11到12)的效果。在一些实施方案中,冷却的开始时间不会针对在冷却期间执行的缩放动作而重置。在其他实施方案中,即使缩放动作在先前的冷却期间发生,冷却的开始时间也重置为缩放策略的最近缩放动作的开始时间。在其他实施方案中,仅当在冷却期间执行的缩放动作导致容量改变时,冷却开始时间才重置。该特征的目的是,在完成初始缩放动作之后,在触发缩放策略的测量结束之前可能存在延迟。因此,冷却时间段允许量度的合理时间结束。需注意,对于不同的资源,冷却可能需要不同,并且可允许客户指定该时间段。在冷却时间段到期之后,如果再次调用缩放策略以增加2个单位,则缩放服务继续进行并将容量增加2个单位。策略urn格式的格式可为:urn:{partition}:autoscaling:{region}:{accountid}:scalingpolicy:{internalscalabletargetid}:resource/{servicenamespace}/{resourceid}:policyname/{policyname}api函数调用describescalingpolicies()可采用请求参数:describescalingpolicies()的响应元素可为:api函数调用deletescalingpolicy()可采用请求参数:deletescalingpolicy()的响应元素可为:{//无}api函数调用describescalingactivities()可采用请求参数:describescalingactivities()的响应元素可为:图7是示出根据各种实施方案的用于缩放资源的过程700的示例的流程图。过程700中的一些或全部(或所述的任何其他过程,或者这些过程的变型和/或组合)可以在利用可执行指令和/或其他数据配置的一个或多个计算机系统的控制下执行,并且可被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其他数据可存储在非暂时计算机可读存储介质(例如,持久地存储在磁性、光学或闪存介质上的计算机程序)上。例如,过程700中的一些或全部可以通过任何合适的系统(例如,数据中心的服务器)、通过结合图10所述的示例性环境1000的各种组件(例如,web服务器1006或应用服务器1008)、通过计算资源服务提供商的分布式系统中的多个计算装置或者通过任何电子客户端装置(例如,电子客户端装置1002)来执行。过程700包括一系列操作,其示出响应于接收到指令(例如,经由遥测服务警报)而发生的缩放服务的工作流。在702中,执行过程700的系统从遥测服务接收警报,该警报已被配置为由于特定测量结果相对于阈值达到一定值(例如,超过、低于等)而触发。如在本公开中已指出的那样,在一些实施方案中,缩放策略可以由来自外部实体的其他通知触发,而不是由来自遥测服务的遥测服务警报触发。在704中,系统获得与在702中接收的警报(或其他通知)相对应的缩放策略。如上所述,在一些具体实施中,缩放策略存储在数据库服务的数据库表中并从其获得。在706中,基于704的缩放策略中包含的信息,执行过程700的系统确定待缩放的资源的身份、托管资源的服务以及待缩放的资源的维度。在708中,根据缩放策略确定待缩放的缩放维度的量。如在本公开中所指出的那样,一些实施方案实现冷却时间段。如果在冷却时间段期间接收到在702中接收到的警报,则在确定缩放量时可以考虑一个或多个先前的缩放动作。例如,如果开始冷却的先前缩放动作指示将容量纵向缩容10个单位,并且在冷却期间接收到的后续警报指示将容量纵向缩容5个单位,则系统可以确定不需要采取缩放动作,因为容量已纵向缩容10个单位,并且10个单位大于5个单位。在实施方案中,对于这种确定,系统有利于较大缩放容量而不是较小缩放容量。在710中,根据缩放策略确定足以履行缩放动作的角色,并且可以从令牌服务获得表示角色的会话凭证的令牌。系统可在对托管待缩放的资源的资源服务进行的缩放请求中包括令牌,作为系统被授权履行请求的证据。在712中,执行过程700的系统向资源服务发出请求(该请求包括在710中获得的令牌),以根据缩放策略中指定的量和方向(例如,扩容/缩容)对所识别的资源的所识别的可缩放维度进行缩放。在714中,系统可以周期性地轮询资源服务的状态或关于缩放请求是成功还是失败的其他指示。系统可以继续轮询资源服务,直到超过对应于超时值的时间量,于是系统可以假定缩放请求已失败。如果系统接收到缩放请求已成功、失败或超过超时的指示,则系统可以行进至716。在716中,系统确定是否已成功履行缩放请求。如果未成功履行缩放请求,则执行该过程的系统可以返回到702,其中如果警报仍然存在,则执行过程700的系统可以重复702-16的操作。必须注意,系统确定不必重复704-12的某些操作。例如,资源身份和相关策略可能仍在系统存储器中,因此可能不必重复706的某些操作。或者,已获得尚未到期的令牌的系统可能不需要重复710的操作。另一方面,在一些具体实施中,在自上次获得后相关策略已改变的情况下,期望系统返回到704。同样,在一些具体实施中,在旧令牌已到期或者换句话讲无效的情况下,期望获得在710中获得的角色的新令牌。如果警报不再存在,则系统可以确定不必重复缩放动作(或者假定尽管在714中接收到超时,但实际上已成功履行缩放请求),且因此系统此时可以从702进行至结束过程700。在某些情况下,未能履行缩放请求可导致错误消息,例如“指定的角色对所请求的动作没有足够的许可”,在这种情况下,执行过程700的系统可以记录错误并终止过程700的执行,因为这样的错误表明进一步尝试重复缩放请求是徒劳的。另一方面,如果成功履行缩放请求,则系统可以结束过程700。需注意,在702-18中执行的操作中的一个或多个可以各种顺序和组合执行,包括并行执行。图8示出可实践实施方案的环境800的一方面。具体地讲,图8示出缩放服务802,其被配置为响应于接收到来自遥测服务806的提示(例如,经由警报810)而从软件容器服务804请求缩放动作808以根据缩放策略830改变在集群832的服务构造中运行的任务812a-12b的数量,例如在由软件容器服务804的某些测量结果834触发超过预定义阈值的提示的情况下。缩放服务802可以类似于结合图1和图2描述的缩放服务102和202。软件容器服务804可以是诸如2014年11月11日提交的名称为“systemformanagingandschedulingcontainers”的美国专利申请no.14/538,663中所述的软件容器服务,该专利申请以引用方式并入。图8所示的软件容器服务804仅是可与缩放服务802结合使用的许多类型的资源服务中的一种。软件容器服务804可以向遥测服务806提供与对软件容器服务804的调用的数量相关的量度、与已纵向扩容多少服务相关的量度、与期望容量与实际容量之间的差异相关的量度。而且,在一些实施方案中,还可以可与软件容器服务804一起使用的量度的形式发布遥测服务事件通知。遥测服务806可以类似于结合图1和图2描述的遥测服务106和206。缩放动作808可以是增加或减少资源的可缩放维度(例如,在集群832的服务构造中运行的任务812a的数量)的请求,诸如api请求。自动缩放动作可以更新软件容器服务804的“期望任务计数”。自动缩放动作可以依赖于在软件容器服务804中运行的任务812a的“期望状态”,以便确定哪些任务应包括在横向扩容或横向缩容计算中以确定下一个期望的任务计数。以这种方式,当发生横向缩容时,终止任务可包括在计算中,并且启动过程中的任务可以类似地包括在横向扩容计算中。如图8所示,缩放动作808指示软件容器服务804将在集群832中运行的任务812a数量进行纵向缩容,并且如任务812b可见,在履行缩放动作808时,任务的数量已从6减少到2。无论在缩放配置中指定的任何最小值如何,都可以在软件容器服务804中更新期望的任务计数。当下一个警报激发时:如果警报810是资源的横向扩容,则缩放服务802可以将服务横向扩容最小值,然后基于与警报810相关联的缩放策略830继续根据需要横向扩容。如果警报810是资源的横向缩容,则缩放服务802可以不调整可缩放资源的期望容量。在客户826将期望容量设置为高于服务的缩放配置中定义的最大容量时,可以应用反转。警报810可以是类似于结合图1描述的警报110的遥测服务警报。任务812a-12b可以是在集群832的容器实例中运行的本公开所述类型的软件容器。软件容器服务804中的任务可以是软件容器服务集群上的容器引擎(例如,docker)软件容器的最小部署单位。软件容器可基于任务定义来创建,该任务定义可用作应用的“蓝图”(例如,可以指定要使用哪些容器引擎图像,与每个容器一起使用多少处理器和存储器等)。客户826可以是计算资源服务提供商的客户,该客户订阅由计算资源服务提供商向客户提供的用于运行软件容器的软件容器服务804。缩放策略830可以是一组参数,其指定资源以及当由警报910触发时如何影响资源的缩放。集群832可以是一组容器实例,其被配置为运行客户826的任务812。软件容器服务804可以跟踪软件容器服务集群的期望任务计数(也称为“期望计数”)。在一些示例中,术语“集群”可以指已向集群832注册(即,与其相关联)的一个或多个容器实例的集合。因此,集群832可包括一个或多个容器实例。在一些示例中,“容器实例”是指被配置为运行软件容器的虚拟机。集群832可以与计算资源服务提供商的客户826的账户相关联,该计算资源服务提供商可以向客户826提供用于运行软件容器的软件容器服务804。软件容器服务集群832可以支持多个服务构造,并且基础自动缩放组的缩放可以取决于在集群中运行的所有服务构造。遥测服务806可以利用软件容器服务集群832利用率量度来允许客户826基于对如何利用资源的测量结果来容易地缩放基础自动缩放组。测量结果834可以是由软件容器服务804发出的一个或多个测量结果,其反映客户826的资源状态。对应于测量结果834的量度可包括可以在集群中调度的给定服务的平均任务数量和最小任务数量。客户826可以使用缩放服务802来自动缩放对集群832的服务构造的期望任务计数。客户826可以在缩放策略中提供以下内容:服务构造的名称、与服务构造相关联的集群832的名称、期望任务计数的最小和最大边界(所述边界确保容量将在指定范围内缩放并且防止任何无意的过度缩放)、用于缩放服务802的代表客户826访问软件容器服务804的策略/角色管理服务角色和/或用于服务构造的一个或多个缩放策略,每个缩放策略指定缩放动作的参数。缩放动作的参数可包括:调整类型(例如,容量的绝对变化、容量的百分比变化、确切容量;需注意,对于软件容器服务804任务缩放,容量是集群832上的任务812的数量);缩放调整(其含义取决于调整类型的数字);最小调整量值(当调整类型为容量变化百分比时可适用;用于指定百分比导致非常小的调整的情况);以及冷却(这可允许客户826给予缩放动作808一定时间以便生效,再进一步进行缩放动作;一旦已经履行缩放动作808,它就开始)。客户826可以在缩放服务802中利用相关联的集群832、最小和最大期望任务计数以及具有调用describeservices()(用于获得期望的任务计数)和updateservice()(用于修改期望的任务计数)api的许可的策略/角色管理服务角色注册服务构造。例如,客户826可以为服务构造创建横向扩容策略和横向缩容策略。横向扩容策略的示例是将任务计数增加10%,最少增加2个任务,并且冷却为2分钟。横向缩容策略的示例是将任务计数减少1个任务,并且冷却为1分钟。通过缩放服务前端214,如图2所示,客户826可以将缩放策略830附加到遥测服务806的一个或多个警报,以使缩放服务802执行缩放动作808。缩放服务802可以解决软件容器服务804任务缩放的第一顺序要求:定义用于缩放服务构造的期望任务计数的缩放策略,通过遥测服务806的警报810触发缩放策略,以及检索服务构造的缩放历史。缩放历史可以表示为缩放活动的年月顺序。缩放活动的示例为:service:containerserviceresourceidentifier:service/my-cluster/my-servicedescription:increasingdesiredtaskcount1cause:at2015-10-06t17:43:07zmonitoralarmmy-service-scale-out-alarminstatealarmtriggeredpolicychangingthedesiredcapacityfrom1to2.starttime:2015-10-06t17:43:10.414zendtime:2015-10-06t17:44:13.364zstatuscode:successful对于软件容器服务804,客户826可以定义缩放策略以将任务812或服务构造的其他可缩放维度进行纵向扩容或缩容,并且客户826可以根据与服务构造相关的量度来设置遥测服务806的警报810。警报810的触发将使缩放服务802执行对应于警报的缩放策略830。以这种方式,可执行服务构造的任务812数量的自动缩放,而无需客户826手动干预以明确地设置任务812的数量。如所指出的那样,缩放服务802对于客户826与警报810相关联以便调用缩放策略的量度是不可知的。也就是说,客户826可以将任何量度与任何警报相关联,甚至是来自其他资源服务的量度,并且使警报810触发任何缩放策略。因此,客户826使用的量度不由缩放服务802规定。然而,通常,客户826可能会使用与软件容器服务804相关联的量度,但客户826不需要这样做。客户826可用于设置警报的软件容器发出的软件容器服务量度可包括处理器利用率量度和存储器利用率量度。这类量度可以在每个服务构造、每个容器实例、每个集群或每个任务的基础上测量/聚合。在软件容器服务804结合应用负载均衡器运行的具体实施中,应用负载均衡器还向遥测服务806发出量度,客户826可以使用该量度来配置警报810以触发用于对软件容器服务容器进行缩放的策略。例如,为了对软件容器服务资源进行缩放,客户826可以配置警报810以在应用负载均衡器的请求率高于某个阈值时触发。如上所述,服务构造的可缩放维度可以是在服务构造集群中运行的任务812数量。在一些示例中,“任务”可以指在一个或多个软件容器内执行的过程,并且“任务定义”可定义应如何启动软件容器的一组任务。任务定义可以各种格式编写,例如javascript对象表示法(json)或可扩展标记语言(xml)。任务定义可指定:任务集的软件图像的位置、从主机分配给指定软件容器的存储器的量和/或处理能力的量、磁盘、网络位置以及软件容器应彼此共享的其他资源、一组软件容器应如何彼此关联和/或用于调度任务集的信息。任务定义可存储在任务定义文件中。在一些示例中,“任务定义文件”可以是包含被指派为以组开始的软件容器集合的任务定义的文件。如上所述,一个或多个软件容器可以在容器实例内运行。客户826在集群中具有的此类实例越多,客户资源将能够处理的应用负载就越多。通过允许客户826指定警报810由于满足关于指定量度的某些条件而触发,缩放服务802和遥测服务806可以与软件容器服务804(作为图2的资源服务204之一)交互。通过遥测服务806接收和聚合的测量结果834可包括处理器使用、存储器使用、从消息排队服务队列中拉出的消息数量、消息排队服务队列的队列大小等等。客户826指定当触发警报810时,遥测服务806将向缩放服务802发送通知。然后客户826定义参数(例如,从当前容量纵向扩容x%,对于服务构造,所述当前容量可以是任务812的当前数量)。客户826将缩放策略830与警报810相关联,作为警报810动作的一部分。以这种方式,从遥测服务806接收的通知然后将使得执行缩放服务202。在给定任务812的当前数量和待缩放的x%的情况下,缩放服务802可以执行计算以确定服务构造应增加到的新任务812数量。一旦确定该数量,缩放服务802就可以将api调用发送到软件容器服务804,以请求将任务812的数量改变为所确定的量。服务构造将知道当前任务812a的数量,并且能够确定将需要启动多少附加任务以便达到期望的数量。需注意,缩放服务802可以不具体地选择应当如何缩放资源,只需选择应当将资源的维度进行纵向扩容或缩容。例如,为了将软件容器服务804的任务812进行纵向缩容,缩放服务802指示软件容器服务804仅将集群的服务构造中的任务812数量进行纵向缩容。然而,缩放服务802不选择终止哪个任务812;软件容器服务804本身可以实现终止策略以及区域均衡行为以确定终止哪个任务812。软件容器服务804的自动缩放可以依赖于虚拟计算系统服务来终止虚拟机实例。例如,如果缩放服务802指示服务构造将实例进行纵向缩容或者足够的任务812使得多个实例多余,则实际确定终止哪些实例以及终止实例的过程将由虚拟计算系统服务本身而不是缩放服务802执行。例如,服务构造可以在虚拟计算系统服务终止具体实例之前从这些实例中撤销任务812。该过程对于软件容器服务的客户826可以是透明的。在实施方案中,缩放服务802可以处理并发缩放动作。下面示出了软件容器服务的并发缩放动作的示例:如果缩放服务802正在进行横向扩容,则缩放服务802可以仅在期望任务计数的当前值小于新任务计数的情况下改变期望的任务计数。换句话说,与较小的缩放相比,缩放服务802可更偏好较大的缩放。例如,两个横向扩容策略p1和p2彼此在几秒内在同一服务构造上触发的情况。在该示例中,p1被指定为将期望任务计数增加10%,而p2被指定为将期望任务计数增加20%。假设当前期望计数和运行计数均为10并且假设首先执行p1,则缩放服务802将期望任务计数设置为11。因此,根据时间,p2可以看到运行计数为10并且期望为11。执行p2时,新的期望任务计数将按照12(10+10*20%)计算,且因此,期望的任务计数将设置为12,因为12大于11。相反,如果首先执行p2,它会将期望的任务计数设置为12,但p1在执行时不会将期望的任务计数设置为11,因为11小于12。类似地,如果缩放服务802正在进行横向缩容,则缩放服务802可以仅在期望任务计数的当前值大于新任务计数的情况下改变期望的任务计数。换句话说,与较小的缩放相比,系统将再次偏好较大的缩放。图9是示出根据各种实施方案的用于缩放容器服务的过程900的示例的流程图。过程900中的一些或全部(或所述的任何其他过程,或者这些过程的变型和/或组合)可以在利用可执行指令和/或其他数据配置的一个或多个计算机系统的控制下执行,并且可被实现为在一个或多个处理器上共同执行的可执行指令。可执行指令和/或其他数据可存储在非暂时计算机可读存储介质(例如,持久地存储在磁性、光学或闪存介质上的计算机程序)上。例如,过程900中的一些或全部可以通过任何合适的系统(例如,数据中心的服务器)、通过结合图10所述的示例性环境1000的各种组件(例如,web服务器1006或应用服务器1008)、通过计算资源服务提供商的分布式系统中的多个计算装置或者通过任何电子客户端装置(例如,电子客户端装置1002)来执行。过程900包括一系列操作,其中接收触发用于软件容器服务的对应缩放策略执行的警报,获得在集群的服务构造中运行的容器的当前任务计数,基于缩放策略计算新任务计数,并且作出请求以对服务构造中的任务进行缩放,以对应于新任务计数。在901中,系统接收来自客户的请求以注册可缩放目标(例如,客户拥有的集群的服务构造)。在902中,执行该过程的系统接收警报,例如来自遥测服务聚合对应于软件容器服务的量度或一些其他量度。如上所述,虽然在图9的过程中示出了警报,但也可支持其他外部通知(例如,根据客户的需要,响应于事件发生的通知,根据时间表发送的通知等)。在904中,系统获得与在902中接收的警报相对应的缩放策略。在906中,执行过程900的系统通过对软件容器服务的请求从令牌服务获得表示来自该系统可包括的策略/角色管理服务/授权服务的角色的令牌,所述软件容器服务授权系统履行请求。在908中,根据缩放策略,执行过程900的系统可以获得与缩放策略相关联的资源的身份(即,在901中注册的可缩放目标);在这种情况下,分配给配置警报和缩放策略的客户的软件容器服务的集群的服务构造。具有服务构造的身份,系统可以对软件容器服务进行请求(该请求包括在906中获得的令牌),以获得在服务构造中运行的当前任务计数。在910中,基于缩放策略和当前任务计数,系统可以计算新任务计数,从而确定缩放动作。例如,如果新任务计数大于当前任务计数,则缩放动作可以将运行任务纵向扩容一定量,该量对应于任务计数之间的差。同样,如果新任务计数小于当前任务计数,则缩放动作可以将运行任务纵向缩容一定量,该量对应于该任务计数之间的差。在914中,执行该过程的系统发送对软件容器服务的请求(该请求包括在906中获得的令牌),以设置服务构造的期望任务以匹配计算的新任务计数。然后,在916中,系统开始使用在906中获得的令牌轮询软件容器服务,以获得包括当前任务计数的状态。在918中,执行过程900的系统将当前任务计数与计算的新任务计数进行比较,并且如果当前任务计数和新任务计数不同,则系统可以返回到916以重复轮询,直到超时发生。否则,如果当前任务计数与新任务计数匹配,则系统可以确定已在过程900中成功履行缩放动作。需注意,在902-18中执行的操作中的一个或多个可以各种顺序和组合执行,包括并行执行。需注意,在描述所公开的实施方案的上下文中,除非另外指明,否则使用关于可执行指令(也称为代码、应用、代理等)的表达式执行“指令”通常不会独立执行的操作(例如,数据传输、计算等)表示机器正在执行指令,从而使机器执行指定的操作。图10示出用于实现根据各种实施方案的各方面的示例性环境1000的各方面。如将理解的那样,虽然基于web的环境用于解释的目的,但可以适当地使用不同的环境来实现各种实施方案。该环境包括电子客户端装置1002,该电子客户端装置可包括可操作以通过适当的网络1004发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当装置。这种客户端装置的示例包括个人计算机、移动电话、手持式消息传递装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络1004可包括任何适当的网络,包括内联网、互联网、蜂窝网络、局域网、卫星网络或任何其他网络和/或它们的组合。此类系统所用的组件可以至少部分地取决于所选网络和/或环境的类型。用于通过这种网络进行通信的许多协议和组件是众所周知的,因此将不详细讨论。经由网络1004的通信可通过有线或无线连接及它们的组合来实现。在该示例中,网络1004包括互联网和/或其他可公共寻址的通信网络,因为环境包括用于接收请求并响应于此而提供内容的web服务器1006,但是对于其他网络,可以使用服务于类似目的的另选装置,这对于本领域的普通技术人员而言将是明显的。例示性环境包括应用服务器1008和数据存储区1010。应当理解,可存在若干应用服务器、层或其他元件、过程或组件,它们可被链接或以其他方式配置,它们可以交互以执行诸如从适当的数据存储区获得数据的任务。所使用的服务器可以各种方式实现,例如硬件装置或虚拟计算机系统。在某些上下文中,服务器可以指在计算机系统上执行的编程模块。如使用,除非另有说明或从上下文中明显看出,否则术语“数据存储区”是指能够在任何标准、分布式、虚拟或集群环境中存储、访问和检索数据的任一装置或装置组合,可包括任何组合和数量的数据服务器、数据库、数据存储装置和数据存储介质。应用服务器1008可包括任何适当的硬件、软件和固件,以用于根据需要与数据存储区1010集成以执行电子客户端装置1002的一个或多个应用的各方面,从而处理应用的数据访问和业务逻辑中的一些或全部。应用服务器1008可以与数据存储区1010协作提供访问控制服务,并且能够生成包括文本、图形、音频、视频和/或可用于提供给用户的其他内容的内容,所述内容可通过web服务器1006以超文本标记语言(“html”)、可扩展标记语言(xml)、javascript、层叠样式表(“css”)、javascript对象表示法(json)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端装置的内容可以由电子客户端装置1002处理,以一种或多种形式提供内容,包括用户可听、可视和/或通过其他感觉可感知的形式。在该示例中,所有请求和响应的处理以及电子客户端装置1002与应用服务器1008之间的内容递送可以由web服务器1006使用php:超文本预处理程序(“php”)、python、ruby、perl、java、html、xml、json和/或另一适当的服务器侧结构化语言来处理。此外,除非以其他方式从上下文中明显看出,否则被描述为由单个装置执行的操作可以由多个装置共同执行,所述多个装置可以形成分布式和/或虚拟系统。数据存储区1010可包括若干单独的数据表、数据库、数据文档、动态数据存储方案和/或用于存储与本公开的特定方面相关的数据的其他数据存储机制和介质。例如,数据存储区1010可包括用于存储生产数据1012和用户信息1016的机制,其可用于为生产侧提供内容。数据存储区1010还被示出为包括用于存储日志数据1014的机制,其可用于报告、分析或其他目的。应当理解,可能存在可能需要存储在数据存储区1010中的许多其他方面,例如页面图像信息和访问权限信息,其可以适当地以上面列出的任何机制或以另外的机制存储在数据存储区1010中。数据存储区1010可通过与其相关联的逻辑运行,以从应用服务器1008接收指令,并响应于此而获得、更新或以其他方式处理数据。应用服务器1008可以响应于所接收的指令而提供静态数据、动态数据或静态数据和动态数据的组合。动态数据诸如web日志(博客)、购物应用、新闻服务和其他应用中使用的数据可以由所描述的服务器侧结构化语言生成,或者可以由在应用服务器1008上或在应用服务器的控制下运行的内容管理系统(“cms”)提供。在一个示例中,用户通过由用户操作的装置可以提交针对特定类型的项目的搜索请求。在这种情况下,数据存储区1010可以访问用户信息1016以验证用户的身份,并且可以访问目录详细信息以获得关于该类型的项目的信息。然后可以将该信息返回给用户,例如以用户能够经由电子客户端装置1002上的浏览器查看的网页上列出的结果的形式。可在浏览器的专用页面或窗口中查看到感兴趣的特定项目的信息。然而,应当注意,本公开的实施方案不必限于网页的上下文,而是可以更一般地适用于一般地处理请求,其中请求不一定是对内容的请求。每个服务器通常将包括操作系统,该操作系统提供用于该服务器的一般管理和操作的可执行程序指令,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,作为被执行的结果),允许服务器执行其预期的功能。在一个实施方案中,环境是利用若干计算机系统和组件的分布式和/或虚拟计算环境,所术计算机系统和组件经由通信链路、使用一个或多个计算机网络或直接连接互连。然而,本领域普通技术人员应理解,这种系统可在具有比图10所示的组件更少或更多组件的系统中同样顺利地操作。因此,图10中的示例性环境1000的描绘将被视为在实质上是例示性的并且不限制本公开的范围。本公开的实施方案可根据以下条款进行描述:1.一种系统,其包括:缩放服务,该缩放服务包括一个或多个处理器和第一存储器,该第一存储器包括第一指令,作为由所述一个或多个处理器执行的结果,第一指令使缩放服务:将资源服务的资源的可缩放维度注册为可缩放目标;存储策略,该策略包括参数集合和缩放动作,以执行可缩放目标;响应于接收到与策略相关联的通知:从存储装置中获得策略;向资源服务提交第一请求,该第一请求是根据参数集合对可缩放目标执行缩放动作的请求;向资源服务提交第二请求,该第二请求是对数据的请求,从该数据可以确定是否已根据策略对可缩放目标进行缩放;以及至少部分地基于对第二请求的响应来确定是否已履行第一请求;以及资源服务,该资源服务包括一个或多个处理器和第二存储器,该第二存储器包括第二指令,作为由所述一个或多个处理器执行的结果,第二指令使资源服务:根据参数集合发起缩放动作的执行;以及向缩放服务提交包括数据的响应。2.根据条款1所述的系统,其中:该系统还包括遥测服务,该遥测服务包括一个或多个处理器和第三存储器,该第三存储器包括第三指令,作为由一个或多个处理器执行的结果,第三指令使第三服务:接收测量结果;以及作为满足与测量结果相关的条件的结果,将通知传输到缩放服务。3.根据条款1或2所述的系统,其中资源服务包括以下中的至少一者:软件容器服务,数据库服务,或者队列消息传递服务。4.根据条款1至3中任一项所述的系统,其中:策略在参数集合中指定安全角色,该安全角色授权履行第一请求;第一指令包括使缩放服务获得令牌的指令,该令牌表示与安全角色相关联的会话凭证;以及作为包括令牌的第一请求的结果,执行使资源服务发起缩放动作的执行的第二指令。5.根据条款4所述的系统,其中:使缩放服务获得令牌的第一指令包括使缩放服务从第四服务获得令牌的指令;以及该系统还包括:策略管理服务,该策略管理服务包括一个或多个处理器和第三存储器,该第三存储器包括第三指令,作为由所述一个或多个处理器执行的结果,第三指令使策略管理服务创建安全角色,该安全角色根据来自与资源相关联的客户的第三请求授权履行缩放动作;以及令牌服务,该令牌服务包括一个或多个处理器和第四存储器,该第四存储器包括第四指令,作为由所述一个或多个第四处理器执行的结果,第四指令使第四服务:生成令牌以表示与策略管理服务创建的安全角色相关联的会话凭证;以及将令牌提供给缩放服务。6.一种计算机实现的方法,其包括:利用缩放服务识别可缩放目标,该可缩放目标至少指示:可缩放资源服务;可缩放资源服务的资源;以及资源的可缩放维度;获得与由一个或多个计算机系统接收到的通知相关联的缩放策略,该缩放策略包括指定如何对可缩放目标进行缩放的参数集合;从缩放服务向可缩放资源服务提交缩放请求,以根据参数集合对可缩放目标的可缩放维度进行缩放;从可缩放资源服务接收可缩放目标的状态;以及至少部分地基于该状态,确定是否已履行缩放请求。7.根据条款6所述的计算机实现的方法,其中参数集合包括以下中的一者或多者:服务的标识符,资源的标识符,资源的可缩放维度,或者对可缩放维度进行调整的量。8.根据条款6或7所述的计算机实现的方法,其中通知:从计算资源服务提供商的遥测服务接收;以及指示测量结果相对于为遥测服务警报指定的警报阈值已达到一定值。9.根据条款6至8中任一项所述的计算机实现的方法,其中作为事件发生的结果接收通知。10.根据条款6至9中任一项所述的计算机实现的方法,其中根据时间表接收通知。11.根据条款6至10中任一项所述的计算机实现的方法,其中参数集合指定将资源的维度保持在特定范围内。12.根据条款6至11中任一项所述的计算机实现的方法,其中参数集合指定适用于可缩放目标的缩放调整的多个步骤。13.根据条款6至12中任一项所述的计算机实现的方法,其中维度包括以下中的一者或多者:任务量,读取吞吐量,写入吞吐量,或者处理器利用率。14.一种非暂时计算机可读存储介质,所述非暂时计算机可读存储介质上存储有可执行指令,作为由计算资源服务提供商的计算机系统的一个或多个处理器执行的结果,可执行指令使计算机系统至少:在第一服务处将计算资源服务提供商的第二服务的资源的维度注册为目标;存储缩放策略,该缩放策略包括参数集合,该参数集合指示将应用于目标的缩放动作;响应于接收到与缩放策略相关联的通知,根据参数集合处理缩放策略;作为处理缩放策略的结果,向第二服务提交请求以将缩放动作应用于目标;以及提供指示是否已履行请求的输出。15.根据条款14所述的非暂时计算机可读存储介质,其中:对第二服务的请求是第一请求;可执行指令还包括使计算机系统执行以下操作的可执行指令:向第二服务提交第二请求,该第二请求针对目标的状态;以及至少部分地基于第二服务对第二请求的响应,确定是否已履行第一请求;以及提供的输出至少部分地基于所述确定。16.根据条款14或15所述的非暂时计算机可读存储介质,其中对目标进行缩放的请求是对资源的维度进行纵向扩容、纵向缩容、横向缩容或横向扩容的请求。17.根据条款14至16中任一项所述的非暂时计算机可读存储介质,其中第二服务是以下中的一者或多者:虚拟计算机系统服务,块级数据存储服务,按需数据存储服务,或者数据流式服务。18.根据条款14至17中任一项所述的非暂时计算机可读存储介质,其中所述资源是包括以下的一组资源:具有第一维度的第一资源;以及具有第二维度的第二资源,该第二维度具有与第一维度不同的类型。19.根据条款14至18中任一项所述的非暂时计算机可读存储介质,其中参数集合指示待缩放的资源的维度,该维度包括以下中的一者或多者:虚拟机实例的量,块大小,卷大小,消息队列大小,或者流的分片的量。20.根据条款14至19中任一项所述的非暂时计算机可读存储介质,其中参数集合至少指示:目标;对目标进行的调整的类型;以及待进行的调整的量。21.根据条款20所述的非暂时计算机可读存储介质,其中参数集合还包括以下中的一者或多者:调整量的上限,调整量的下限,冷却时间段,聚合类型,或者最小调整量值。22.一种系统,其包括:缩放服务,该缩放服务包括一个或多个处理器和存储器,该存储器包括第一指令,作为由所述一个或多个处理器执行的结果,第一指令使缩放服务:将软件容器服务的资源中运行的软件容器的量的维度注册为可缩放目标,该维度是运行的软件容器集合的大小;响应于接收到与缩放策略相关联的通知,获得缩放策略;向软件容器服务提交第一请求,该第一请求是对资源中的软件容器的第一计数的请求;至少部分地基于缩放策略和第一计数,计算资源的软件容器的期望计数;向软件容器服务提交第二请求,该第二请求是改变可缩放目标以满足期望计数的请求;以及确定是否已履行第二请求。23.根据条款22所述的系统,该系统还包括软件容器服务,该软件容器服务包括一个或多个处理器和第二存储器,该第二存储器包括第二指令,作为由一个或多个处理器执行的结果,第二指令使软件容器服务:响应于接收到第一请求,第一次提供运行的软件容器的计数;以及响应于接收到第二请求,发起用于将运行的软件容器集合的大小设置为期望计数的过程。24.根据条款23所述的系统,其中:第一指令还包括使缩放服务向软件容器服务提交第三请求的指令,该第三请求是对资源中的软件容器的第二计数的请求;第二指令还包括使软件容器服务响应于接收到第三请求,第二次提供运行的软件容器的计数的指令;以及所述确定至少部分地基于第二计数与期望计数之间的比较结果。25.根据条款23或24所述的系统,其中:该系统还包括遥测服务,该遥测服务包括一个或多个处理器和第三存储器,该第三存储器包括第三指令,作为由一个或多个处理器执行的结果,第三指令使遥测服务:从与运行的软件容器相关联的客户接收用于触发警报的标准集合,所述标准涉及反映运行的软件容器的使用的量度。从软件容器服务接收该量度;以及作为量度满足标准集合的结果,向缩放服务提供通知;以及第二指令包括进一步使软件容器服务向遥测服务提供量度的指令。26.根据条款22至25中任一项所述的系统,其中:第一指令还包括使缩放服务获得与安全角色相关联的令牌的指令,其允许软件容器服务履行改变资源中运行的软件容器集合的大小的请求;以及第二请求包括令牌。27.根据条款26所述的系统,其中:安全角色在认证服务处创建;令牌通过令牌服务生成以表示与安全角色相关联的会话凭证;以及在第二请求中包括令牌指示已授予缩放服务履行第二请求的许可。28.根据条款22至27中任一项所述的系统,其中软件容器服务的资源是被指定为由提供软件容器服务的计算资源服务提供商的客户作为应用服务运行的一组容器。29.一种计算机实现的方法,其包括:获得与一个或多个计算机系统接收到的通知相关联的缩放策略;向软件容器服务提交第一请求,以获得资源的第一当前容量;至少部分地基于缩放策略和第一当前容量,计算对资源的容量进行调整的量;向软件容器服务提交第二请求,以按所述量调整资源的容量;向软件容器服务提交第三请求,以获得资源的第二当前容量;以及至少部分地基于第二当前容量与量之间的比较结果来确定是否已履行第二请求。30.根据条款29所述的计算机实现的方法,其中:资源是运行的软件容器集合;以及容量是集合中运行的软件容器的量。31.根据条款29或30所述的计算机实现的方法,其中:资源是作为提供软件容器服务的计算资源服务提供商的客户的应用服务运行的软件容器集合;以及该方法还包括将资源的可缩放维度注册为策略的可缩放目标。32.根据条款29至31中任一项所述的计算机实现的方法,其中:该方法还包括获得可用于使得对软件容器服务的请求得到履行的令牌,该令牌表示与用于授权履行对软件容器服务的请求的角色相关联的会话凭证;以及第一请求、第二请求和第三请求包括令牌。33.根据条款29至32中任一项所述的计算机实现的方法,其中缩放策略包括指示以下内容的参数集合:待缩放的软件容器服务的资源;以及将作为接收到通知的结果而对资源进行缩放的量值。34.根据条款29至33中任一项所述的计算机实现的方法,其还包括从提供软件容器服务的计算资源服务提供商的客户接收缩放策略,该缩放策略包括将缩放策略与通知来源相关联的参数。35.根据条款29至34中任一项所述的计算机实现的方法,其中容量是在一组容器实例中运行的软件容器的量。36.根据条款29至35中任一项所述的计算机实现的方法,其中通知:从遥测服务接收;以及指示量度满足触发警报的标准。37.根据条款36所述的计算机实现的方法,其中:软件容器服务与应用负载均衡器结合操作,该应用负载均衡器向遥测服务发出负载均衡器量度;以及至少部分地基于负载均衡器量度相对于阈值达到一定值来触发警报。38.一种非暂时计算机可读存储介质,所述非暂时计算机可读存储介质上存储有可执行指令,作为由计算机系统的一个或多个处理器执行的结果,可执行指令使计算机系统至少:注册资源服务的软件容器集合和用于对软件容器集合进行缩放的策略;接收与策略相关联的通知;获得允许请求改变软件容器集合的容量的令牌;向策略指定的资源服务提交第一请求,该第一请求用于指示策略所指定的软件容器集合的第一容量;至少部分地基于策略和第一容量,计算对第一容量的调整;向资源服务提交第二请求,该第二请求是将软件容器集合的第一容量调整与所述调整相对应的量的请求;以及提供指示是否已履行第二请求的输出。39.根据条款38所述的非暂时计算机可读存储介质,其中作为已满足警报的条件的结果而接收通知。40.根据条款38或39所述的非暂时计算机可读存储介质,其中从不由托管计算机系统的计算资源服务提供商管理的实体接收通知。41.根据条款38至40中任一项所述的非暂时计算机可读存储介质,其中在以下情况下接收通知:作为反映资源使用相对于阈值达到一定值的量度的结果,作为由托管计算机系统的计算资源服务提供商的客户指定的事件的发生的结果,根据预定的时间表,或者响应于执行策略的客户命令。42.根据条款38至41中任一项所述的非暂时计算机可读存储介质,其中经由资源服务的应用编程接口调用来提交第一请求和第二请求。43.根据条款38至42中任一项所述的非暂时计算机可读存储介质,其中记录过去的缩放动作的元数据,该元数据包括以下中的一者或多者:缩放动作的活动标识符,软件容器集合的统一资源名称,缩放动作的描述,缩放动作的起始时间,或者请求缩放动作的结果。44.根据条款38至43中任一项所述的非暂时计算机可读存储介质,其中:调整是第一调整;以及可执行指令包括进一步使计算机系统至少执行以下操作的可执行指令:通过提交第二请求,在预定的冷却时间段内接收与策略相关联的第二通知;至少部分地基于策略计算第二调整,并且至少部分地基于第一调整来调整第二调整的量;以及向资源服务提交第三请求,该第三请求是将软件容器集合的容量调整与第二调整相对应的量的请求。各种实施方案还可以在各种各样的操作环境中实现,在一些情况下,所述操作环境可包括可用于运行多个应用中任一应用的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括多个计算机中的任一个,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并能够支持多个联网和消息传递协议的蜂窝装置、无线装置和手持装置。这样的系统还可包括运行各种市售操作系统和用于诸如开发和数据库管理等目的的其他已知应用中的任一者的多个工作站。这些装置还可包括其他电子装置,如虚拟终端、瘦型客户端、游戏系统和能够通过网络通信的其他装置。这些装置还可包括虚拟装置,例如虚拟机、管理程序和能够通过网络通信的其他虚拟装置。本公开的各种实施方案利用本领域的技术人员熟悉的网络支持使用各种市售协议中的任一种进行的通信,诸如传输控制协议/互联网协议(“tcp/ip”)、用户数据报协议(“udp”)、在开放系统互连(“osi”)模型的各个层中运行的协议、文件传输协议(“ftp”)、通用即插即用(“upnp”)、网络文件系统(“nfs”)、通用互联网文件系统(“cifs”)和appletalk。网络1004可以是例如局域网、广域网、虚拟专用网络、互联网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及它们的任何组合。在一些实施方案中,面向连接的协议可用于在网络端点之间进行通信。面向连接的协议(有时称为基于连接的协议)能够以排序流的形式传输数据。面向连接的协议可以是可靠的或不可靠的。例如,tcp协议是一种可靠的面向连接的协议。异步传输模式(“atm”)和帧中继是不可靠的面向连接的协议。面向连接的协议与面向分组的协议(如udp)形成对比,后者在不保证排序的情况下传输分组。在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层应用中的任一种,包括超文本传输协议(“http”)服务器、ftp服务器、公共网关接口(“cgi”)服务器、数据服务器、java服务器、apache服务器和业务应用服务器。服务器还可以能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行一个或多个web应用,所述一个或多个web应用可实现为以任何编程语言诸如c、c#或c++或者任何脚本语言(如ruby、php、perl、python或tcl)以及它们的组合编写的一个或多个脚本或程序。服务器还可包括数据库服务器,包括可从和商购获得的那些,以及开源服务器,诸如mysql、postgres、sqlite、mongodatabase以及任何其他能够存储、检索和访问结构化或非结构化数据的服务器。数据库服务器可包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或者这些和/或其他数据库服务器的组合。如上所述,环境可包括各种数据存储区以及其他存储器和存储介质。这些可以驻留在各种位置,诸如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)或者远离网络1004上的任何或全部计算机的存储介质上。在一组特定实施方案中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“san”)中。类似地,用于执行归属于计算机、服务器或其他网络装置的功能的任何必要文件可以适当地本地和/或远程存储。在系统包括计算机化装置的情况下,每个这样的装置可包括可经由总线电耦合的硬件元件,所述元件包括例如中央处理单元(“cpu”或“处理器”)、输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和输出装置(例如,显示装置、打印机或扬声器)。这样的系统还可包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置和固态存储装置(例如,随机存取存储器(“ram”)或只读存储器(“rom”)),以及可移除介质装置、存储卡、闪存卡等。此类装置还可包括如上所述的计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)和工作存储器。计算机可读存储介质读取器可以连接或配置为接收计算机可读存储介质,表示远程、本地、固定和/或可移除的存储装置,以及用于临时和/或更永久地包含、存储、传输和检索计算机可读信息的存储介质。系统和各种装置通常还将包括位于工作存储器装置内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或web浏览器。此外,还可以使用定制硬件和/或可以在硬件、软件(包括便携式软件,诸如小应用)或两者中实现特定元件。此外,可以采用与诸如网络输入/输出装置的其他计算装置的连接。用于包含代码或代码部分的存储介质和计算机可读介质可包括本领域已知或使用的任何适当介质,包括存储介质和通信介质,诸如以任何方法或技术实现的用于存储和/或传输信息诸如计算机可读指令、数据结构、程序模块或其他数据的易失性和非易失性、可移除和不可移除的介质,包括ram、rom、电可擦除可编程只读存储器(“eeprom”)、闪存存储器或其他存储器技术、光盘只读存储器(“cd-rom”)、数字通用光盘(dvd)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储装置或者可用于存储所需信息并且可以由系统装置访问的任何其他介质。基于所提供的公开和教导内容,本领域的普通技术人员将理解实现各种实施方案的其他方式和/或方法。因此,说明书和附图被认为是例示性的而非限制性的。然而,明显的是,在不脱离权利要求中阐述的本发明的更广泛的精神和范围的情况下,可以对其进行各种修改和改变。其他变型在本公开的精神内。因此,尽管所述技术容易受到各种修改和另选构造的影响,但是其某些例示的实施方案在附图中示出并且已经在上面详细描述。然而,应当理解,并不旨在将本发明限制于所公开的一种或多种具体形式,相反,其目的在于覆盖落入由所附权利要求限定的本发明的精神和范围内的所有修改、另选构造和等同形式。除非另有说明或与上下文明显矛盾,否则在描述实施方案的上下文中(尤其是在下面的权利要求书的上下文中)使用术语“一(a)”、“一(an)”和“该”以及类似的指示词将被解释为覆盖单数和复数两者。除非另外说明,否则术语“包括(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”应解释为开放式术语(即,意味着“包括但不限于”)。未经修改且指代物理连接的术语“连接”应解释为即使有干预的东西,也被部分或全部地包含在内、附接至或接合在一起。除非另有说明,否则对数值范围的叙述仅仅旨在用作单独提及落入该范围内的每个单独的值的简单方法,并且每个单独的值被并入说明书中,如同在本文中单独引用。除非另有说明或与上下文相矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应解释为包括一个或多个成员的非空集合。此外,除非另有说明或与上下文相矛盾,否则对应集合的术语“子集”不一定表示对应集合的适当子集,但是子集和对应集合可以相等。除非另有特别说明或另外与上下文明显矛盾,否则连接语言(例如,“a、b、和c中的至少一者”或“a、b和c中的至少一者”形式的短语)在上下文中被理解为通常用于呈现项目、术语等可以是a或b或c,或者a和b和c的集合的任何非空子集。例如,在具有三个成员的集合的例示性示例中,连接短语“a、b、和c中的至少一者”和“a、b和c中的至少一者”是指以下任一集合:{a}、{b}、{c}、{a,b}、{a,c}、{b,c}、{a,b,c}。因此,这样的连接语言通常并不旨在暗示某些实施方案要求a中的至少一个、b中的至少一个和c中的至少一个每者都存在。除非另有说明或以其他方式与上下文明显矛盾,否则所述过程的操作可以任何合适的顺序执行。所述过程(或其变型和/或组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)、通过硬件或它们的组合实现。代码可以例如以包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读储存介质可以是非暂时的。在一些实施方案中,代码被存储在一个或多个非暂时计算机可读存储介质的集合上,所述非暂时计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,作为被执行的结果),使计算机系统执行本文所述的操作。非暂时计算机可读存储介质集合可包括多个非暂时计算机可读存储介质,并且多个非暂时计算机可读存储介质中的一个或多个单独的非暂时存储介质可能缺少所有代码,而多个非暂时计算机可读存储介质共同存储所有代码。此外,在一些示例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为例示性示例,非暂时计算机可读存储介质可以存储指令。主cpu可以执行一些指令,并且图形处理器单元可以执行其他指令。通常,计算机系统的不同组件可具有单独的处理器,并且不同的处理器可以执行指令的不同子集。因此,在一些示例中,计算机系统被配置为实现单独或共同执行本文所述过程的操作的一个或多个服务。例如,此类计算机系统可配置有能够执行操作的适用硬件和/或软件。此外,在一些示例中,实现本公开的各种实施方案的计算机系统可以是单个装置,并且在其他示例中,可以是包括多个装置的分布式计算机系统,所述多个装置以不同方式操作,使得分布式计算机系统执行所描述的操作并且使得单个装置可能无法执行所有操作。除非另有声明,否则提供的任何示例或示例性语言(例如,“诸如”)的使用仅仅旨在更好地说明本发明的实施方案,并且不会限制本发明的范围。本说明书中的语言不应解释为将任何非要求的要素指示为实践本发明所必需。本文描述了本公开的实施方案,包括发明人已知的用于执行本发明的最佳模式。在阅读前面的描述之后,那些实施方案的变型对于本领域的普通技术人员而言可以变得明显。发明人期望熟练的技术人员适当地采用此类变型,并且发明人旨在以不同于本文具体描述的方式来实践本公开的实施方案。因此,如适用法律所允许的那样,本公开的范围包括所附权利要求中叙述的主题的所有修改和等同形式。此外,除非另有说明或以其他方式与上下文明显矛盾,否则本公开的所有可能变型中的上述要素的任何组合涵盖在本公开的范围内。引用的所有参考文献(包括公布、专利申请和专利)均据此以引用方式并入本文,其程度如同每篇参考文献被单独且具体地指示为以引用方式并入并且以全文阐述。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1