[go: up one dir, main page]

CN108112268A - 管理与自动扩展组相关的负载平衡器 - Google Patents

管理与自动扩展组相关的负载平衡器 Download PDF

Info

Publication number
CN108112268A
CN108112268A CN201680024791.9A CN201680024791A CN108112268A CN 108112268 A CN108112268 A CN 108112268A CN 201680024791 A CN201680024791 A CN 201680024791A CN 108112268 A CN108112268 A CN 108112268A
Authority
CN
China
Prior art keywords
load balancer
computer
request
load
group
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
CN201680024791.9A
Other languages
English (en)
Other versions
CN108112268B (zh
Inventor
马塞尔·罗伯特·古兹曼
诺尔曼·约尔丹
肖恩·琼斯
艾哈曼德·奥斯曼·哈立德
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 US14/701,513 external-priority patent/US10341426B2/en
Priority claimed from US14/701,522 external-priority patent/US10038640B2/en
Priority claimed from US14/701,518 external-priority patent/US10412020B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN108112268A publication Critical patent/CN108112268A/zh
Application granted granted Critical
Publication of CN108112268B publication Critical patent/CN108112268B/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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/5083Techniques for rebalancing the load in a distributed system

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)

Abstract

计算资源服务提供商可以提供组织成逻辑组(诸如自动扩展组)的计算实例。分配给自动扩展组的计算实例可以与被配置来将流量引导到所述计算实例的一个或多个负载平衡器相关。此外,所述计算资源服务提供商的客户可以从所述自动扩展组添加或移除负载平衡器。

Description

管理与自动扩展组相关的负载平衡器
相关申请的交叉参考
本申请出于所有目的通过引用并入2016年4月30日提交的题为“BACKGROUNDPROCESSES IN UPDATE LOAD BALANCERS OF AN AUTO SCALING GROUP”(代理人案号0097749-517US0)的共同未决的美国专利申请号14,701,518、2016年4月30日提交的题为“MANAGING STATE FOR UPDATES TO LOAD BALANCERS OF AN AUTO SCALING GROUP”(代理人案号0097749-518US0)的共同未决的美国专利申请号14/701,522和2016年4月30日提交的题为“MANAGING LOAD BALANCERS ASSOCIATED WITH AUTO-SCALING GROUPS(代理人案号0097749-491US0)”的共同未决的美国专利申请号14/701,513的全部公开内容。
背景技术
托管计算服务和存储的使用近年来已迅速扩大。用于网络计算和存储的资源通常由计算资源提供商提供,所述计算资源提供商利用计算机、服务器和存储驱动器的大型网络来使得客户端(包括内容提供商、客户等)能够托管并执行各种应用程序和网络服务。网络计算的使用允许内容提供商和客户等有效地且自适应地满足其计算需求。然而,随着虚拟资源使用的不断增长,客户正遇到其中虚拟资源在某些情况(例如,未预料到的流量尖峰或需要立即响应以满足增大的负载)下无法适应其需求的情况。响应于此,网络资源服务提供商正引入自动扩展。在许多情况下,客户传送请求以创建实例,例如,在硬件装置上执行的虚拟机实例。在上述情况下,实例可以自动地扩展,从而使得服务提供商能够满适应客户需求。一旦客户已设置自动扩展活动,客户就可能难以容易地修改实例和/或负载平衡器。
附图说明
将参考附图描述根据本公开的各种实施方案,其中:
图1示出根据实施方案的其中客户可以向自动扩展服务提供请求以与包括在自动扩展组中的实例和与自动扩展组相关的负载平衡器交互的环境;
图2示出根据实施方案的用于将实例实例化并将实例供应给用于自动扩展组的一组实现资源并使实例与负载平衡器相关的环境;
图3示出根据实施方案的其中用于自动扩展组的实例可以与由负载平衡服务操作的负载平衡器相关的环境;
图4示出根据实施方案的其中实例服务和自动扩展服务可以管理用于自动扩展组的负载平衡器的环境;
图5是根据实施方案的用于使用后台进程将自动扩展组的实例分配给负载平衡器的说明性过程;
图6是根据实施方案的用于至少部分地基于应用程序接口调用将负载平衡器信息返回给计算资源服务提供商的客户的说明性过程;
图7是根据实施方案的用于至少部分地基于应用程序接口调用将负载平衡器添加到自动扩展组的说明性过程;
图8是根据实施方案的用于至少部分地基于应用程序接口调用来将负载平衡器移除到自动扩展组的说明性过程;
图9是根据实施方案的用于使用后台进程更新自动扩展组的实例和负载平衡器的说明性消息传递图;并且
图10示出其中可以实现各种实施方案的环境。
具体实施方式
在下面的描述中,将描述各种实施方案。为了说明的目的,阐述了具体配置和细节以提供对实施方案的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有具体细节的情况下实施实施方案。此外,可以省略或简化公知的特征,以免模糊所描述的实施方案。
本文所描述并建议的技术涉及虚拟计算实例或简单地分配给自动扩展组的实例和与自动扩展组相关的负载平衡器的客户管理。托管由客户管理的计算机系统的计算资源服务提供商的客户可以通过一个或多个应用程序编程接口调用以编程方式创建自动扩展组,以在某些情况(例如,未预料到的流量尖峰或需要立即响应以满足增大的负载)下满足资源需求。自动扩展组可以管理用于由客户创建的一个或多个计算机实例(例如,虚拟计算机系统实例)的资源。可以将负载平衡器提供给计算资源服务提供商的客户以有助于客户的自动扩展组的一个或多个实例的请求处理。例如,客户可以使用自动扩展组的计算资源来操作网站,并且负载平衡器可以被配置来在自动扩展组的计算资源(诸如一个或多个计算机实例)之中引导流量。此外,网站可以通过网络接收来自多个其他客户的请求。随后,计算资源服务提供商可以配置负载平衡器,以将请求引导到自动扩展组或执行网站的自动扩展组的特定实例,以使得通过处理请求而生成的负载分布在执行网站的计算机实例之中。
自动扩展服务可以自动地且动态地管理自动扩展组以管理计算资源或可能经受需求波动的任何资源。例如,自动扩展服务可以使用各种因素来确定是否自动地且动态地响应于事件(诸如对超过阈值的组的负载)调整和/或分配资源。此外,客户还可能需要响应于事件调整和/或分配资源和/或管理分配给自动扩展组的实例。客户可以通过将请求传送到计算资源服务提供商来与自动扩展服务交互。该请求可以包括命令、应用程序编程接口(API)调用、远程过程调用(RPC)或被配置来致使计算资源服务提供商的服务执行各种功能的其他指令。
计算资源服务提供商可以向客户公开API调用,以便使得客户能够在自动扩展组运行时修改与自动扩展组相关的负载平衡器。这些API调用可以消除客户需求已终止和/或删除自动扩展组或负载平衡器,以便修改负载平衡器与自动扩展组之间的关联性。例如,客户可以向自动扩展服务提交API请求,以将负载平衡器添加到自动扩展组。在各种实施方案中,将负载平衡器添加到自动扩展组致使包括在自动扩展组中的计算实例分配给负载平衡器,以使得负载平衡器将网络流量分布到分配给负载平衡器的计算实例。自动扩展服务可以包括被配置来维持关于附加到自动扩展组的负载平衡器的状态信息和/或其他信息的数据库。数据库可以被配置来追踪与自动扩展组相关的负载平衡器的状态信息,以避免维持负载平衡器与实例的一对一映射。
状态信息可以包括多种不同的状态,诸如添加状态、已添加状态、服务中状态和移除状态。添加状态可以指示后台进程正将组中的所有实例分配给负载平衡器,在完成时后台进程更新待添加的状态。已添加状态可以指示自动扩展组中的所有实例已分配给先前在添加状态下的负载平衡器。服务中状态可以指示负载平衡器正将流量引导到自动扩展组的至少一个健康实例,如下面更详细描述的。移除状态可以指示自动扩展组的实例当前正被解除分配给特定的负载平衡器。对于添加到自动扩展组的任何新实例,由于客户交互或自动扩展组的配置,后台进程可以确定分配给自动扩展组的负载平衡器是否在添加状态、已添加状态或服务中状态下。如果负载平衡器在这些状态中的一个状态下,则后台进程可以向负载平衡器注册或分配新实例。
图1示出环境100的说明性示例,其中负载平衡器可以分配给特定的自动扩展组102,以便处理引导在由客户106操作的自动扩展组的计算机实例处的请求118。计算资源服务提供商104可以向客户106提供计算资源。客户106可以利用由计算资源服务提供商104操作的下面更详细描述的物理主机142来执行多种功能。例如,客户106可以使用计算资源服务提供商104的计算资源来操作网站或日志服务器。此外,客户106可以创建由计算资源服务提供商104管理的自动扩展组。下面更详细描述的自动扩展组202可以包括由客户106操作的一组计算机实例。自动扩展组可以被配置来至少部分地基于由客户106和/或计算资源服务提供商104提供的设定来向/从自动扩展组添加或移除计算机实例和其他计算资源。
在一些实施方案中,客户106可以包括操作通常计算资源服务提供商的其他客户或其他实体可访问的计算资源的组织。例如,客户可以操作用户通过网络(诸如因特网)可访问的网站。术语“组织”(除非上下文中另外清除地指出)旨在在广义上被理解为暗示以某种方式组织的一组主体。客户106可以使用计算资源服务提供商104的计算资源,以便操作被配置来将请求118分布到客户106的计算资源(诸如计算机实例)的负载平衡器120和自动扩展组102。如图1所示,客户106的计算资源可以包括由计算资源服务提供商104操作的物理主机142和/或由该物理主机142实现。然而,在各种实施方案中,由客户106利用的计算资源包括根据本公开的客户或其他实体的计算资源。例如,客户可以使用计算资源服务提供商104的计算资源来操作负载平衡器120,以将流量引导到由客户106操作的一台或多台服务器。
请求118可以由负载平衡器120或由计算资源服务提供商104的一个或多个其他系统(诸如为了简单起见图1中未示出的请求监听器)接收,并且被引导到负载平衡器120。负载平衡器120可以是计算机系统或虚拟计算机系统,该计算机系统或虚拟计算机系统被配置来将请求118分布到由物理主机142支持的一个或多个计算机实例以便优化资源利用和/或避免特定计算机实例的超载。例如,负载平衡器120可以包括连接到服务器机架或以其他方式包括在数据中心中的物理硬件。在另一个示例中,负载平衡器120可以包括由计算资源服务提供商104操作的特定物理主机142支持的一个或多个虚拟机,如下面更详细描述的。
在一些实施方案中,考虑到当前分配给负载平衡器120的计算资源的数量,请求118的数量可能大于负载平衡器120可以处理的请求的数量。因此,客户106可以确定将附加的负载平衡器122添加到自动扩展组。客户106可以传送请求,诸如API调用,该请求被配置来致使计算资源服务提供商104或其部件(例如,下面更详细描述的自动扩展服务)来使附加的负载平衡器122与自动扩展组102相关。如本文所述,使负载平衡器120与自动扩展组102相关包括将包括在自动扩展组202中的计算机实例分配给负载平衡器120,以使得负载平衡器将请求和/或其他网络流量引导到自动扩展组的计算机实例,在下面更详细地描述。
客户106可以能够更新(例如,添加或移除)与自动扩展组102相关的一组负载平衡器,而不管计算资源服务提供商104或其部件当前是否正在更新与自动扩展组102相关的一组负载平衡器。例如,特定客户可能意外地传送从自动扩展组102添加和/或移除负载平衡器120的请求,并且随后在稍后的某个时间点处,客户可以在计算资源服务提供商104正处理意外添加和/或移除请求时传送反转意外请求的第二请求。由于第二请求,计算资源服务提供商104可以终止处理意外请求并开始处理第二请求。此外,计算资源服务提供商104可以生成对应于在将负载平衡器添加和移除到自动扩展组中执行的操作的审计信息。审计信息可以使得客户106能够确定先前添加或移除操作的结果以及现有负载平衡器的进度或状态。
如上所述,计算资源服务提供商104或其部件(诸如下面更详细描述的自动扩展服务)可以执行后台进程,该后台进程被配置来将自动扩展组102的计算机实例分配和解除分配给负载平衡器120和附加的负载平衡器122。此外,后台进程可以被配置成使得客户106修改自动扩展组102的容量(例如,致使计算机实例在自动扩展组102内启动或终止),而不管后台进程的当前状态如何。例如,后台进程可以将自动扩展组102的一组计算机实例分配给负载平衡器120;客户随后可以致使一组新的计算机实例被添加到自动扩展组102,并且因此,后台进程可以将该组新的计算机实例添加到待分配给负载平衡器120的该组计算机实例。
后台进程可以查询由自动扩展服务维持的下面结合图2更详细描述的负载平衡器数据库,以便确定与自动扩展组102相关的任何负载平衡器是否在过渡状态(例如,添加状态、已添加状态和/或移除状态)下。如果在过渡状态下存在至少一个负载平衡器,则后台进程可以至少部分地基于至少一个负载平衡器的状态来确定一组计算机实例和对应的操作。例如,如果负载平衡器在添加状态下,则后台进程可以确定一批计算机实例以分配给负载平衡器。后台进程可以通过将API调用传送到指示负载平衡器120和待分配给负载平衡器120的计算机实例的负载平衡器服务来将计算机实例分配给负载平衡器。在各种实施方案中,后台进程可以将请求直接传送到负载平衡器120,从而请求负载平衡器120管理引导到计算机实例的流量。
在一些实施方案中,添加附加的负载平衡器122可以包括将一个或多个负载平衡器实例化并将实例化的负载平衡器分配给自动扩展组102。此外,分配附加的负载平衡器122可以包括更新一个或多个其他计算机系统。例如,可以用对应于附加的负载平衡器122的信息来更新上述请求监听器,以便路由请求。在另一个示例中,可以更新域名系统(DNS)条目或其他命名系统服务条目以包括与附加资源122相关的因特网协议(IP)地址。
客户106可以通过将API调用提交到计算资源服务提供商104的接口(为了简单起见图1中未示出的)来修改自动扩展组102和/或分配给该组的负载平衡器120的容量。例如,客户106可以通过管理控制台或其他应用程序来将附加的计算机实例分配给自动扩展组102,该管理控制台或其他应用程序被配置来使得客户能够管理由计算资源服务提供商104提供的计算资源。管理控制台可以作为网页公开给客户106,其中网页的可执行代码被配置来生成对计算资源服务提供商104的API调用。客户106可以通过管理控制台提供对应于自动扩展组102、自动扩展组102的计算机实例和分配给自动扩展组102的负载平衡器的信息。例如,客户可以为计算资源服务提供商104提供API调用,并且API调用可以指示待添加到自动扩展组的第一数量的负载平衡器和待从自动扩展组102移除的第二数量的负载平衡器。信息可以包括与自动扩展组102相关的计算机实例的IP地址、自动扩展组的标识符、分配给计算机实例和/或自动扩展组102的计算资源、计算机实例和/或自动扩展组102的计算能力和网络容量、路由信息、负载平衡器的标识符以及被配置来使得自动扩展服务能够从自动扩展组添加和/或移除负载平衡器的任何其他信息。
图2示出根据实施方案的用于将实例222实例化并将实例222供应给用于自动扩展组202的一组实现资源并使实例与负载平衡器相关的环境。如图2所示,计算资源服务提供者204操作多个物理主机242。物理主机242可以是被配置来执行用于执行数据计算、操作或存储任务的指令的任何装置或设备,诸如计算机或服务器。物理主机242可以包括上述任何计算机系统或虚拟计算机实例。由计算资源服务提供商204操作的虚拟化层244使得物理主机242能够用于提供一个或多个实例222可以在其上进行操作的计算资源。下面更详细描述地,虚拟化层244可以是用于为实例222提供虚拟计算平台的任何装置、软件或固件。虚拟计算平台可以包括各种虚拟计算机部件,诸如一个或多个虚拟CPU、虚拟存储器、虚拟磁盘等。
自动扩展组202可以包含一个或多个实例222,并且可以至少部分地基于多种属性来供应新实例224。多种属性可以包括如由客户指示的期望容量、对自动扩展组202的整体负载、对自动扩展组202的特定实例的负载、来自客户的请求、时间表以及适合于确定是否从自动扩展组202添加或删除实例的任何其他属性。实例222可以是虚拟计算机系统,该虚拟计算机系统被配置来通过至少执行各种操作来向自动扩展组202和计算资源服务提供商204的客户提供计算资源。在一些实施方案中,自动扩展组202和实例作为为客户执行各种操作的单个计算实体进行操作。
下面结合图3更详细描述的负载平衡服务236可以向自动扩展组202提供负载平衡器和其他流量分布服务。例如,负载平衡器的DNS条目可以包括用于自动扩展组202的各种负载实例222的IP地址,并且引导到自动扩展组202的请求可以分布到分配给负载平衡器的实例222。在需要向自动扩展组202分配计算资源的扩展事件期间,计算机实例图像可以用于将新实例224实例化。当向自动扩展组202解除分配计算资源时,可以终止或暂停实例222中的一个或多个的操作。下面结合图3更详细描述的自动扩展服务可以确定实例222是否要从自动扩展组202添加或移除。
如上所述,自动扩展服务230还可以包括后台进程232,并且后台进程可以将实例222分配或者解除分配给一个或多个负载平衡器。后台进程232可以包括逻辑或其他计算机可执行代码,该逻辑或其他计算机可执行代码在由物理主机242的一个或多个处理器执行时致使物理主机242执行对应于从自动扩展组202添加和移除负载平衡器的各种操作。在各种实施方案中,自动扩展服务230或负载平衡服务236在从一个或多个负载平衡器解除分配实例222时将等待直到到待解除分配的实例222的所有网络连接被终止或完成。一旦不存在到待解除分配的实例222的更多连接,负载平衡服务就可以从一组示例移除实例222,一个或多个负载平衡器将流量引导到该组示例。该进程可以被称为连接排除,例如,等待直到到特定实例的所有当前连接已经终止同时防止建立到实例的新连接。
此外,当向自动扩展组202分配或解除分配计算资源时,自动扩展服务230的后台进程232可以将对应于计算资源的分配或解除分配的信息传送到负载平衡服务236,以使得负载平衡服务能够正确地将流量引导到自动扩展组202。例如,如果新实例224添加到组,则后台进程可以传送包括新实例224的标识符的API调用,该API调用被配置来致使负载平衡服务将新实例224分配给与自动扩展组202相关的一个或多个负载平衡器。此外,后台进程可以用对应于实例222、新实例224和分配给自动扩展组的一个或多个负载平衡器的信息来更新负载平衡器数据库210。
负载平衡器数据库210可以包含一组行和列,其中每行对应于与自动扩展组202相关的负载平衡器,并且每列包含对应于自动扩展组202、实例222或适用于从自动扩展组202添加或移除负载平衡器的其他信息的信息。负载平衡器数据库210可以包括适用于追踪特定负载平衡器的状态的信息。此外,包括在负载平衡器数据库210中的信息可以由后台进程232适应来确定待执行的操作,以便从自动扩展组202添加或移除负载平衡器。例如,后台进程232可以查询数据库以确定与新实例224关联的一个或多个负载平衡器。此外,如本文所述,负载平衡器数据库210可以包括被配置来存储对应于与自动扩展组202相关的一个或多个负载平衡器的信息(包括与一个或多个负载平衡器相关的状态信息)的任何数据库或任何其他数据存储库。
负载平衡器数据库210可以是本文所述的任何数据存储库和/或存储装置。此外,关于自动扩展组202的操作、实例222、后台进程232和新实例224的数据可以由自动扩展服务230收集和/或监测并存储在负载平衡器数据库210或其他数据存储库,以便生成审计日志信息和度量信息。关于自动扩展组202的操作、实例222、后台进程232和新实例224的数据包括关于由自动扩展组202、实例222、后台进程232和新实例224执行的动作的任何信息,诸如预成形的度量数据(例如,虚拟主机的内存使用、文件系统、关于虚拟CPU的信息、或关于自动扩展组220或其部件的任何其他信息)或动作。在一些实施方案中,数据可以被转换成适合与审计日志或审计服务一起使用的格式。在各种实施方案中,使用计算资源服务提供商204的按需存储服务来持续地存储数据,以使得客户可以使用数据来确定后台进程232的操作和与自动扩展组202相关的负载平衡器的状态。
在一些实施方案中,当特定客户提交被配置来更新(例如,添加或移除)与自动扩展组202相关的一个或多个负载平衡器的API调用时,自动扩展服务230可以执行若干操作以便处理该API调用。首先,自动扩展服务230可以更新负载平衡器数据库中的与API调用中指示的用于自动扩展组202的一个或多个负载平衡器相关的记录。这可以确保在自动扩展组202中启动的任何其他实例(诸如新实例224)将被分配给一个或多个负载平衡器。对负载平衡器数据库210的更新可以与接收请求同步发生。随后,自动扩展服务203可以使异步过程(例如,后台进程232)排队,该异步过程可以确定一组现有实例222并将与该组现有实例222相关的负载平衡器更新到API调用中的由客户指示的一个或多个负载平衡器。后台进程232可以是非确定性的,以使得相同的输入(例如,添加或移除同一组负载平衡器)可能不会致使后台进程232以相同的方式操作。例如,操作的顺序可能不同,待分配给负载平衡器的实例222的批量大小可能不同,并且本文所述的后台进程的任何其他操作可能不同。
后台进程232还可以在特定客户的扩展历史中创建记录(其可以使用DescribeScalingActivities API来检索)。记录和/或API可以用于追踪对与自动扩展组202相关的且用于如用户需要的审计目的的一个或多个负载平衡器的更新的过程。记录和任何对应的审计信息可以包括由自动扩展服务230执行的操作的人可读表示,例如“响应于客户110581的请求来更新用于自动扩展组A的负载平衡器以:添加(loadbalancer1、loadbalancer2、loadbalancer3)”。一旦自动扩展服务已完成处理请求,记录也就可以包括开始时间、结束时间和完成状态。如上所述,后台进程232的操作将不会锁定或以其他方式防止对自动扩展组202的更新,而后台进程232也不会防止同时处理对与自动扩展组202相关的一个或多个负载平衡器的其他更新。例如,如果特定客户在正处理另一个更新时更新与自动扩展组202相关的一个或多个负载平衡器,则自动扩展服务230可以终止先前更新、重新启动进程,并且在客户的自动扩展历史中生成另一条记录。
诸如图1所示的那个环境可能对于提供商(诸如计算资源提供者)是有用的,其中计算资源系统响应来自客户的请求来管理分配给自动扩展组的负载平衡器。如上所讨论的,计算资源系统提供机构,以允许客户从与自动扩展组相关的一组实例中添加或删除负载平衡器。在这种情况下的环境可以包括附加部件和/或其他布置,诸如图3的联网环境300中所示的那些。在该示例中,网络环境300包括通过网络306与客户端装置306和服务器计算机342进行数据通信的计算资源服务提供商304。在一个实施方案中,服务器计算机342可以是用于实现实例320的一个或多个计算机硬件装置。例如,服务器计算机342可以包括用于实现多种类型的计算资源的硬件,诸如上面结合图2所描述的存储装置、虚拟化存储装置、网络装置等。此外,所实现的计算资源可以由分布式计算资源提供商的客户以编程和远程方式管理。
服务器计算机342包括多个计算机系统装置,每个计算机系统装置能够执行由分布式计算资源服务提供商304创建的一个或多个实例320。在一个实施方案中,服务器计算机342中的每一个包括处理器、数据存储库、输入/输出总线和/或在本领域中已知的用于执行实例320的任何其他部件。另外,实例320可以是虚拟机实例。如在本领域中已知的,虚拟机实例是类似于物理机器执行程序的机器(即,计算机)上的软件实现的实例。例如,服务器计算机342中的每一个可以被配置来执行能够实现实例320的实例管理器318。例如,实例管理器318可以是管理程序、虚拟化层或被配置来实现在单个服务器计算机342上执行多个实例320的另一类型的程序。如上所讨论的,实例320中的每一个可以被配置来执行应用程序的全部或一部分。另外,网络306可以类似于如上所述的网络。联网环境300可以跨越一个或多个数据中心,其中每个数据中心在地理上可以彼此不同。另外,图3所示的联网环境300可以是由计算资源服务提供商采用的若干实施方案中的一个。
在一个实施方案中,计算资源服务提供商304包括负载平衡器数据库310、实例服务312、布局服务326、自动扩展服务330、维护服务332、度量服务334、负载平衡服务336和/或其他部件。负载平衡器数据库310可以包括负载平衡器数据342。例如,如上所述,负载平衡器数据库310包括与自动扩展组302相关的负载平衡器340的一个或多个记录。负载平衡器数据346的记录中的每一个对应于联网环境300的负载平衡器340。
实例服务312至少部分地基于由客户提供的一组偏好来将实例320实例化。在一个实施方案中,实例服务312从客户端装置306上的客户接收请求336以创建一个或多个实例332,并且任选地将创建的实例320分配给自动扩展组302。此外,从客户端装置306上的客户所接收的请求336也可以指示开始执行所请求的实例320的时间。响应于接收请求,实例服务312将实例320实例化。在各种实施方案中,自动扩展服务330接收请求,并且将命令传送到实例服务312以将实例320实例化,以使得实例例如通过使自动扩展组302元数据与实例320相关而与自动扩展组相关。在一个实施方案中,实例服务312可以响应于来自客户端装置306和/或自动扩展服务330的请求来将实例置于待机状态或从自动扩展组中分离实例。例如,自动扩展服务330可以将请求传送到实例服务312,以根据请求336移除与从自动扩展组302分离的实例320相关的自动扩展组302元数据。此外,自动扩展服务330可以将分离的实例从负载平衡器340解除分配。
客户可以与计算资源服务提供商304(经由适当配置并认证的API调用)交互以供应、操作并管理与在服务器计算机342上实例化并由计算资源服务提供商304操作的自动扩展组302相关的实例320。另外,客户可以创建一个或多个自动扩展组302,并且自动扩展组302可以是实例320的逻辑集合。此外,实例320可以分配给自动扩展组302,或者可以是自动扩展组302的构件。自动扩展服务330可以允许客户与各种自动扩展组302交互并管理各种自动扩展组302。例如,客户可以通过自动扩展服务330为自动扩展组302设定最大或最小容量。随后,自动扩展组302可以管理分配给自动扩展组的实例320,以便维持由客户提供的设定。在各种实施方案中,客户可以通过由计算资源服务提供商304提供的如上所述的管理控制台来创建并管理自动扩展组302。
管理控制台可以作为网页公开给客户;通过与网页交互(例如,通过浏览器应用程序),客户可以使API调用生成。生成的API调用可以致使计算资源服务提供商304或其部件执行由客户指示的各种操作。一旦客户已创建自动扩展组302,客户就可以通过提交请求336将一个或多个负载平衡器分配给自动扩展组302。在这种情况下,请求336可以由自动扩展服务330或计算资源服务提供商304的其他部件处理。自动扩展组302的实例320可以用于各种目的,诸如作为支持网站的服务器进行操作、操作业务应用、或者通常充当客户的计算能力。对于实例320的其他应用可以是支持数据库应用、电子商务应用、业务应用和/或其他应用。另外,负载平衡器340可以将流量分布到自动扩展组302的各种实例320,以实现用于上述各种目的的实例的操作,并且防止自动扩展组302的实例320超载。尽管实例服务312在图3中示出,计算资源服务提供商302可以利用任何其他计算机系统或计算机系统服务,诸如不采用虚拟化或实例化并且作为替代供应专用或共享计算机/服务器和/或其他物理装置上的计算资源的计算机系统或计算机系统服务。
布局服务326将实例320供应到服务器计算机342中的一个或多个。在一个实施方案中,布局服务326至少部分地基于所指示的新实例320的自动扩展组302来确定服务器计算机342以供应新实例320。例如,布局服务326可以用适当的容量标识一个或多个服务器计算机342以执行实例320。为此,如将要描述,布局服务326从存储在数据存储库中的资源数据310确定每个服务器计算机342的容量,并且因此供应实例230。自动扩展服务330至少部分地基于由请求了实例320的客户限定的环境使先前请求的实例320的集合的容量自动地向上或向下扩展。例如,自动扩展服务330可以在需求间歇期间减少分配给客户的实例320的数量,并且在需求峰值期间增加分配给客户的实例320的数量。
在一个实施方案中,自动扩展服务330在一段低使用和/或空闲时间内去除所请求的实例320的一个子集。例如,自动扩展服务330可以确定由客户请求的实例320的数量是冗余的和/或过多的。作为响应,自动扩展服务330可以终止分配给客户的一定数量的实例320,以使得分配给客户的实例320的剩余数量不是冗余的和/或过多的。在另一个实施方案中,如果使用率不超过预先确定的阈值,则自动扩展服务330可以去除所请求的实例330的子集。类似地,自动扩展服务330在一段高使用时间内增加实例320的数量。在一个实施方案中,如果使用率超过预先确定的阈值,则自动扩展服务330可以增加实例320的数量。
从客户端装置306所接收的请求326可以包括用于如上所述更新或修改与自动扩展组302相关的负载平衡器340的API调用。包括在请求中的API调用可以在计算资源服务提供商304的接口处接收。另外,API调用和/或请求可以由计算资源服务提供商304认证。接口可以将API调用引导到用于处理请求的适当的服务。例如,用于将负载平衡器添加到自动扩展组302的API调用可以被引导到能够处理请求326的自动扩展服务330。随后,自动扩展服务330可以与接收请求326同步地将对应于包括在请求326中的负载平衡器340的信息存储到负载平衡器数据库310。
上面结合图2更详细描述的后台进程可以周期性地或不定期地查询负载平衡器数据库310以确定任何负载平衡器340是否在过渡状态下并创建在后台中执行的工作流,该工作流被配置来通过至少将负载平衡器340添加和/或移除到实例322来更新自动扩展组302的实例322的至少一部分。在各种实施方案中,自动扩展服务330可以被配置成使得对于每个自动扩展组302,仅可以执行一个后台进程。例如,如果客户经由客户端装置306尝试在正在处理另一个更新时更新与自动扩展组相关的负载平衡器,则可以用信号通知现有的后台进程后台进程应该重新计算更新负载平衡器340所需的操作并重新启动进程。
后台进程可以生成用于负载平衡器340和实例322两者的动态可配置的批量大小以执行操作。例如,后台进程可以确定与自动扩展组302相关的一整组负载平衡器340以及包括在自动扩展组302中的整组实例322。随后,后台进程可以执行分批地更新负载平衡器340所需的操作(例如,向/从自动扩展组302中的实例322添加和/或移除负载平衡器340)。后台进程可以基于多种不同的因素对批次进行优先级排序。例如,后台进程可以在执行任何移除操作之前执行所有添加操作。在另一个示例中,后台进程可以在对请求326中所指示的任何其他负载平衡器执行操作之前完成用于单个负载平衡器的操作。后台进程可以与一个或多个其他服务通信,以便完成包括在请求326中的更新负载平衡器操作。例如,后台进程可以生成API请求,该API请求被配置来致使负载平衡服务336执行包括在特定批次中的操作(例如,向/从自动扩展组302中的实例322添加和/或移除负载平衡器340)。
维护服务332为服务器计算机342安排维护、软件更新和/或固件更新。在一个实施方案中,维护服务332至少部分地基于服务器计算机342的可用容量,在适当的时间安排维护和软件更新。例如,维护服务332可以在相应的服务器计算机342具有预计的可用性时安排维护和软件更新。在一个实施方案中,当维护服务332确定服务器计算机342未正在托管任何实例320时,维护服务332可以修补并重新启动服务器计算机342。另外,维护服务332可以在将与相应的虚拟机相关的新图像实例化之前如果必要的话则修补与实例342相关的虚拟机。例如,维护服务332可以至少部分地基于实例320的健康状态来安排机器图像的修补。在一个实施方案中,不能在服务器计算机342上供应附加的实例直到定期维护完成。
维护服务332还可以周期地或不定期地检查实例320(包括分配给自动扩展组302和/或负载平衡器340的实例)的健康状态。健康检查可以包括确定实例320的各种部件(诸如中央处理单元、存储器、联网接口、操作系统、应用程序和实例320的其他部件)的负载、利用和操作。在各种实施方案中,当维护服务332至少部分地基于健康检查确定实例320是不健康的时,维护服务332或服务提供商304的其他部件(诸如自动扩展服务230)可以启动工作流以从自动扩展组302移除不健康的实例。此外,如果维护服务332确定先前不健康的实例320已返回到健康状态,则维护服务332或服务提供商304的其他部件(诸如自动扩展服务230)可以使实例320移动到服务中或使实例320附加到自动扩展组302。此外,如上所述,如果分配给负载平衡器340的实例322返回到健康状态,则自动扩展组302可以将负载平衡器340的状态更新为服务中。在各种实施方案中,健康检查可以通过与上面结合图2所描述的后台进程不同的第二后台进程执行。
度量服务334可以负责收集对应于实例320的资源数据。由度量服务334获得的资源数据可以指示实例320的各种部件(诸如中央处理单元、存储器、联网接口、操作系统、应用程序和实例320的其他部件)的使用。该信息可以用于多种不同的目的,例如,确定是否向自动扩展组302分配或解除分配资源。另外,信息可以由维护服务332使用来确定实例320和/或服务器计算机342的健康。度量服务334可以为分配给自动扩展组302的所有实例320获得并聚合利用信息。此外,当从自动扩展组320添加或移除负载平衡器340时,度量服务334可以接收从一组负载平衡器340添加或移除度量服务332为其收集和/或聚合利用信息的负载平衡器340的命令。
可以向计算资源服务提供商304的客户提供负载平衡器服务336,以便有助于客户的实例320的请求处理。在各种实施方案中,实例320可以分配给自动扩展组302,并且负载平衡器服务336可以将流量分布到分配给自动扩展组302的实例322。例如,客户可以使用计算资源服务提供商304的资源来操作使用分配给自动扩展组302的实例320的网站。此外,网站可以通过网络206接收来自多个其他客户的请求。计算资源服务提供商304可以配置负载平衡器服务336的负载平衡器,以将请求引导到执行网站的自动扩展组302的实例320,以使得通过处理请求而生成的负载分布在执行网站的自动扩展组302的实例320之中。负载平衡器服务336可以是计算机系统或虚拟计算机系统,该计算机系统或虚拟计算机系统被配置来将请求分布到分配给负载平衡器的实例320以便优化资源利用和/或避免特定服务器计算机342的超载。例如,负载平衡器可以包括连接到服务器机架或以其他方式包括在数据中心中的物理硬件。在另一个示例中,负载平衡器可以包括由服务器计算机342支持的一个或多个虚拟机。
图4示出根据至少一个实施方案的实例服务412。可以由物理硬件实现的实例服务412由服务提供商404使用来为客户406提供计算资源。物理硬件可以包括服务器计算机442。服务器计算机442可以是被配置来执行用于执行数据计算、操作或存储任务的指令的任何装置或设备,诸如计算机或服务器。服务器计算机442可以配备有任何需要的处理能力,包括一个或多个处理器,诸如中央处理单元(CPU)、图形处理单元(GPU)或数字信号处理器(DSP)、存储器(包括静态和动态存储器)、总线和符合任何握手信号、通信或数据传输协议的输入和输出端口。物理硬件还可以包括存储装置,诸如存储盘和磁带、网络设备等。
虚拟化层444可以包括裸金属管理程序或托管管理程序。在服务计算机442上执行的虚拟化层444使得物理硬件能够用于提供一个或多个计算机实例420可以在其上进行操作的计算资源。例如,虚拟化层可以使得虚拟机420能够通过虚拟机420上的虚拟装置驱动程序访问服务器计算机442上的物理硬件。虚拟化层444可以包括管理程序或虚拟化软件和/或硬件。虚拟化层还可以包括专用于管理在服务器计算机442上运行的计算机实例420的操作系统的实例。每个虚拟化层444可以包括其自身的联网软件堆栈,负责与其他虚拟化层444的通信,并且至少在一些实施方案中还负责实现在服务器计算机442上运行的计算机实例420与在其他服务器计算机442上运行的其他计算机实例420之间的网络连接性。此外,服务器计算机442可以在相同的服务器计算机442上托管相同或不同类型的多个虚拟化层444。虚拟化层444可以是用于为计算机实例420提供虚拟计算平台的任何装置、软件或固件。虚拟计算平台可以包括各种虚拟计算机部件,诸如个或多个虚拟CPU、虚拟存储器等。可以向服务提供商404的客户406提供计算机实例420,并且客户406可以在计算机实例420上运行操作系统或应用程序。此外,服务提供商404可以使用其自身的计算机实例420中的一个或多个来执行其应用程序。计算机实例420的至少一部分可以执行用于一个或多个其他计算机实例420的内核级部件。例如,特定计算机实例可以执行被配置来管理由其他计算机实例执行的一个或多个子分区的父分区,其中特定计算机实例和其他计算机实例由相同的虚拟化层444支持。
命令和其他信息可以包括在从虚拟机管理服务412或自动扩展服务430到虚拟化层444的API调用中。虚拟机管理服务412可以使得客户406能够管理并操作计算机实例420。例如,客户406可以将请求传送到虚拟机管理服务412以终止由客户406操作的所有计算机实例420。请求可以是包括对应于客户406和计算机实例420的信息的API调用。虚拟机管理服务412可以为包括在请求中的计算机实例420确定对应的虚拟化层444,并将终止命令传送到虚拟化层444。虚拟机管理服务412可以在至少一些实施方案中实现,从而使得多种客户端应用程序能够在代表客户406实例化的虚拟计算机服务器或计算机实例420上运行。计算机实例420可以各自包括虚拟机,其中其自身的操作系统包括联网软件堆栈,并且多个此类实例可以在服务提供商网络数据中心处的给定服务器计算机442上托管。
另外,上面结合图3更详细描述的负载平衡服务436。可以将包括在API调用中的命令和其他信息传送到实例服务412。实例服务可以确定适当的虚拟化层,并且致使实例420根据API调用进行操作。例如,如上所述,负载平衡器服务436可以将API调用传送到实现负载平衡器的特定实例420,并且API调用可以被配置来致使负载平衡器管理流量并将流量引导到自动扩展组的一组实例。在各种实施方案中,负载平衡服务436和自动扩展服务可以将命令直接传送到虚拟化层444。
图5示出根据实施方案的可以用于使用后台进程将自动扩展组的实例分配给负载平衡器的说明性过程500。过程500可以由任何合适的系统(诸如上面结合图2和图3描述的自动扩展服务)或多个系统或其部件的任何组合(诸如上述的后台进程)执行。返回到图5,在个实施方案中,过程500包括接收启动异步工作流的请求502。异步工作流可以是待由服务提供商的计算机系统执行的一组操作或任务,诸如自动扩展服务,其中操作的序列或顺序不需要在开始下一个操作之前待完成的先前操作。例如,如上所述,自动扩展服务可以接收将负载平衡器添加到需要异步工作流的自动扩展组的请求以便处理该请求。随后,自动扩展服务可以执行后台进程504。在过程500的多个变型中,如果当前正执行后台进程,则自动扩展服务可能致使后台进程重新启动,或者可能致使后台进程在过程500中的特定点处重新启动。
随后,后台进程可以确定过渡状态下的一组负载平衡器506。例如,后台进程可以在如上所述的添加状态、已添加状态或移除状态下为负载平衡器查询负载平衡器数据库。随后,后台进程可以确定与过渡状态下的负载平衡器相关的一组计算机系统实例。这可以包括自动扩展组的所有实例,或仅包括仍待向过渡状态下的负载平衡器组的特定负载平衡器分配或解除分配的实例。随后,后台进程可以确定用于过渡状态下的待更新的实例和负载平衡器的操作顺序和批量大小。
可以基于多种因素,包括多个实例、多个负载平衡器、对负载平衡服务的负载的量或适用于确定用于更新实例和负载平衡器的批量大小的其他因素进行确定。此外,后台进程可以至少部分地基于对负载平衡服务的负载和/或待在负载平衡器上执行的操作的数量或类型来查询负载平衡服务以确定适当的批量大小(例如,其中将向负载平衡器分配或解除分配实例)。在各种实施方案中,如果后台进程从负载平衡服务接收到错误,例如,如果负载平衡服务不能处理请求,则后台进程可以减少在一段时间间隔内传送与批次相关的API调用的批量大小和/或延迟。
随后,后台进程可以执行与所确定的批次相关的操作512。例如,后台进程可以将API调用传送到负载平衡服务,该负载平衡服务被配置来将自动扩展组的10个实例分配给API调用中所指示的特定负载平衡器。随后,自动扩展服务和/或后台进程可以生成审计日志信息514。如上所述,审计日志信息可以使得客户能够获得对应于与自动扩展组相关的负载平衡器和在添加和/或移除负载平衡器时执行的操作(例如,执行所确定的分批操作的结果)的信息。自动扩展服务可以在使异步工作流入队之后生成审计日志信息的至少一部分,并且可以在完成异步工作流之后生成附加的审计日志信息。例如,自动扩展服务生成审计日志信息,包括根据请求执行的操作和开始时间。在完成异步工作流之后,自动扩展服务可以生成审计日志信息,包括操作完成的时间以及操作是否成功。
如果接收到附加请求516,则后台进程可以重新启动过程并且确定过渡状态下的负载平衡器。如果未接收到附加请求516,则后台进程可以继续执行与所确定的批次相关的操作,直到所有操作完成。一旦所有操作完成,后台进程就可以用与过渡状态下的负载平衡器相关的信息来更新负载平衡器数据库518。例如,如上所述,一旦所有实例已添加到特定负载平衡器,后台进程就可以更新包含在待添加的负载平衡器数据库中的状态信息。
图6是示出根据各种实施方案的用于使得客户能够获得对应于与客户的自动扩展组相关的一个或多个负载平衡器的信息的过程600的示例的框图。过程600可以由任何合适的系统(诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或由计算资源服务提供商操作的任何服务(诸如上面结合图2和图3描述的自动扩展服务))执行。过程600包括一系列操作,其中从请求者接收DescribeLoadBalancers应用程序编程接口调用,认证请求者,随后如果被认证,则针对所请求的信息查询负载平衡器数据库并将所查询的负载平衡器数据库提供给请求者。在一些实施方案中,可以为请求者格式化或以其他方式修改从负载平衡器数据库获得的信息。
在602中,计算资源服务提供者从客户或其他实体接收应用程序编程接口调用,以描述与自动扩展组相关的负载平衡器。如上所述,计算资源服务提供商的自动扩展组或其他部件可以维护负载平衡器数据库。负载平衡器数据库可以包含对应于与自动扩展组相关的负载平衡器的信息,例如负载平衡器的标识信息、与负载平衡器相关的特定自动扩展组、负载平衡器的状态、负载平衡器被分配了特定状态的开始时间或结束时间和适用于向客户描述负载平衡器的任何其他信息。此外,请求可以指示与客户请求信息所对应的自动扩展组相关的一组负载平衡器的子集。例如,客户可以指示特定的负载平衡器来获得用于诸如在最近24小时间隔内从自动扩展组添加或移除的所有负载平衡器的信息,或者客户可以指示负载平衡器的一个或多个属性来获得该信息。
在604中,计算资源服务提供者确定请求者是否具有足够的权限来让请求得到履行。例如,请求者可能已提供了身份和拥有凭证的证明作为具有DescribeLoadBalancers应用程序编程接口调用的参数。例如,请求者可以供给足以证明对凭证的访问的信息作为对应于身份的拥有凭证的证明,诸如密码、密码的加密杂凑/摘要、由签名加密密钥生成的加密数字签名或可由计算资源服务提供商验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可以向认证服务提供该身份和证明,该认证服务随后可以验证请求者的身份和凭证的证明。一旦验证了请求者的身份,计算资源服务提供商或认证服务就可以确定与标识相关的安全策略和/或角色是否授予足够的权限来允许履行请求。
如果计算资源服务提供商不能确定身份(例如,不存在于在安全数据库中),则凭证的证明不足以证明身份(例如,错误的密码),或者请求者的身份不能以其他方式确认,执行过程600的系统在过程600中可能不会进一步行进。执行过程600的系统可以以给请求者的错误消息对认证失败作出响应和/或在安全日志中注册认证失败610。否则,如果请求者被认证并被确定为具有足够的权限来让DescribeLoadBalancers请求得到履行,则执行过程600的系统可以进入到606。
一旦计算资源服务提供商确定请求者具有足够的权限来让请求得到履行,计算资源服务提供商或其部件(诸如自动扩展服务)就可以针对所请求的信息查询负载平衡器数据库606。负载平衡器数据库可以维持在计算资源服务提供商的数据存储服务或数据库服务中。响应于该查询,自动扩展服务可以获得请求中所指示的信息。例如,自动扩展服务可以获得与自动扩展组相关的负载平衡器的列表以及包括在该列表中的负载平衡器的状态。随后,自动扩展服务可以响应于该请求向请求者提供负载平衡器的列表608。
图7是示出根据各种实施方案的用于将负载平衡器添加到自动扩展组的过程700的示例的框图。过程700可以由任何合适的系统(诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或计算资源服务提供商的任何服务(诸如上面结合图2和图3描述的自动扩展服务))执行。过程700包括一系列操作,其中从请求者接收AddLoadBalancer应用程序编程接口调用,认证请求者,随后如果被认证,则使用负载平衡器信息更新负载平衡器数据库,并且将负载平衡器添加到自动扩展组。
在702中,计算资源服务提供者从客户或其他实体接收应用程序编程接口调用,以将一个或多个负载平衡器添加到自动扩展组。将一个或多个负载平衡器添加到自动扩展组可能致使一个或多个负载平衡器管理网络流量并将该网络流量引导到包含在自动扩展组中的一组实例。此外,将一个或多个负载平衡器添加到自动扩展组可以包括由计算资源服务提供商的各种其他服务执行的操作。例如,客户可以通过将请求提交到上面更详细描述的负载平衡服务来使负载平衡器被创建。另外,自动扩展服务或其部件(诸如后台进程)可以通过将多批API调用提交到负载平衡服务来将一个或多个负载平衡器添加到自动扩展组。例如,后台进程可以确定待分配给特定的负载平衡器的一批10个实例,生成被配置来致使负载平衡服务将10个实例分配给特定的负载平衡器的API调用,并向负载平衡服务提供API调用。
在704中,计算资源服务提供者确定请求者是否具有足够的权限来让请求得到履行。例如,请求者可能已提供了身份和拥有凭证的证明作为具有AddLoadBalancer应用程序编程接口调用的参数。例如,请求者可以供给足以证明对凭证的访问的信息作为对应于身份的拥有凭证的证明,诸如密码、密码的加密杂凑/摘要、由签名加密密钥生成的加密数字签名或可由计算资源服务提供商验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可以向认证服务提供该身份和证明,该认证服务随后可以验证请求者的身份和凭证的证明。一旦验证了请求者的身份,计算资源服务提供商或认证服务就可以确定与身份相关的安全策略和/或角色是否授予足够的权限来允许完成请求。
如果计算资源服务提供商不能确定身份(例如,不存在于在安全数据库中),则凭证的证明不足以证明身份(例如,错误的密码),或者请求者的身份不能以其他方式确认,执行过程700的系统在过程700中可能不会进一步行进。执行过程700的系统可以以给请求者的错误消息对认证失败作出响应和/或在安全日志中注册认证失败712。否则,如果请求者被认证并被确定为具有足够的权限来让AddLoadBalancer请求得到完成,则执行过程700的系统可以进入到706。
在706中,执行过程700的系统可以使用对应于请求中所指示的负载平衡器的信息来更新负载平衡器数据库。例如,请求可以包括待添加的负载平衡器的标识符、与负载平衡器相关的客户、计算资源服务提供商或与其负载平衡器相关的服务、或适用于使得自动扩展服务能够将负载平衡器添加到自动扩展组的其他信息。例如,更新负载平衡器数据库可以包括在数据库中生成包含负载平衡器的标识符和负载平衡器的状态的行。该状态可以由自动扩展服务确定。例如,如果负载平衡器先前尚未添加到自动扩展组,则自动扩展服务可以将添加状态分配给对应于负载平衡器数据库中的负载平衡器的行。
随后,执行过程700的自动扩展服务或其他系统可以使异步工作流排队708。异步工作流可以是诸如上面结合图5描述的过程500的过程,该过程被配置来将自动扩展组的实例分配给请求中所指示的负载平衡器。异步工作流可以由上述的后台进程完成。随后,自动扩展服务可以生成审计日志信息710。如上所述,审计日志信息可以使得客户能够获得对应于与自动扩展组相关的负载平衡器和在添加和/或移除负载平衡器时执行的操作的信息。自动扩展服务可以在使异步工作流入队之后生成审计日志信息的至少一部分,并且可以在完成异步工作流之后生成附加的审计日志信息。例如,自动扩展服务生成审计日志信息,包括根据请求执行的操作和开始时间,在完成异步工作流之后,自动扩展服务可以生成审计日志信息,包括操作完成的时间以及操作是否成功。
图8是示出根据各种实施方案的用于将负载平衡器移除到自动扩展组的过程800的示例的框图。过程800可以由任何合适的系统(诸如数据中心中的服务器、计算资源服务提供商的分布式系统中的多个计算装置、或计算资源服务提供商的任何服务(诸如上面结合图2和图3描述的自动扩展服务))执行。过程800包括一系列操作,其中从请求者接收RemoveLoadBalancer应用程序编程接口调用,认证请求者,随后如果被认证,则使用负载平衡器信息更新负载平衡器数据库,并且将负载平衡器移除到自动扩展组。
在802中,计算资源服务提供者从客户或其他实体接收应用程序编程接口调用,以将一个或多个负载平衡器移除到自动扩展组。将一个或多个负载平衡器移除到自动扩展组可能致使一个或多个负载平衡器管理网络流量并将该网络流量引导到包含在自动扩展组中的一组实例。此外,将一个或多个负载平衡器移除到自动扩展组可以包括由计算资源服务提供商的各种其他服务执行的操作。例如,客户可以通过将请求提交到上面更详细描述的负载平衡服务来使负载平衡器被创建。另外,自动扩展服务或其部件(诸如后台进程)可以通过将多批API调用提交到负载平衡服务来将一个或多个负载平衡器移除到自动扩展组。例如,后台进程可以确定待分配给特定的负载平衡器的一批10个实例,生成被配置来致使负载平衡服务将10个实例分配给特定的负载平衡器的API调用,并向负载平衡服务提供API调用。
在804中,计算资源服务提供者确定请求者是否具有足够的权限来让请求得到完成。例如,请求者可能已提供了身份和拥有凭证的证明作为具有RemoveLoadBalancer应用程序编程接口调用的参数。例如,请求者可以供给足以证明对凭证的访问的信息作为对应于身份的拥有凭证的证明,诸如密码、密码的加密杂凑/摘要、由签名加密密钥生成的加密数字签名或可由计算资源服务提供商验证的用于授权请求者的身份的其他密钥。计算资源服务提供商可以向认证服务提供该身份和证明,该认证服务随后可以验证请求者的身份和凭证的证明。一旦验证了请求者的身份,计算资源服务提供商或认证服务就可以确定与身份相关的安全策略和/或角色是否授予足够的权限来允许完成请求。
如果计算资源服务提供商不能确定身份(例如,不存在于在安全数据库中),则凭证的证明不足以证明身份(例如,错误的密码),或者请求者的身份不能以其他方式确认,执行过程800的系统在过程800中可能不会进一步行进。执行过程800的系统以给请求者的错误消息对认证失败作出响应和/或在安全日志中注册认证失败812。否则,如果请求者被认证并被确定为具有足够的权限来让RemoveLoadBalancer请求得到完成,则执行过程800的系统可以进入到806。
在806中,执行过程800的系统可以使用对应于请求中所指示的负载平衡器的信息来更新负载平衡器数据库。例如,请求可以包括待移除的负载平衡器的标识符、与负载平衡器相关的客户、计算资源服务提供商或与其负载平衡器相关的服务、或适用于使得自动扩展服务能够将负载平衡器移除到自动扩展组的其他信息。例如,更新负载平衡器数据库可以包括在数据库中生成包含负载平衡器的标识符和负载平衡器的状态的行。该状态可以由自动扩展服务确定。例如,如果负载平衡器先前尚未移除到自动扩展组,则自动扩展服务可以将移除状态分配给对应于负载平衡器数据库中的负载平衡器的行。
随后,执行过程800的自动扩展服务或其他系统可以使异步工作流排队808。异步工作流可以是诸如上面结合图5描述的过程500的过程,该过程被配置来将自动扩展组的实例分配给请求中所指示的负载平衡器。异步工作流可以由上述的后台进程完成。随后,自动扩展服务可以生成审计日志信息810。如上所述,审计日志信息可以使得客户能够获得对应于与自动扩展组相关的负载平衡器和在添加和/或移除负载平衡器时执行的操作的信息。自动扩展服务可以在使异步工作流入队之后生成审计日志信息的至少一部分,并且可以在完成异步工作流之后生成附加的审计日志信息。例如,自动扩展服务生成审计日志信息,包括根据请求执行的操作和开始时间,在完成异步工作流之后,自动扩展服务可以生成审计日志信息,包括操作完成的时间以及操作是否成功。
图9示出根据实施方案的说明使用后台进程932对自动扩展组的负载平衡器的更新902的消息传递图。对负载平衡器的更新902可以响应来自客户的API调用(诸如上面结合图7和图8描述的API调用)以更新(例如,添加或移除)与自动扩展组相关的负载平衡器。自动扩展服务可以使用后台进程932执行更新,并且可以与负载平衡服务936进行通信,以将与自动扩展组的实例的关联更新到由负载平衡服务管理的一个或多个负载平衡器。后台进程可以执行如上面结合图5描述的异步工作流。例如,如上所述,自动扩展服务可以接收将负载平衡器添加到需要异步工作流的自动扩展组的请求以便处理该请求。随后,自动扩展服务可以通过启动后台进程904来执行后台进程932。在各种实施方案中,如果当前正执行后台进程,则自动扩展服务可能致使后台进程重新启动,或者可能致使后台进程在更新负载平衡器902API调用中的操作或步骤处重新启动。
随后,后台进程可以响应于来自自动扩展服务的请求来确定过渡状态下的一组负载平衡器以描述负载平衡器926。因此,后台进程可以在如上所述的添加状态、已添加状态或移除状态下为负载平衡器查询负载平衡器数据库。在各种实施方案中,不管负载平衡器的状态如何,自动扩展服务可以请求对应于与自动扩展组相关的所有负载平衡器的信息。随后,后台进程可以返回与自动扩展组相关的负载平衡器的列表以及对应于负载平衡器的附加信息,诸如状态信息或状况信息。虽然描述了列表,但是有序或无序的任何数据结构可以用于将负载平衡器信息返回到自动扩展服务。如图9所指示的,该过程可以在循环中执行,直到自动扩展服务接收指示继续进行到更新负载平衡器902操作中的下一个步骤的令牌。该循环可以是包括在从客户所接收的API调用中的任选参数。
随后,后台进程可以响应于来自自动扩展服务的请求来确定与过渡状态下的负载平衡器相关的一组计算机系统实例以描述实例908。这可以包括自动扩展组的所有实例,或仅包括仍待向过渡状态下的负载平衡器组的特定负载平衡器分配或解除分配的实例。随后,后台进程932可以确定自动扩展组的实例的列表,并向自动扩展服务提供该实例的列表910。后台进程可以查询负载平衡器数据库或包含对应于自动扩展组的实例的信息的其他数据库。虽然描述了列表,但是有序或无序的任何数据结构可以用于将负载平衡器信息返回到自动扩展服务。如图9所指示的,该过程可以在循环中执行,直到自动扩展服务接收指示继续进行到更新负载平衡器902操作中的下一个步骤的令牌。例如,描述负载平衡器和描述实例可以在循环中执行,直到后台进程932确定已获得对应于负载平衡器和实例的所有信息。该循环可以是包括在从客户所接收的API调用中的任选参数。
随后,自动扩展服务可以确定用于过渡状态下的待更新的实例和负载平衡器的操作顺序和批量大小(912)。可以基于多种因素,包括多个实例、多个负载平衡器、对负载平衡服务的负载的量或适用于确定用于更新实例和负载平衡器的批量大小的其他因素进行确定。此外,后台进程可以至少部分地基于对负载平衡服务的负载和/或待在负载平衡器上执行的操作的数量或类型来查询负载平衡服务以确定适当的批量大小(例如,其中将向负载平衡器分配或解除分配实例)。在各种实施方案中,如果后台进程从负载平衡服务接收到错误,例如,如果负载平衡服务不能处理请求,则后台进程可以减少在一段时间间隔内传送与批次相关的API调用的批量大小和/或延迟。
随后,自动扩展服务可以执行与所确定的批次相关的操作。例如,后台进程可以将API调用传送到负载平衡服务,该负载平衡服务被配置来将自动扩展组的实例分配给API调用中所指示的特定负载平衡器(914)。负载平衡服务936可以发送确认(916)。该确认可以包括对应于批次中成功分配给负载平衡器的实例以及尚未成功分配给负载平衡器的实例的信息。该确认可以使得自动扩展服务能够确定已经分配给负载平衡器的实例。例如,该确认可以指示特定实例未成功分配给负载平衡器,这可以指示该实例先前已分配给负载平衡器。
如果更新包括待从自动扩展组移除的负载平衡器,则自动扩展服务可以等待正从负载平衡器解除分配的实例,以完成如上所述的连接排除操作。当实例正在排除所有当前连接的过程中时,自动扩展服务可以定期地或不定期地确定实例健康(918)。负载平衡服务936可以返回指示到实例的剩余连接的确认(920)。一旦所有实例已分配或者解除分配,自动扩展服务可以通过将完成的负载平衡器更新传送到负载平衡服务936来完成负载平衡器更新。这可以向负载平衡服务936指示所有分批操作已完成。随后,自动扩展服务可以更新完成更新负载平衡器的后台进程(924)。在各种实施方案中,更新后台进程完成致使后台进程终止操作。
随后,自动扩展服务和/或后台进程可以生成审计日志信息。如上所述,审计日志信息可以使得客户能够获得对应于与自动扩展组相关的负载平衡器和在添加和/或移除负载平衡器时执行的操作(例如,执行所确定的分批操作的结果)的信息。自动扩展服务可以在使异步工作流入队之后生成审计日志信息的至少一部分,并且可以在完成异步工作流之后生成附加的审计日志信息。例如,自动扩展服务生成审计日志信息,包括根据请求执行的操作和开始时间,在完成异步工作流之后,自动扩展服务可以生成审计日志信息,包括操作完成的时间以及操作是否成功。
如果接收到附加请求,则后台进程可以重新启动过程并且确定过渡状态下的负载平衡器。如果未接收到附加请求,则后台进程可以继续执行与所确定的批次相关的操作,直到所有操作完成。一旦所有操作完成,后台进程就可以用与过渡状态下的负载平衡器相关的信息来更新负载平衡器数据库。例如,如上所述,一旦所有实例已添加到特定负载平衡器,后台进程就可以更新包含在待添加的负载平衡器数据库中的状态信息。
另外,本公开的实施方案可以根据以下条款来描述:
1.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
接收更新与自动扩展组相关的负载平衡器的请求,其中所述自动扩展组包括一组计算机实例,所述一个或多个计算机系统被配置来根据由客户确定的一个或多个属性管理所述计算机实例的大小;
使用所述请求中所指示的所述负载平衡器的标识符来更新负载平衡器数据库,并且在所述负载平衡器数据库中将状态分配给所述负载平衡器;
执行后台进程,所述后台进程被配置来通过至少修改所述一组计算机实例与所述负载平衡器之间的关联来完成所述请求的至少一部分;
更新所述负载平衡器数据库中的所述负载平衡器的所述状态;以及
确定分配给所述负载平衡器的所述一组计算机实例中的至少一个计算机实例已通过健康检查。
2.根据条款1所述的计算机实现的方法,其中所述更新所述负载平衡器的请求包括将所述负载平衡器添加到所述自动扩展组的添加请求。
3.根据条款1或2所述的计算机实现的方法,其中所述更新所述负载平衡器的请求包括从所述自动扩展组移除所述负载平衡器的移除请求。
4.根据条款1至3中任一项所述的计算机实现的方法,其中计算机实现的方法还包括至少部分地基于所述后台进程的执行来生成日志信息。
5.一种系统,其包括:
一个或多个处理器;
包括指令的存储器,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收将负载平衡器添加到组织为计算机实例组的一组计算机实例的请求;
确定负载平衡器数据存储库缺少与所述请求中所指示的所述负载平衡器相关的条目;
在所述负载平衡器数据存储库中生成包含所述负载平衡器的标识符和所述负载平衡器的状态的条目;并且
执行被配置来将所述一组计算机实例分配给所述负载平衡器的后台进程,其中将所述一组计算机实例分配给所述负载平衡器致使所述负载平衡器将网络流量引导到所述计算机实例。
6.根据条款5所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
确定分配给所述负载平衡器的所述一组计算机实例中的至少一个计算机实例已通过健康检查;并且
在所述负载平衡器数据存储库中将所述负载平衡器的所述状态更新为服务中。
7.根据条款5或6所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收从所述计算机实例组移除所述负载平衡器的第二请求;并且
致使所述后台进程将所述一组计算机实例解除分配给所述负载平衡器,其中将所述一组计算机实例解除分配给所述负载平衡器致使所述负载平衡器不再将网络流量引导到所述计算机实例。
8.根据条款7所述的系统,其中接收从所述计算机实例组移除所述负载平衡器的所述第二请求还包括在所述负载平衡器数据存储库中将所述负载平衡器的所述状态更新为移除状态,其中所述移除状态指示所述后台进程在将所述一组计算机实例解除分配给所述负载平衡器的过程中。
9.根据条款7或8所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统由于所述后台进程将所述一组计算机实例解除分配给所述负载平衡器,移除与所述负载平衡器相关的负载平衡器数据存储库条目。
10.根据条款5至9中任一项所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收更新与所述计算机实例组相关的第二负载平衡器的第二请求;
确定所述后台进程目前正处理所述请求;并且
重新启动所述后台进程,以便致使所述后台进程完成所述请求和所述第二请求。
11.根据条款5至10中任一项所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收获得与和所述计算机实例组相关的一组负载平衡器相关的信息的请求,其中所述负载平衡器是所述一组负载平衡器的成员;
针对与所述一组负载平衡器相关的所述信息查询所述负载平衡器数据存储库;并且
响应于所述获得信息的请求来提供所述查询的结果。
12.根据条款5至11中任一项所述的系统,其中在所述负载平衡器数据存储库中生成所述条目还包括改变包括在所述请求中的所述负载平衡器的所述状态以指示添加的启动。
13.一种非暂时性计算机可读存储介质,其上存储可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
接收更新与计算机实例组相关的一个或多个负载平衡器的请求;
至少部分地基于所述请求中所指示的所述一个或多个负载平衡器来更新负载平衡器数据存储库,所述更新至少包括修改分配给所述负载平衡器数据存储库中的所述一个或多个负载平衡器中的每个负载平衡器的状态;并且
致使后台进程完成所述请求。
14.根据条款13所述的非暂时性计算机可读存储介质,其中致使所述计算机系统接收所述更新与所述计算机实例组相关的一个或多个负载平衡器的请求的所述指令还包括致使所述计算机系统执行下列各项的指令:
确定对所述请求中所指示的所述一个或多个负载平衡器的所述更新包括将所述一个或多个负载平衡器中的至少一个负载平衡器添加到所述计算机实例组;并且
将所述计算机实例组中的一组计算机实例分配给所述至少一个负载平衡器。
15.根据条款13或14所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统生成指示响应于所述接收的请求执行的一组操作的审计日志的指令。
16.根据条款13至15中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括指令,其在由所述一个或多个处理器执行时致使所述计算机系统确定所述后台进程已完成所述请求并更新分配给所述一个或多个负载平衡器中的至少一个负载平衡器的所述状态。
17.根据条款13至16中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统接收所述更新与计算机实例组相关的一个或多个负载平衡器的请求的所述指令还包括致使所述计算机系统执行下列各项的指令:
确定对所述请求中所指示的所述一个或多个负载平衡器的所述更新包括将所述一个或多个负载平衡器中的至少一个负载平衡器移除到所述计算机实例组;并且
将所述计算机实例组中的一组计算机实例解除分配给所述至少一个负载平衡器。
18.根据条款13至17中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统执行下列各项的指令:
接收应用程序接口(API)调用,所述API调用被配置来获得与所述计算机实例组相关的负载平衡器的列表;并且
响应于所述API调用来提供对所述负载平衡器数据存储库的查询的结果,所述查询被配置来获得与所述计算机实例组相关的所述负载平衡器的列表。
19.根据条款13至18中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统在完成所述请求之前认证所述请求的指令。
20.根据条款13至19中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统对所述计算机实例组中的至少一个计算机实例执行健康检查的指令,其中所述至少一个计算机实例与所述一个或多个负载平衡器中的至少一个负载平衡器相关。
21.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
检测对与包括一组计算机实例的自动扩展组相关的负载平衡器的更新操作,所述一个或多个计算机系统被配置来根据由客户确定的一个或多个属性管理所述计算机实例的大小,其中所述更新操作被配置来修改所述负载平衡器与所述自动扩展组的所述一组计算机实例之间的关联;
针对对应于所述负载平衡器的信息查询负载平衡器数据库;
至少部分地基于所述负载平衡器和对所述负载平衡器的所述更新操作来修改所述负载平衡器数据库,其中修改所述负载平衡器数据库包括修改所述负载平衡器的指示所述更新操作的状况的状态;
将所述更新存储在所述负载平衡器数据库中;并且
由于检测到所述更新操作的完成,更新所述负载平衡器的所述状态。
22.根据条款21所述的计算机实现的方法,其中所述负载平衡器的所述状态包括以下状态中的至少一种:添加状态、已添加状态、移除状态和服务中状态。
23.根据条款21或22所述的计算机实现的方法,其中所述计算机实现的方法还包括至少部分地基于从所述自动扩展组移除所述负载平衡器的客户请求来将所述负载平衡器数据库中的所述负载平衡器的所述状态修改为移除状态。
24.根据条款21至23中任一项所述的计算机实现的方法,其中所述计算机实现的方法还包括至少部分地基于从所述自动扩展组添加所述负载平衡器的客户请求来将所述负载平衡器数据库中的所述负载平衡器的所述状态修改为添加状态。
25.根据条款21至24中任一项所述的计算机实现的方法,其中所述计算机实现的方法还包括由于所述查询缺少对应于所述负载平衡器的信息,在所述负载平衡器数据库中生成用于对应于所述负载平衡器的信息的条目。
26.一种系统,其包括:
一个或多个处理器;以及
包括指令的存储器,所述指令在由所述一个或多个处理器执行时致使所述系统:
检测与分配给计算机实例组的一个或多个负载平衡器相关的操作;
针对对应于所述一个或多个负载平衡器的信息,查询与所述计算机实例组相关的数据存储库;
存储对对应于所述负载平衡器和所述操作的所述数据存储库的更新,所述更新包括指示所述操作的类型的所述一个或多个负载平衡器的状态;并且
针对所述负载平衡器的所述状态查询所述数据存储库,以便确定执行与分配给所述计算机实例组的所述负载平衡器相关的所述操作。
27.根据条款26所述的系统,其中所述操作还包括将负载平衡器添加到所述计算机实例组,并且所述一个或多个负载平衡器的所述状态指示所述计算机实例组中的至少一个实例正分配给所述负载平衡器。
28.根据条款27所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统确定所述至少一个实例已分配给所述负载平衡器,并且所述一个或多个负载平衡器的所述状态指示所述计算机实例组中的所述一个或多个实例已分配给所述负载平衡器。
29.根据条款28所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统确定所述计算机实例组中的至少一个实例已通过健康检查,并且所述一个或多个负载平衡器的所述状态指示所述负载平衡器中的至少一个负载平衡器在服务中。
30.根据条款26至29中任一项所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统接收从所述计算机实例组移除所述一个或多个负载平衡器中的至少一个负载平衡器的请求,并且所述至少一个负载平衡器的所述状态指示所述计算机实例组中的至少一个实例正从所述负载平衡器解除分配。
31.根据条款30所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
确定所述一个或多个实例已从所述负载平衡器解除分配;并且
标记来自所述数据存储库的对应于所述负载平衡器的条目以进行删除。
32.根据条款26至31中任一项所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统由于所述查询未返回对应于所述负载平衡器的信息,在所述数据存储库中生成用于对应于所述负载平衡器的信息的条目。
33.根据条款32所述的系统,其中所述数据存储库中的所述条目包括所述数据存储库中的与所述负载平衡器的标识符相关的行。
34.一种非暂时性计算机可读存储介质,其上存储可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
接收更新与计算机实例组相关的至少一个负载平衡器的请求;
修改数据存储库以包括所述至少一个负载平衡器的标识符和所述至少一个负载平衡器的状态,其中所述至少一个负载平衡器的所述状态至少部分地基于所述接收的请求而确定;并且
执行一个或多个操作以至少部分地基于所述数据存储库中所指示的所述至少一个负载平衡器的所述状态来完成所述请求。
35.根据条款34所述的非暂时性计算机可读存储介质,其中致使所述计算机系统修改所述数据存储库的所述指令还包括修改所述数据存储库以包括对应于所述更新所述至少一个负载平衡器的请求的审计信息的指令。
36.根据条款34或35所述的非暂时性计算机可读存储介质,其中致使所述计算机系统修改所述数据存储库的所述指令还包括通过在修改所述数据存储库之前至少查询所述数据存储库来确定存储在所述数据存储库中的所述至少一个负载平衡器的先前记录的状态的指令。
37.根据条款34至36中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统接收所述更新所述至少一个负载平衡器的请求的所述指令还致使所述计算机系统:
接收从所述计算机实例组移除所述至少一个负载平衡器的请求;并且
将所述数据存储库中的所述至少一个负载平衡器的所述状态修改为移除状态。
38.根据条款34至37中任一项所述的非暂时性计算机可读存储介质,其中所述指令还致使所述计算机系统:
从后台进程接收对过渡状态下的负载平衡器的第二请求;
至少部分地基于包括在所述数据存储库中的所述至少一个负载平衡器的所述状态,从所述数据存储库获得一种或多种过渡状态中的一种过渡状态下的负载平衡器;并且
响应于所述第二请求提供所述获得的负载平衡器。
39.根据条款34至38中任一项所述的非暂时性计算机可读存储介质,其中所述指令还致使所述计算机系统:
接收将所述至少一个负载平衡器添加到所述计算机实例组的请求;并且
将包括所述至少一个负载平衡器的所述标识符的条目生成到所述数据存储库,并且将所述至少一个负载平衡器的所述状态设定为添加状态。
40.根据条款34至39中任一项所述的非暂时性计算机可读存储介质,其中所述指令还致使所述计算机系统至少部分地基于从后台进程所接收的所述至少一个负载平衡器的所述状态的更新来修改包括在所述数据存储库中的所述至少一个负载平衡器的所述状态。
41.根据条款34至40中任一项所述的非暂时性计算机可读存储介质,其中所述指令还致使所述计算机系统检测对所述至少一个负载平衡器的所述更新的完成,并且因此修改所述数据存储库中的所述至少一个负载平衡器的所述状态。
42.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
检测过渡状态下的一组负载平衡器中的一个或多个负载平衡器,其中所述过渡状态指示与自动扩展组相关的一个或多个负载平衡器需要更新,并且其中所述自动扩展组包括至少一个计算机实例;
从自动扩展服务接收启动异步工作流的请求,所述异步工作流被配置来通过至少使所述计算机实例与分配给所述自动扩展组的一组负载平衡器中的至少一个负载平衡器相关来更新由所述自动扩展服务管理的所述自动扩展组的计算机实例;
至少部分地基于所述过渡状态下的所述确定的一个或多个负载平衡器来确定待更新的所述自动扩展组的一组计算机实例中的一个或多个计算机实例;
确定一组分批操作,其被配置来更新所述确定的一个或多个计算机实例与所述过渡状态下的所述确定的一个或多个负载平衡器之间的关联;
致使所述一组分批操作被执行;以及
由于所述一组分批操作的执行,更新负载平衡器数据库。
43.根据条款42所述的计算机实现的方法,其中确定被配置来更新所述确定的一个或多个计算机实例与所述过渡状态下的所述确定的一个或多个负载平衡器之间的所述关联的所述一组分批操作还包括一组应用程序接口调用,所述一组应用程序接口调用被配置来致使所述确定的一个或多个计算机实例分配给所述确定的一个或多个负载平衡器,以使得所述确定的一个或多个负载平衡器将网络流量分布到所述确定的一个或多个计算机实例。
44.根据条款42或43所述的计算机实现的方法,其中确定被配置来更新所述确定的一个或多个计算机实例与所述过渡状态下的所述确定的一个或多个负载平衡器之间的所述关联的所述一组分批操作还包括一组应用程序接口调用,所述一组应用程序接口调用被配置来致使所述确定的一个或多个计算机实例从所述确定的一个或多个负载平衡器移除,以使得所述确定的一个或多个负载平衡器不再将网络流量分布到所述确定的一个或多个计算机实例。
45.根据条款42至44中任一项所述的计算机实现的方法,其中所述计算机实现的方法还包括接收启动对自动扩展组的计算机实例的更新的第二请求以及重新启动所述异步工作流。
46.一种系统,其包括:
一个或多个处理器;以及
包括指令的存储器,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收启动工作流的请求;
通过至少执行下列各项来完成所述请求:
确定过渡状态下的一组负载平衡器中的至少一个负载平衡器;
确定待分配给所述过渡状态下的所述至少一个负载平衡器的计算机实例组中的至少一个计算机实例;
确定被配置来将所述确定的至少一个计算机实例分配给所述过渡状态下的所述确定的至少一个负载平衡器的操作;并且
致使所述确定的操作被执行。
47.根据条款46所述的系统,其中致使所述系统确定所述过渡状态下的所述一组负载平衡器中的所述至少一个负载平衡器的所述指令还包括在由所述一个或多个处理器执行时致使所述系统执行下列各项的指令:
针对负载平衡器状态信息查询数据存储库;并且
至少部分地基于所述查询的结果来确定所述至少一个处于负载平衡器在所述过渡状态下。
48.根据条款47所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统至少部分地基于所述确定的操作的结果来更新所述数据存储库中的负载平衡器状态信息。
49.根据条款46至48中任一项所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收启动第二工作流的第二请求;
通过至少执行下列各项来完成所述第二要求:
确定所述一组负载平衡器中的第二至少一个负载平衡器,其中所述第二至少一个负载平衡器在移除状态下;并且
确定待从所述至少一个负载平衡器移除的所述计算机实例组中的第二至少一个实例;并且
致使附加操作被执行,其中所述附加操作被配置来从所述过渡状态下的所述确定的第二至少一个负载平衡器移除所述确定的第二至少一个计算机实例。
50.根据条款49所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统确定所述请求和所述第二请求将同时发生,并重新启动被配置来执行所述第二工作流的后台进程。
51.根据条款46至50中任一项的系统,其中致使所述系统来使所述确定的操作被执行的所述指令还包括在由所述一个或多个处理器执行时致使所述系统向负载平衡服务提供所述确定的操作的指令。
52.根据条款51所述的系统,其中致使所述确定的操作被执行还包括应用程序接口调用,以将所述至少一个计算机实例分配给所述至少一个负载平衡器。
53.根据条款46至53中任一项所述的系统,其中至少部分地基于来自客户的将特定的负载平衡器添加到所述计算机实例组的应用程序请求来生成所述启动所述工作流的请求。
54.一种非暂时性计算机可读存储介质,其上存储可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
通过至少针对对应于与计算机实例组相关的负载平衡器的信息查询数据存储库来至少部分地基于过渡状态下的所述一组负载平衡器中的每个负载平衡器确定一组负载平衡器以进行更新;
确定与所述计算机实例组相关的一组计算机实例,其中所述确定的一组计算机实例与所述确定的一组负载平衡器之间的关联待更新;
确定被配置来更新所述确定的一组计算机实例与所述确定的一组负载平衡器之间的关联的操作;
致使操作被执行;并且
由于所述一组操作的执行,更新所述数据存储库。
55.根据条款54所述的非暂时性计算机可读存储介质,其中所述过渡状态指示所述计算机实例组中的至少一个计算机实例需要对所述过渡状态下的所述一个或多个负载平衡器进行更新。
56.根据条款54或55所述的非暂时性计算机可读存储介质,其中所述过渡状态包括以下状态中的至少一种:添加状态、已添加状态和移除状态。
57.根据条款54至56中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统生成被配置来更新所述确定的一组计算机实例与所述确定的一组负载平衡器之间的所述关联的所述操作的所述指令还包括致使所述计算机系统生成所述操作的指令,以使得在被执行时所述操作致使所述确定的一组计算机实例从所述确定的一组负载平衡器解除分配。
58.根据条款54至57中任一项所述的非暂时性计算机可读存储介质,其中致使所述计算机系统生成被配置来更新所述确定的一组计算机实例与所述确定的一组负载平衡器之间的所述关联的所述操作的所述指令还包括致使所述计算机系统生成所述操作的指令,以使得在被执行时所述操作致使所述确定的一组计算机实例从所述确定的一组负载平衡器分配。
59.根据条款54至58中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统执行下列各项的指令:
至少部分地基于更新与所述计算机实例组相关的负载平衡器的请求来接收终止后台进程的请求,其中所述后台进程被配置来生成所述操作;并且
重新启动所述后台进程以便处理所述请求。
60.根据条款54至59中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括指令,其在由所述一个或多个处理器执行时致使所述计算机系统至少部分地基于负载平衡服务的计算能力来确定待更新的所述计算机实例组的计算机实例的数量以包括在所述操作的特定操作中。
61.根据条款54至60中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统至少部分地基于从负载平衡服务获得的信息来确定操作顺序的指令。
图10示出根据各种实施方案的用于实现各方面的示例环境1000的各方面。如应当理解的,尽管为了说明的目的使用基于网络的环境,但是不同的环境可以适当地用于实现各种实施方案。环境包括电子客户端装置1002,该电子客户端装置1002可以包括可操作以通过适当的网络1004发送和/或接收请求、消息或信息的任何适当的装置,并且在一些实施方案中,将信息传送回装置的用户。此类客户端装置的示例包括个人计算机、移动电话、手持消息接发装置、膝上型计算机、平板电脑、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器等。网络可以包括任何适当的网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其他此类网络和/或其组合。用于这种系统的部件可以至少部分地取决于所选择的网络和/或环境的类型。用于经由这种网络进行通信的协议和部件是公知的,并且将不在此详细讨论。通过网络上的通信可以通过有线或无线连接以及其组合来实现。在本示例中,由于环境包括用于响应于此接收请求并服务于内容的web服务器1006,所以网络包括因特网,尽管对于其他网络,可以使用达到类似目的的替代装置,这对于本领域的普通技术人员将是显而易见的
说明性环境包括至少一个应用服务器1008和数据存储库1010。应当理解,可能存在可以被链接或以其他方式配置的若干应用服务器、层或其他元素、过程或部件,其可以交互以执行任务,诸如从适当的数据存储库获得数据。如本文所用的服务器可以以各种方式(诸如硬件装置或虚拟计算机系统)实现。在一些情况下,服务器可以是指正在计算机系统上执行的编程模块。如本文所用,除非上下文中另外说明或清除地指出,术语“数据存储库”是指能够存储、访问并检索数据的任何装备或装置的组合,其可以在任何标准、分布式、虚拟或聚集环境中包括数据服务器、数据库、数据存储装置和数据存储介质的任何组合和数量。应用服务器可以包括用于根据需要与数据存储库集成以执行用于客户端装置的一个或多个应用的多方面、处理用于应用的数据访问和业务逻辑的一些或全部的任何适当的硬件、软件和固件。应用服务器可以与数据存储库协作提供访问控制服务,并且能够生成包括但不限于文本、图形、音频、视频和/或不能提供给用户的其他内容的内容,其可以由web服务器以超文本标记语言(“HTML”)、可延伸标记语言(“XML”)、JavaScript、层叠样式表(“CSS”)或其他适当的客户端结构化语言的形式提供给用户。传送到客户端装置的内容可以由客户端装置处理,以一种或多种形式(包括但不限于用户可听见地、视觉上和/或通过其他感觉(包括触觉、品觉和/或嗅觉)可感知的形式)提供内容。所有请求和响应的处理以及客户端装置1002与应用服务器1008之间的内容的传递可以在本示例中由web服务器使用PHP来处理:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或其他适用的服务器端结构化语言。应当理解,web服务器和应用服务器不是必需的,并且仅仅是示例部件,因为本文讨论的结构化代码可以在任何适当的装置或主机上执行,如本文其他地方所讨论的。此外,如由单个装置执行的本文所述的操作(除非上下文中另外清除地指出)可以由可能形成分布式和/或虚拟系统的多个装置共同执行。
数据存储库1010可以包括若干单独的数据表、数据库、数据文件、动态数据存储方案和/或用于存储与本公开的特定方面相关的数据的其他数据存储机构和介质。例如,所示的数据存储库可以包括用于存储生成数据1012和用户信息1016的机构,其可以用于为生成端提供内容。还示出数据存储库包括用于存储日志数据1014的机构,其可以用于报告、分析或其他此类目的。应当理解,可以存在可能需要存储在数据存储库中的许多其他方面,诸如页面图像信息和访问权限信息,该信息可以适当地存储在上面列出的机构中的任一个中或数据存储库1010中的附加机构中。数据存储库1010可通过与其相关的逻辑来进行操作,以从应用服务器1008接收指令,并响应于此获得、更新或以其他方式处理数据。应用服务器1008可以响应于所接收的指令提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(诸如在web日志(博客)、购物应用程序、新闻服务和此类其他应用中使用的数据)可以由如本文所述的服务器端结构化语言生成,或者可以由在应用服务器上或在该应用服务器的控制下操作的内容管理系统(“CMS”)提供。在一个示例中,用户通过由用户操作的装置可以针对某类型的项目提交搜索请求。在这种情况下,数据存储库可以访问用户信息以验证用户的身份,并且可以访问目录详细信息以获得关于该类型的项目的信息。随后,信息可以返回给用户,诸如在用户能够经由用户装置1002上的浏览器查看的网页上的结果列表中。感兴趣的特定项目的信息可以在浏览器的专用页面或窗口中查看。然而,应当注意,本公开的实施方案不一定限于网页的内容,但是通常可以更普遍地适用于处理请求,其中请求不一定是对内容的请求。
每个服务器通常将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储在由服务器的处理器执行时允许服务器执行其预期功能的指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等)。用于服务器的操作系统和一般功能的合适的实现方式是已知的或可商购获得的,并且由本领域的普通技术人员,具体地根据本文的公开内容容易地实现。
在一个实施方案中,环境是利用通过通信链路使用一个或多个计算机网络或直接连接互连的若干计算机系统和部件的分布式和/或虚拟计算环境。然而,本领域的普通技术人员将理解,这种系统可以在具有比图10所示的更少或更多数量的部件的系统中同样良好地操作。因此,图10中的系统1000的描述应被视为本质上是说明性的,而不限制本公开的范围。
各种实施方案还可以在各种各样的操作环境中实现,该操作环境在一些情况下可以包括可以用于操作多个应用程序中的任一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可以包括多个通用个人计算机中的任一个,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并能够支持多种网络和消息协议的蜂窝装置、无线装置和手持装置。这种系统还可以包括用于诸如开发和数据库管理的目的而运行多个商业可用的操作系统和其他已知应用中的任一个的多个工作站。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统和能够经由网络进行通信的其他装置。这些装置还可以包括虚拟装置,诸如虚拟机、管理程序和能够经由网络进行通信的其他虚拟装置。
本公开的各种实施方案利用本领域的技术人员所熟悉的用于使用多种商业可用的协议中的任一个支持通信的至少一个网络,诸如传输控制协议/因特网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各层中操作的协议、文件传输协议(“FTP”)、通用随插即用(“UpnP”)、网络文件系统(“NFS”)、公用因特网文件系统(“CIFS”)和可路由协议组。网络可以是例如局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公共交换电话网、红外网络、无线网络、卫星网络以及其任何组合。
在利用web服务器的实施方案中,web服务器可以运行多个服务器或中间层应用程序(包括超文本传输协议(“HTTP”)服务器、FTP服务器、公共网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器)中的任一个。服务器还可以能够响应于来自用户装置的请求,诸如通过执行可以实现为以任何编程语言(诸如C、C#或C++)或任何脚本语言(诸如Ruby、PHP、Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序的一个或多个web应用程序来执行程序或脚本。服务器还可以包括数据库服务器,非限制地包括可从商购获得的那些,以及开源服务器,诸如MySQL、Postgres、SQLite、MongoDB和能够存储、检索并访问结构化或非结构化数据的其他任何服务器。数据库服务器可以包括基于表的服务器、基于文件的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
环境可以包括多种数据存储库和如上面所讨论的其他存储器和存储介质。这些可以驻留在多种位置中,诸如在本地到计算机中的一个或多个(和/或驻留在计算机中的一个或多个中)或者跨网络远离计算机中的任一个或所有的存储介质上。在一组特定实施方案中,信息可以驻留在本领域的技术人员所熟悉的存储区域网络(“SAN”)中。类似地,用于执行归因于计算机、服务器或其他网络装置的功能的任何必要文件可以适当地本地和/或远程存储。在系统包括计算机化装置的情况下,每个这种装置可以包括可以经由总线电耦合的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此类系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光存储装置和固态存储装置(诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)),以及可移动介质装置、存储卡、闪存卡等
此类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线)、红外通信装置等)以及如上所述的工作存储器。计算机可读存储介质读取器可以与表示远程、本地、固定和/或可移动存储装置以及用于临时和/或更永久地包含、存储、传送并检索计算机可读信息的存储介质的计算机可读存储介质连接或被配置来接收该计算机可读存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或网络浏览器。应当理解,替代实施方案可以具有与上述不同的许多变化。例如,还可以使用定制硬件并且/或者特定元件可以在硬件、软件(包括便携式软件,诸如小应用程序)中或两者中实现。此外,可以采用到其他计算装置(诸如网络输入/输出装置)的连接。
用于包含代码或代码的部分的存储介质和计算机可读介质可以包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,例如但不限于在用于存储和/或传输信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术(包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、闪存或其他存储技术)中实现的易失性和非易失性、可移除和不可移除介质、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储器或其他磁存储装置或任何其他介质,其可以用于存储所期望的信息并且可以由系统装置访问。基于本文中提供的公开和教导,本领域的普通技术人员将会意识到实现各种实施方案的其他方式和/或方法。
因此,说明书和附图被视为是说明性的而不是限制性的意义。然而,将显而易见的是,在不脱离如权利要求中所阐述的本发明的更广泛的精神和范围的情况下,可以进行各种修改和改变。
其他变型在本公开的精神内。因此,虽然所公开的技术易于进行各种修改和替代构造,但是其某些例示的实施方案在附图中示出,并且在上面已详细地描述。然而,应当理解,不旨在将本发明限制为所公开的具体形式或多种形式,但是相反地,其目的在于覆盖落在本发明的精神和范围内的所有修改、替代构造和等效物(如所附权利要求中所限定的)。
在描述所公开的实施方案的情况下(特别是在所附权利要求的情况下)使用术语“一(a)”和“一个(an)”和“所述(the)”以及类似的指示物应被解释为覆盖单数和复数,除非本文另外说明或与上下文明显矛盾。术语“包含”、“具有”,“包括”和“含有”将被解释为开放式术语(即,意指“包括但不限于”),除非另有说明。术语“连接”在未经修改且参考物理连接时应被解释为部分或全部包含在其中、附接到或接合在一起,即使存在某物介入。本文中值的范围的表述仅旨在充当单独地参考落在范围内的每个单独值的速记方法,除非本文另有说明,并且每个单独值并入到本说明书中,如同在本文中单独阐述一样。术语“组”(例如,“一组项目”)或“子集”的使用(除非本文另外说明或与上下文矛盾)应被解释为包括一个或多个构件的非空集合。此外,除非另有说明或与上下文相矛盾,否则对应组的术语“子集”不一定表示该对应组的适当子集,但子集和对应组可以相等。
连接语言(诸如形式“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中的至少一个中的每一个。
本文所述的过程的操作可以以任何合适的顺序执行,除非本文另外说明或与上下文明显矛盾。文所述的过程(或其变型和/或组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以通过其硬件或组合实现在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。
本文提供的任何和所有示例或示例性语言(例如,“诸如”)的使用仅旨在更好地说明本发明的实施方案,并且不对本发明的范围构成限制,除非另有声明。说明书中的语言不应被理解为指示任何未要求保护的元件对于本发明的实践是必要的。
本文描述本公开的实施方案,包括发明人已知的用于实施本发明的最佳模式。在阅读前面的描述之后,这些实施方案的变型对于本领域的普通技术人员来说可能变得显而易见。本发明人期望技术人员适当地采用此类变型,并且发明人旨在以不同于本文具体描述的方式实践本公开的实施方案。因此,本公开的范围包括如由适用的法律所允许的所附权利要求中所阐述的主题的所有修改和等效物。此外,其所有可能的变型中的上述元件的任何组合由本公开的范围所涵盖,除非本文另外说明或与上下文明显矛盾。
本文引用的所有参考文献(包括出版物、专利申请和专利)以引用方式并入文本,其程度如同每个参考文献被单独地且具体地指明以引用方式并入并且其全部内容在此被阐述。

Claims (15)

1.一种计算机实现的方法,其包括:
在被配置有可执行指令的一个或多个计算机系统的控制下,
接收更新与自动扩展组相关的负载平衡器的请求,其中所述自动扩展组包括一组计算机实例,所述一个或多个计算机系统被配置来根据由客户确定的一个或多个属性管理所述计算机实例的大小;
使用所述请求中所指示的所述负载平衡器的标识符来更新负载平衡器数据库,并且在所述负载平衡器数据库中将状态分配给所述负载平衡器;
执行后台进程,所述后台进程被配置来通过至少修改所述一组计算机实例与所述负载平衡器之间的关联来完成所述请求的至少一部分;
更新所述负载平衡器数据库中的所述负载平衡器的所述状态;以及
确定分配给所述负载平衡器的所述一组计算机实例中的至少一个计算机实例已通过健康检查。
2.根据权利要求1所述的计算机实现的方法,其中所述更新所述负载平衡器的请求包括将所述负载平衡器添加到所述自动扩展组的添加请求。
3.根据权利要求1所述的计算机实现的方法,其中所述更新所述负载平衡器的请求包括从所述自动扩展组移除所述负载平衡器的移除请求。
4.一种系统,其包括:
一个或多个处理器;
包括指令的存储器,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收将负载平衡器添加到组织为计算机实例组的一组计算机实例的请求;
确定负载平衡器数据存储库缺少与所述请求中所指示的所述负载平衡器相关的条目;
在所述负载平衡器数据存储库中生成包含所述负载平衡器的标识符和所述负载平衡器的状态的条目;并且
执行被配置来将所述一组计算机实例分配给所述负载平衡器的后台进程,其中将所述一组计算机实例分配给所述负载平衡器致使所述负载平衡器将网络流量引导到所述计算机实例。
5.根据权利要求4所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
确定分配给所述负载平衡器的所述一组计算机实例中的至少一个计算机实例已通过健康检查;并且
在所述负载平衡器数据存储库中将所述负载平衡器的所述状态更新为服务中。
6.根据权利要求4所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收从所述计算机实例组移除所述负载平衡器的第二请求;并且
致使所述后台进程将所述一组计算机实例解除分配给所述负载平衡器,其中将所述一组计算机实例解除分配给所述负载平衡器致使所述负载平衡器不再将网络流量引导到所述计算机实例。
7.根据权利要求6所述的系统,其中接收从所述计算机实例组移除所述负载平衡器的所述第二请求还包括在所述负载平衡器数据存储库中将所述负载平衡器的所述状态更新为移除状态,其中所述移除状态指示所述后台进程在将所述一组计算机实例解除分配给所述负载平衡器的过程中。
8.根据权利要求6所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统由于所述后台进程将所述一组计算机实例解除分配给所述负载平衡器,移除与所述负载平衡器相关的负载平衡器数据存储库条目。
9.根据权利要求4所述的系统,其中所述存储器还包括指令,所述指令在由所述一个或多个处理器执行时致使所述系统:
接收更新与所述计算机实例组相关的第二负载平衡器的第二请求;
确定所述后台进程目前正处理所述请求;并且
重新启动所述后台进程,以便致使所述后台进程完成所述请求和所述第二请求。
10.一种非暂时性计算机可读存储介质,其上存储可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时致使所述计算机系统至少:
接收更新与计算机实例组相关的一个或多个负载平衡器的请求;
至少部分地基于所述请求中所指示的所述一个或多个负载平衡器来更新负载平衡器数据存储库,所述更新至少包括修改分配给所述负载平衡器数据存储库中的所述一个或多个负载平衡器中的每个负载平衡器的状态;并且
致使后台进程完成所述请求。
11.根据权利要求10所述的非暂时性计算机可读存储介质,其中致使所述计算机系统接收所述更新与所述计算机实例组相关的一个或多个负载平衡器的请求的所述指令还包括致使所述计算机系统执行下列各项的指令:
确定对所述请求中所指示的所述一个或多个负载平衡器的所述更新包括将所述一个或多个负载平衡器中的至少一个负载平衡器添加到所述计算机实例组;并且
将所述计算机实例组中的一组计算机实例分配给所述至少一个负载平衡器。
12.根据权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统生成指示响应于所述接收的请求执行的一组操作的审计日志的指令。
13.根据权利要求10所述的非暂时性计算机可读存储介质,其中致使所述计算机系统接收所述更新与计算机实例组相关的一个或多个负载平衡器的请求的所述指令还包括致使所述计算机系统执行下列各项的指令:
确定对所述请求中所指示的所述一个或多个负载平衡器的所述更新包括将所述一个或多个负载平衡器中的至少一个负载平衡器移除到所述计算机实例组;并且
将所述计算机实例组中的一组计算机实例解除分配给所述至少一个负载平衡器。
14.根据权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统执行下列各项的指令:
接收应用程序接口(API)调用,所述API调用被配置来获得与所述计算机实例组相关的负载平衡器的列表;并且
响应于所述API调用来提供对所述负载平衡器数据存储库的查询的结果,所述查询被配置来获得与所述计算机实例组相关的所述负载平衡器的列表。
15.根据权利要求10所述的非暂时性计算机可读存储介质,其中所述指令还包括在由所述一个或多个处理器执行时致使所述计算机系统对所述计算机实例组中的至少一个计算机实例执行健康检查的指令,其中所述至少一个计算机实例与所述一个或多个负载平衡器中的至少一个负载平衡器相关。
CN201680024791.9A 2015-04-30 2016-04-29 管理与自动扩展组相关的负载平衡器 Active CN108112268B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US14/701,513 US10341426B2 (en) 2015-04-30 2015-04-30 Managing load balancers associated with auto-scaling groups
US14/701,513 2015-04-30
US14/701,518 2015-04-30
US14/701,522 2015-04-30
US14/701,522 US10038640B2 (en) 2015-04-30 2015-04-30 Managing state for updates to load balancers of an auto scaling group
US14/701,518 US10412020B2 (en) 2015-04-30 2015-04-30 Background processes in update load balancers of an auto scaling group
PCT/US2016/030279 WO2016176650A1 (en) 2015-04-30 2016-04-29 Managing load balancers associated with auto-scaling groups

Publications (2)

Publication Number Publication Date
CN108112268A true CN108112268A (zh) 2018-06-01
CN108112268B CN108112268B (zh) 2022-03-22

Family

ID=56015118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024791.9A Active CN108112268B (zh) 2015-04-30 2016-04-29 管理与自动扩展组相关的负载平衡器

Country Status (4)

Country Link
EP (1) EP3289458A1 (zh)
CN (1) CN108112268B (zh)
CA (1) CA2984191C (zh)
WO (1) WO2016176650A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968422A (zh) * 2018-10-01 2020-04-07 Sap欧洲公司 用于集成场景的负载分发

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
CN109729136A (zh) * 2018-05-14 2019-05-07 网联清算有限公司 代理服务器发布方法和发布服务器
CN112035243A (zh) * 2019-06-04 2020-12-04 顺丰科技有限公司 数据查询方法、装置、终端及介质
CN112416559B (zh) * 2020-11-30 2024-06-04 中国民航信息网络股份有限公司 调度策略更新方法、服务调度方法、存储介质及相关装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040402A1 (en) * 2000-09-28 2002-04-04 International Business Machines Corporation System and method for implementing a clustered load balancer
CN101447989A (zh) * 2007-11-28 2009-06-03 阿尔卡特朗讯公司 用于改进的高可用性组件实现的系统和方法
CN102119512A (zh) * 2008-08-11 2011-07-06 微软公司 分布式负载平衡器
US20120066371A1 (en) * 2010-09-10 2012-03-15 Cisco Technology, Inc. Server Load Balancer Scaling for Virtual Servers
US20130138813A1 (en) * 2011-11-28 2013-05-30 Microsoft Corporation Role instance reachability in data center
CN103401801A (zh) * 2013-08-07 2013-11-20 盛科网络(苏州)有限公司 动态负载均衡的实现方法及装置
US20140089500A1 (en) * 2012-09-25 2014-03-27 Swaminathan Sankar Load distribution in data networks
US20140169168A1 (en) * 2012-12-06 2014-06-19 A10 Networks, Inc. Configuration of a virtual service network
US20140304414A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for dynamically expanding load balancing pool
US20140380087A1 (en) * 2013-06-25 2014-12-25 International Business Machines Corporation Fault Tolerance Solution for Stateful Applications
US20150058857A1 (en) * 2011-07-15 2015-02-26 Mark Henrik Sandstrom Concurrent Program Execution Optimization

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590989B2 (en) * 2005-07-08 2009-09-15 Microsoft Corporation Load balancer management
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8533337B2 (en) * 2010-05-06 2013-09-10 Citrix Systems, Inc. Continuous upgrading of computers in a load balanced environment
US8978035B2 (en) * 2012-09-06 2015-03-10 Red Hat, Inc. Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020040402A1 (en) * 2000-09-28 2002-04-04 International Business Machines Corporation System and method for implementing a clustered load balancer
CN101447989A (zh) * 2007-11-28 2009-06-03 阿尔卡特朗讯公司 用于改进的高可用性组件实现的系统和方法
CN102119512A (zh) * 2008-08-11 2011-07-06 微软公司 分布式负载平衡器
US20120066371A1 (en) * 2010-09-10 2012-03-15 Cisco Technology, Inc. Server Load Balancer Scaling for Virtual Servers
US20150058857A1 (en) * 2011-07-15 2015-02-26 Mark Henrik Sandstrom Concurrent Program Execution Optimization
US20130138813A1 (en) * 2011-11-28 2013-05-30 Microsoft Corporation Role instance reachability in data center
US20140089500A1 (en) * 2012-09-25 2014-03-27 Swaminathan Sankar Load distribution in data networks
US20140169168A1 (en) * 2012-12-06 2014-06-19 A10 Networks, Inc. Configuration of a virtual service network
US20140304414A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for dynamically expanding load balancing pool
US20140380087A1 (en) * 2013-06-25 2014-12-25 International Business Machines Corporation Fault Tolerance Solution for Stateful Applications
CN103401801A (zh) * 2013-08-07 2013-11-20 盛科网络(苏州)有限公司 动态负载均衡的实现方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
范国闯等: "Web应用服务器自适应负载平衡服务", 《软件学报》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110968422A (zh) * 2018-10-01 2020-04-07 Sap欧洲公司 用于集成场景的负载分发

Also Published As

Publication number Publication date
CA2984191C (en) 2021-07-27
CN108112268B (zh) 2022-03-22
CA2984191A1 (en) 2016-11-03
WO2016176650A1 (en) 2016-11-03
EP3289458A1 (en) 2018-03-07

Similar Documents

Publication Publication Date Title
CN105493099B (zh) 用于托管虚拟机的加密证实资源
US11336583B2 (en) Background processes in update load balancers of an auto scaling group
US11172022B2 (en) Migrating cloud resources
US10148757B2 (en) Migrating cloud resources
CN102571932B (zh) 为在线应用用户提供状态服务
US10341426B2 (en) Managing load balancers associated with auto-scaling groups
JP2021526751A (ja) 自己監視ブロックチェーンのための安全な合意に基づくエンドースメント
US10038640B2 (en) Managing state for updates to load balancers of an auto scaling group
CN109804352A (zh) 受管理的容器实例
CN107580083A (zh) 一种容器ip地址分配的方法和系统
CN107111585A (zh) 包括多个计算子系统的片上系统
CN109617933A (zh) 利用表单填充代理应用的基于网络的单点登录
CN108112268A (zh) 管理与自动扩展组相关的负载平衡器
EP3488584A1 (en) Usage tracking in hybrid cloud computing systems
CN108370379A (zh) 带有隧道的设备管理
US11080097B1 (en) User defined logical spread placement groups for computing resources within a computing environment
CN109542862A (zh) 用于控制文件系统的挂载的方法、装置和系统
Wang et al. MetaOJ: A massive distributed online judge system
US20170163564A1 (en) Discovering resource availability across regions
US10924297B2 (en) Agent system including an information processing device for executing an agent
US11941543B2 (en) Inferencing endpoint discovery in computing systems
CN114285743B (zh) 更新配置信息的方法、装置、电子设备及存储介质
CN109088913A (zh) 请求数据的方法和负载均衡服务器
US20230153450A1 (en) Privacy data management in distributed computing systems
US20230153457A1 (en) Privacy data management in distributed computing systems

Legal Events

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