协调容器布置和执行的服务的实施的制作方法

文档序号:11890452阅读:260来源:国知局
协调容器布置和执行的服务的实施的制作方法与工艺

本申请要求2014年3月28日提交的、题为“协调容器布置和执行的服务的实施(IMPLEMENTATION OF A SERVICE THAT COORDINATES THE PLACEMENT AND EXECUTION OF CONTAINERS)”的共同未决的美国专利申请第14/229,702号的优先权,所述申请的内容以引用的方式全部并入本文中。

背景

世界各地的公司、组织和个人操作计算机网络,所述计算机网络可操作地使计算装置互连来支持业务、提供资源以及传递服务。这些相关方中的许多方从服务提供商接收对软件应用的访问,所述服务提供商可主控世界各地的数据中心中的物理计算装置。最近,服务提供商已经提供了虚拟化系统以便提供对用于这些公司的软件应用的访问。然而,常规虚拟化技术(如虚拟机)受到缩减服务请求所需的资源的能力和分摊用于起转和拆解虚拟计算机系统的成本的基本限制。例如,存在许多应用的情况下,虚拟计算机系统的使用可能相对不太频繁。为了使虚拟机能够服务请求,必须将虚拟机维持在操作状态,这需要用于计算机系统的操作系统的计算资源以及其他资源(例如,网络资源)。当此类计算机系统未充分利用时,在任何给定时间上都会只使用全部可用资源的一部分,并且分配给那些计算机系统的资源中的至少一些资源一般不能用于其他用途。

附图简述

将参照附图来描述根据本公开的各种实施方案,在附图中:

图1是可实施各种实施方案的环境的说明性示例;

图2是可实施各种实施方案的框图的说明性示例;

图3是根据至少一个实施方案的环境的说明性示例;

图4是根据至少一个实施方案的、用于解析域名系统查询的过程的说明性示例;

图5是根据至少一个实施方案的、用于确定虚拟资源状态的过程的说明性示例;

图6是根据至少一个实施方案的、用于使DNS信息与记录资源相关联的过程的说明性示例;

图7是根据至少一个实施方案的环境的说明性示例;以及

图8示出可实施各种实施方案的环境。

详述

在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,从而提供实施方案的透彻理解。然而,对本领域的技术人员来说还将明显的是,没有具体细节的情况下也可以实行实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。

本文所描述和建议的技术包括协调资源(如容器)的布置和执行的服务的实施,从而使处理请求的速度增加、更为有效地使用计算资源并且使延时减少。当容器不运行时,除磁盘空间之外,没有资源被利用,例如,终止的容器(未维持在操作状态中的容器)不使用任何资源,如中央处理单元(CPU)或存储器。

示例性实施方案包括web服务,所述web服务利用域名系统(DNS)、负载平衡器、数据库和容器来提供计算机资源和系统的虚拟化,而无需与虚拟机相关联的开销。当DNS服务器接收对web服务上所主控的站点的DNS查找时,所述服务器被配置来确定最佳区域(例如,就延时而言)以便路由针对资源的用户请求、向在此区域中主控服务的负载平衡器传输较小消息(如用户数据报协议包)并且随后响应于DNS查找。负载平衡器可被配置来使用DNS服务的通知来启动容器,从而使得在最终用户做出其第一GET请求、PUT请求或其他请求时,容器已经被实例化。在一些示例性实施方案中,因为一个用户请求通常指示有可能做出额外请求,所以容器可在指定时期上维持操作状态,并且负载平衡器可将容器状态的信息维持在数据库中。DNS服务器和负载平衡器还可被配置来使用此信息来将额外请求路由至已经在运行的容器。当不再需要容器时,负载平衡器、保持容器的操作系统或其他系统部件可启动容器的终止或去实例化,从而使得计算资源、存储器资源和网络资源仅在需要它们时被使用并且能够根据需要以非常快的速度进行实例化。

域名系统(DNS)服务可被配置来向客户提供用以将最终用户路由至一个或多个通信网络应用的方法。例如,DNS服务可被配置来将人类可读名称(如统一资源定位符(URL))翻译成计算机系统可用来在互联网上彼此连接的数字互联网协议(IP)地址。因此,DNS服务可被配置来将访问由计算资源服务提供者提供的一个或多个服务的请求连接到在数据区内运作的基础设施。

示例性实施方案包括通过DNS服务来处理客户端装置DNS查询的方法和系统,其中DNS查询包括与虚拟机相关联的标识符或独特标识符。在一些实施方案中,DNS查询可用来启动消息向客户端装置所请求访问的资源的传输,从而在实际请求从客户端装置发送之前激活或唤醒此资源(使此资源从消耗更少资源的暂停状态中脱离出来)。

客户端计算装置可被配置来在网络上与一个或多个服务提供者和/或网络提供者通信,从而解析客户端装置所传输的DNS查询,其中服务提供者对应于与DNS服务提供者相关联的计算装置。服务提供者可与各种计算资源相关联,所述计算资源包括任何数量的存在点(PoP)接口,所述PoP接口对应于通信网络上的节点,例如像容纳服务器、路由器等的物理位置。PoP位置在地理上可分散于物理通信网络上,从而供给网络的客户端装置。服务提供者还可包括DNS部件,所述DNS部件可包括用来解析来自客户端装置的DNS查询的DNS服务器计算装置。DNS部件还可包括促进通信(如负载平衡)的硬件和/或软件部件。服务提供者还可包括用来维持关于网络资源、装置和/或网络部件的状态的信息的资源高速缓存部件。

客户端装置可访问服务提供者所提供的服务,所述服务可包括对计算机服务(如容器、虚拟机、自动定标群组、基于文件的数据库存储系统、块存储服务、冗余数据存储服务、数据存档服务、数据仓储服务、用户访问管理服务、内容管理服务和/或其他此类计算机系统服务)的访问。额外服务可包括对计算机系统服务(如目录服务)和资源(如与目录服务相关联的用户资源、策略资源、网络资源和/或存储资源)的访问。在一些分布式和/或虚拟化计算机系统环境中,与计算机服务相关联的资源可以是物理装置、虚拟装置、物理装置和/或虚拟装置的组合或者其他此类装置实施方案。

网络提供者可包括经由许多虚拟化方法来主控应用的网络部件,如虚拟机、虚拟资源或容器。所述网络部件可操作地与计算装置互连或者可包括计算装置,所述计算装置包括用来提供多个虚拟机或用来动态地引发虚拟机的创建所必需的硬件和软件,如容器或虚拟机。网络部件还可用于与其他网络装置(如客户端装置、服务提供者、DNS服务等)通信或者包括用于与所述其他网络装置通信的软件/硬件部件;其中所述网络部件可用来选择虚拟化机器以便向DNS服务器提供信息并且促进路由请求。

当客户端装置的客户和网络提供者并不以其他方式进行通信时,在客户与网络提供者之间的通信过程可以开始于注册过程,从而访问网络提供者使其可用的资源。注册过程可包括许多类型的信息,例如,向网络提供者的注册过程可包括指定客户端装置的硬件和/或软件的类型,配置安全参数、计费、服务质量、识别信息等等。如果服务提供者还不是DNS处理授权机构,那么客户端装置的客户还可向服务提供者注册类似功能,并且可请求服务提供者来处理针对域的DNS查询并且管理网络提供者使其可用的资源。

客户端装置可使用资源标识符(如统一资源标识符(URI),也称为通用资源标识符)或更具体地使用URL来与网络提供者的部件或计算装置交互。URL是一般作为对资源(如网页)的引用的特定字符串。URL提供类似于指向通信网络的不同网络部件的指令的许多条信息。URL一般包括协议、主机和资源的可能路径,如标识符、页面地址、文件夹名称、机器名称以及更多信息,例如:

http://www.domain_name.com/path_information

URL可包括额外信息,如查询、端口编号或与特定资源相关联的其他细节。

通常包括字母数字字符的域名会被翻译成针对特定资源的数字互联网协议(IP)地址。URL的域名部分可包括额外信息,如对应于由网络提供者使用来管理资源的标识符的独特标识符。例如,替代上文呈现的示例性URL,包括在URL中的独特标识符可读成如下形式:

http://www.unique.domain_name.com/path_information

在其他示例性实施方案中,URL的域名部分可包括额外信息,以便直接或间接地识别服务级信息、财务信息、地理信息、存在点信息等。例如,URL可读成如下形式:

http://www.billing.unique.host_domain.com/path_information

输入到浏览器(如客户端)地址栏中的URL可在DNS查询中由用户计算机传输至DNS服务器,所述DNS服务器一般被配置来将URL中提供的域信息(DNS查询的DNS部分)翻译成IP地址。替代的示例性实施方案可包括在用户点击具有超链接的项目之后提交的DNS查询、做出查询的自动化过程等。在解析DNS查询后,DNS服务器向客户端装置传输响应,从而提供负载平衡器的IP地址。然而,在DNS服务器从客户端装置接收针对资源的查询的同时或几乎同时,DNS服务器向负载平衡器传输消息,从而请求负载平衡器激活已请求资源所处的虚拟资源。在客户端装置接收IP地址的同时或几乎同时(类似地在容器已经被激活的同时或几乎同时),客户端装置向负载平衡器传输针对资源的请求。负载平衡器将所述请求转发至虚拟资源在其中可操作地互连的虚拟资源存储,并且虚拟资源和负载平衡器将所述请求回送给用户。应理解,DNS服务器可以是大型系统(如DNS服务系统或DNS处理系统)的部件。

例如,用户可能想要从图像数据库网站检索图像。在这种情况下,用户将图像数据库网站的URL输入到其浏览器中以便传输DNS查询并且等待响应;此DNS查询和解析过程不能有效地对用户可见。在接收到用户请求的URL的IP地址之后,用户的装置向代理服务器传输针对图像的请求,所述代理服务器可以是任何中间服务器,如负载平衡器。因为已请求资源被存储在容器服务中的容器中,所以负载平衡器可确定已请求数据的位置,并且将所述数据极快地提供给用户。

图1是用于实施根据各种实施方案的各方面的环境100的示例性实施方案。如将了解的,尽管出于解释目的而使用互联网环境100,但是可以视情况使用不同环境来实施各种实施方案。所述环境包括电子客户端装置102,所述电子客户端装置102可以包括可操作来在适当网络101上发送和/或接收请求、消息或信息并且在一些实施方案中将信息传回给装置用户的任何适当装置。此类客户端装置的示例包括个人计算机、蜂窝电话、手持式消息接发装置,膝上型计算机、平板计算机、机顶盒,个人数据助理、埋置式计算机系统、电子书阅读器等。网络可包括任何适当网络,包括内联网、互联网、蜂窝网、局域网、卫星网或任何其他此类网络和/或其组合。用于此类系统的部件可以至少部分地取决于所选网络和/或环境的类型。经由此类网络来通信的协议和部件是众所周知的,并且本文将不再详细论述。网络上的通信可以通过有线或无线连接和其组合来实现。

示例性实施方案包括经由网络101(如互联网)而连接到域名系统(DNS)服务器105的客户端装置102。当客户端装置的用户将通用资源定位符(URL)输入到客户端装置上的web浏览器(客户端)中时,这便会激活DNS解析器(未图示)。DNS解析器是DNS的客户端侧并且被配置来启动和排序客户端查询,从而使被查询的资源达到完全翻译,例如,将域名翻译成互联网协议(IP)地址。这个过程对用户是透明的。

返回图1,DNS解析器将DNS查询106传输至DNS服务器,从而接收已请求域的IP地址。当DNS服务器接收DNS查询时,DNS服务器被配置来同时或几乎同时执行至少两个操作。在替代的示例性实施方案中,多个操作可按照任意顺序和时序布置来执行。第一操作是用来将消息134发送至负载平衡器110,并且第二操作是用来解析DNS查询并且回复(下文详细描述的)客户端装置。在第一操作的示例性实施方案中,DNS服务器将消息传输至可以是硬件或软件的负载平衡器。所述消息可包括用户数据报协议(UDP)消息,也称为数据报,其可以是1kB至2kB的短消息,用以通知负载平衡器或负载平衡层针对容器中的资源正在做出或将要做出请求。所述消息意图请求在预期接收到所述请求时将容器实例化,从而更有效地处理所述请求。

替代的示例性实施方案可传输更加复杂的消息,诸如转发DNS查询本身。在替代的示例性实施方案中,DNS服务器还被配置来有选择性地提供消息作为与容器相关联的URI或URL的结果,并且还可在标识符不与任何容器相关联时不发送消息。另外的示例性实施方案包括消息(如消息134),其会传输至被配置来接收此类型消息的任何网络部件,从而启用资源。例如,资源可以是高速缓冲存储器中的项目,在这种情况下,可将消息传输至块级数据存储服务,从而请求所述服务将图像加载到存储器中。替代的示例性实施方案可包括从第一位置传输至并不涉及中间部件的后端网络部件的消息。

负载平衡器110一般是在代理服务器或中间网络部件上运行的软件应用或者是用于多个目的(包括用于将请求转发至后端服务器或者客户端提供的网络部件或另一个网络部件)的硬件负载平衡器。在本示例性实施方案中,负载平衡器从DNS服务器接收消息,从而请求激活存储有客户端装置所请求的资源的容器。一般来说,负载平衡器具有许多额外特征,这些特征可类似地用于本文所呈现的示例性实施方案中;例如,负载平衡器可按优先次序来考虑服务器的激活、服务器直接返回、健康检查、HTTP高速缓存、优先级排队等。在图1的示例性实施方案中,负载平衡器基于资源名称而知晓存储资源的容器的位置,所述资源可通过独特标识符、统一资源指示符(URI)、统一资源定位符(URL)等来识别。

负载平衡器110将至少包括URI或URL的消息138转发至容器121,所述容器121可以是存储在资源服务120中的数千或数百万个容器中的一个。消息138通知容器资源将被请求并且需要将容器布置在操作状态(启动)中,从而有效地响应于迫切请求。在接收到消息之后,容器在操作状态中启动或实例化。在一些示例性实施方案中,一旦容器被实例化,容器便具有其自己的IP地址,所述IP地址可以是公共IP地址或私有IP地址。为了将流量转发至容器,负载平衡器在负载平衡器的本地数据库中或可操作地与负载平衡器互连的本地数据库中执行搜索,从而确定新近实例化容器的公共IP地址或私有IP地址。

在一些示例性实施方案中,如果负载平衡器或DNS服务器知道被请求的资源,那么在多个资源存储在容器中的情况下,容器可被配置来定位确切资源131。容器一般可包含任何类型的资源,例如,静态网站、web资源、网站、图像、web表单、可执行代码、应用编程接口(API)等的复本。在一些示例性实施方案中,数据或资源可由来自不同位置(如网络装置)的容器访问。

返回图1,如上文所述,DNS服务器近乎同时执行两个操作。第二操作包括解析DNS查询并且将回复消息107从DNS服务器传输至客户端装置,从而提供已请求资源的IP地址。在接收到由客户端装置请求的IP地址之后,客户端装置可传输针对指定资源的请求消息132。在本示例性实施方案中,请求通过中间网络部件(负载平衡器)而从客户端发送,所述中间网络部件随后将请求141转发至激活的容器。在替代的示例性实施方案中,可将请求直接提供给容器或资源服务,或者可经由两个或更多个中间服务器或代理服务器传输。当容器接收针对资源131的请求时,容器便立即经由负载平衡器回送请求142,所述负载平衡器继而将请求133提供给客户端装置。

图2是示出虚拟机225和容器资源245的框图200的说明性示例。一般来说,虚拟机是在像物理机一样执行程序的机器(即,计算机)上进行的软件实现方式的虚拟化。传统的虚拟化需要每个虚拟机的完整操作系统图像。虚拟机(VM)一般通过虚拟化装置和网络协议从运行主机操作系统226的主机机器获得对资源的访问。虚拟机一般是资源粗放型的,并且主机机器在任何给定时间上仅可运行有限数量的VM。对于系统虚拟机来说,每个系统虚拟机维持完整的操作系统227a至227c、完整的资源集合228a至228c和适用于这种特定虚拟机的任何进程229a至229c。

例如,出于处理请求的目的,可将用于处理请求的虚拟机实例化。具体地说,出于服务请求的特定目的,物理主机用来将虚拟机实例化。当所述请求由物理主机或与物理主机通信的另一个计算机系统接收时,物理主机从数据存储装置访问信息,所述信息使得物理主机能够将包括适合于处理请求的应用的虚拟机实例化。当虚拟机不再需要与所述请求连接时,可将虚拟机去实例化。物理主机可将分配给虚拟机的计算资源解除分配,从而使得计算资源可用于其他目的,诸如用于其他虚拟机。以此方式,当虚拟机不用来服务请求时,物理主机便避免将计算资源专用于虚拟机。假使接收到未来请求,物理主机可以视情况将至少一个虚拟机实例化。

容器245是在单个控制主机246上用于运行多个隔离系统的操作系统级虚拟化方法(在本文称为一个容器或多个容器)。具有单个操作系统(OS)的容器的示例性实施方案通常更加有效,因为容器虚拟化会隔离客体但并不试图将主机机器的硬件虚拟化。代替硬件虚拟化,容器虚拟化会产生用于每个虚拟环境的、可使用用户工具(如内核)运行的容器,如应用进程248a至248g,所述用户工具可执行资源管理并且提供进程隔离,从而使得每个容器将其自己的文件系统、进程、存储器、装置等维持在同一内核下。容器的示例性实施方案可维持和共享单个OS以及其他资源247(例如,二进制文件、库资源等)。容器的实施方案与主机机器运行在同一内核上,但是如果需要的话,可运行不同的包树(package tree)或分布。由于容器一般是从同一主机OS部署,因而容器创建和维护明显比虚拟机的创建和维护更为简单。

在一些实施方案中,单件式硬件(例如,计算机或服务器)可运行数千个容器,每个容器共享处于物理器具上的磁盘上的内核;所述硬件上的容器共享机器的所有资源(例如,存储器、CPU等)。容器所带来的减少的额外开销产生能够创建和提供大量容器(例如,成百上千个)的额外优点,并且每个容器可具有较快的启动和关闭速度。在一些示例性容器中,对整个系统做出的改变(如主机更新)在每个容器中是可见的。容器以如下方式配置:容器可按需要或基于来自用户或可操作地互连的装置的请求而被实例化,可根据命令来终止或休眠,并且可再次重新实例化,从而使得当容器不运行时,除主机机器上的硬盘驱动器空间之外,它几乎不消耗资源。虽然广泛使用容器用于说明目的,但是本文所呈现的技术可用于其他资源,例如像按需要被实例化的虚拟机。本申请以引用的方式出于所有目的结合2013年8月12日提交的、题为“根据请求的计算机系统实例(PER REQUEST COMPUTER SYSTEM INSTANCE)”的美国专利申请第13/964,977号的全部公开内容。

图3是示出用来加热高速缓冲存储器的域名系统(DNS)查询的环境300的说明性示例。如所知的,高速缓冲存储器是网络部件,其被配置来以透明的方式存储信息或数据,从而使得针对信息或数据的未来请求可以按照较快的方式来提供。支持网络或网络部件(如服务器)的任何层级下的高速缓冲存储器的挑战之一在于使高速缓冲存储器保持最新(新鲜)和非空(加热)状态,尤其是在客户端装置的客户未做出针对资源或信息的请求时。

加热的高速缓冲存储器允许对客户请求做出快速响应,并且缓解在做出针对信息的请求并且高速缓冲存储器必须从非操作状态启动时发生的延时。在一些示例性实施方案中,如果高速缓冲存储器为空或处于非操作状态(冷的),那么在接收到客户请求或应用请求之后,可能发生性能问题,如延时和带宽的减少。维持加热的高速缓冲存储器会提供许多益处,包括(例如)减少对卷或数据库进行新查询的执行时间,以及每次卷或数据库的高速缓冲存储器启动的情况下,在所述高速缓冲存储器处接收相同或类似查询时会提高性能。

重新加载(加热)高速缓冲存储器的示例性实施方案包括服务器确定所述服务器的卷或可操作地与所述服务器互连的数据库是否包含先前记录的数据或文件。当卷包含先前记录的信息时,服务器可被配置来将此信息加载到高速缓冲存储器中,从而将高速缓冲存储器维持在非空状态中。

在图3的示例性实施方案中,客户端装置302的客户可经由网络301而将DNS查询306传输至DNS服务器305,从而请求与URL相关联的IP地址。几乎同一时刻或同时,DNS服务器被配置来向代理服务器330传输请求将高速缓冲存储器实例化的消息334,并且解析DNS查询并向客户端装置提供包括IP地址的消息307。通向代理服务器330的DNS消息334的示例性实施方案可包括用户数据报协议(UDP)消息,也称为数据报,其可以是1kB至2kB的短消息,用以通知高速缓冲存储器335针对信息的请求将要到来,或者是更长的数据报,用以从数据库336请求高速缓冲存储器预加载文件337。数据库336和高速缓冲存储器335可操作地直接互连或者经由额外网络部件而间接地互连。在此类示例性实施方案中,当传输通向代理服务器的、针对文件的客户端请求332时,代理服务器被配置来以有效的方式提供请求333,因为高速缓冲存储器是加热的并且预加载有已请求的信息。预热或加热高速缓冲存储器可包括预热快速虚拟机、数据文件、存储系统、数据库或虚拟计算机系统。应知道的是,代理服务器可以是处于DNS与客户端之间的任何中间服务器,例如,代理服务器可以是负载平衡器或者包括负载平衡层。

在替代的示例性实施方案中,DNS服务器处的高速缓存可在从客户端装置接收DNS查询之后进行DNS解析过程期间发生。可将所述请求或查询记录高速缓存一段时间,被称为高速缓存有效期或生存时间,从而减少网络开销并且在解析所述请求的DNS服务器上进行加载。查询的记录可于指定时间量上保留在与DNS服务器相关联的高速缓冲存储器中,所述指定时间量可根据网络活动进行动态地调整或者根据网络管理员来预先确定等。另一个示例性实施方案可包括DNS服务部件被配置来高速缓存与对应IP地址相关联的域名,从而更加有效地响应于DNS查询。

图4是过程400的说明性示例,所述过程400可用来通过DNS服务器(如结合图1所描述和示出的DNS服务器105)而响应于DNS查询。在一个实施方案中,过程400包括从客户端装置接收DNS查询(402),所述DNS查询可由客户端装置在网络上提交,诸如上文所述的。所述请求可(例如)由客户端装置的客户接收到DNS服务器或用于DNS的服务处理系统,诸如上文结合图1所描述的。返回图4,DNS服务或服务器向负载平衡器传输用户数据报协议(UDP)消息(404)。负载平衡器可以是硬件或软件应用中的负载平衡层。替代实施方案可包括DNS服务器向代理服务器或其他网络部件或者经由多个中间部件来传输UDP消息。替代的示例性实施方案包括DNS服务器使用除UDP之外的协议来传输不同的消息或请求。

与UDP消息的传输并行,DNS服务被配置来解析DNS查询并且将负载平衡器的互联网协议(IP)地址传输给传输DNS查询的客户端的客户端装置(410)。替代的示例性实施方案可包括在与将IP地址传输给客户端装置的不同时间上传输UDP消息。随着过程400的继续,在负载平衡器的IP地址已经传输至客户端装置之后,客户端装置便可与负载平衡器连接(412)。

随着过程400的继续,在DNS服务器将UDP消息传输至负载平衡器之后,DNS服务器传输通知以便激活容器(406),诸如结合图1所示出和描述的容器121。DNS服务器可将所述通知直接传输给容器、传输给维持容器的资源服务、传输给支持容器的硬件部件或硬件场、传输给负载平衡器或负载平衡层,或者传输给可与容器通信的其他网络部件。返回图4,DNS服务器或其他网络部件可被配置来将存储与DNS查询相关联的资源的容器的标识符转发给负载平衡器(408)。在一个示例性实施方案中,负载平衡器的IP地址是由DNS主控的公共IP地址。在替代的示例性实施方案中,负载平衡器的IP地址可由不同的或单独的web服务主控并且将需要额外动作。例如,容器可具有私有IP地址,从而使得所述IP地址不被公共地暴露在互联网上,因此,在此类情况下,负载平衡器将被配置来代理所有流量,例如,代理的负载平衡器。另外的示例性实施方案可包括被实例化的容器将接收公共IP地址,使得所述容器将暴露在互联网上,并且因此客户端和容器可直接地进行通信,而无需负载平衡器或其他代理。

随着过程400的继续,与UDP消息的传输并行,DNS服务器解析DNS查询并将负载平衡器的IP地址传输至客户端装置(410),并且客户端装置可与负载平衡器连接(412)。在替代的示例性实施方案中,客户端装置可被配置来与容器直接连接。

图5是过程500的说明性示例,所述过程500可用来确定虚拟资源(诸如结合图1所示出和描述的容器121)是否是活动的。过程500通过在DNS服务器或服务处获取与虚拟资源的资源标识符相关联的DNS查询(502)来开始。资源标识符可以是包括在DNS查询的一部分中的独特标识符。DNS服务器还将状态请求通知传输至与虚拟资源相关联的或可操作地与虚拟资源互连的负载平衡层或负载平衡器(504)。过程500继续通过负载平衡器来确定虚拟资源的状态是否是活动的(506),例如,容器当前是否被实例化。如果容器是活动的,那么DNS服务器可解析DNS查询(512)。如果容器是不活动的,那么DNS服务器或其他网络部件被配置来传输消息以便激活虚拟资源(508)。DNS服务器或其他网络部件被配置来将虚拟资源的标识符传输或转发至负载平衡器,并且虚拟资源将被重新实例化(510)。这时虚拟资源是活动的,DNS服务器可解析DNS查询(512)。

图6是过程600的说明性示例,所述过程600可用来将域名系统信息与互联网协议地址相关联。过程600可由许多网络部件中的一个(例如,由DNS服务)执行。DNS服务从客户端装置接收DNS查询(602),并且解析DNS查询的至少一部分以得出域名(604)。DNS服务将域名与资源标识符相关联(606),并且将资源标识符记录在与DNS服务相关联的高速缓冲存储器中(608)。在替代的示例性实施方案中,DNS服务可将资源标识符信息记录在DNS服务可访问的数据库或文件中。所述记录还可包括已知的关于客户端装置的客户的额外信息,例如,他们的计费合约、服务质量合约、服务提供者信息、网络提供者信息等。返回图6,DNS服务可在与DNS服务相关联的高速缓冲存储器中搜索类似的资源标识符(610)。如果资源标识符已经存在于高速缓冲存储器中,那么资源记录可被比较来确定是否缺失或更新任何信息。DNS服务可利用资源标识符来在当前或在未来时间解析DNS查询(612)。

图7示出可实践本公开的各种实施方案的环境700的说明性示例。在环境700中,计算资源服务提供者703可向客户702提供各种服务。客户702可以是组织,其可利用计算资源服务提供者703所提供的各种服务来操作和管理业务需求。如图7中所示出的,客户702可通过一个或多个通信网络701(如互联网)来与计算资源服务提供者703通信。从客户702到计算资源服务提供者703的一些通信可致使计算资源服务提供者703根据本文所描述的各种技术或其变型进行操作。容器资源服务707可以是硬件和维持在能够运行容器的一队或多队硬件上的虚拟计算机系统的集合

域名系统(DNS)服务706可被设计来给予客户将最终用户路由至一个或多个通信网络应用的方法。例如,DNS服务706可被配置来将人类可读的名称(如统一资源定位符(URL))翻译成计算机系统可用来在互联网上彼此连接的数字互联网协议(IP)地址。因此,DNS服务706可被配置来将访问计算资源服务提供者所提供的一个或多个服务的请求连接到在特定数据区内运作的基础设施。DNS服务706可另外被配置来将计算资源服务提供者703的客户路由到特定数据区之外的基础设施,诸如由单独提供者操作的另一个计算系统。

计算资源服务提供者703可另外基于其客户的需求来维持一个或多个其他服务704。例如,计算资源服务提供者703可维持账户服务,所述账户服务可包括计算资源的集合,所述计算资源共同地用以维持针对计算资源服务提供者703的每个客户702的客户账户信息。所述账户服务可包括(例如)客户姓名、地址、电话号码、计费详情以及针对计算资源服务提供者703的每个客户702的其他个人识别信息。另外,账户服务可以包括可用来验证客户702具有恰当授权来访问由计算资源服务提供者703提供的所述一个或多个服务的加密密钥或其他凭证。其他服务包括但不限于认证服务以及管理其他服务的服务和/或其他服务。

图8示出用于实施根据各种实施方案的各方面的示例性环境800的各方面。如将了解的,尽管出于解释目的而使用基于web的环境,但是可以视情况使用不同环境来实施各种实施方案。所述环境包括电子客户端装置802,所述电子客户端装置802可以包括可操作来在适当网络804上发送和/或接收请求、消息或信息并且在一些实施方案中将信息传回给装置用户的任何适当装置。此类客户端装置的示例包括个人计算机、蜂窝电话、手持式消息接发装置,膝上型计算机、平板计算机、机顶盒,个人数据助理、埋置式计算机系统、电子书阅读器等。网络可包括任何适当网络,包括内联网、互联网、蜂窝网、局域网、卫星网或任何其他此类网络和/或其组合。用于此类系统的部件可以至少部分地取决于所选网络和/或环境的类型。经由此类网络来通信的协议和部件是众所周知的,并且本文将不再详细论述。网络上的通信可以通过有线或无线连接和其组合来实现。在这个示例中,网络包括互联网,因为所述环境包括用于接收请求并且响应于所述请求而提供内容的web服务器806,然而对于其他网络来说,正如对于本领域普通技术人员明显的,可使用服务类似目的的替代装置。

所述说明性环境包括至少一个应用服务器808和数据存储810。应当理解,可以存在可链接或以其他方式配置的若干应用服务器、层或其他要素、进程或部件,这些应用服务器、层或其他要素、进程或部件可进行交互来执行任务,诸如从适当的数据存储获取数据。如本文所使用的服务器可以用各种方式来实施,如硬件装置或虚拟计算机系统。在一些情境中,服务器可以指代在计算机系统上执行的编程模块。如本文所使用的,除非另行说明或上下文清楚地指出,否则术语“数据存储”指代能够存储、访问和检索数据的任何装置或装置组合,所述装置或装置组合可包括处于任何标准式、分布式、虚拟或集群环境中的数据服务器、数据库、数据存储装置和数据存储介质的任何组合和任何数目。应用服务器可包括任何适当的硬件、软件和固件,所述硬件、软件和固件根据需要来与数据存储集成以便执行用于客户端装置的一个或多个应用的方面,从而处理应用的一些或所有数据访问和业务逻辑。应用服务器可与数据存储协作来提供访问控制服务,并且能够生成可用来提供给用户的内容(包括但不限于文本、图形、音频、视频和/或其他内容),所述内容可以用超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、层叠样式表(“CSS”)或另一种适当的客户端侧结构化语言的形式由web服务器提供给用户。传送给客户端装置的内容可由客户端装置处理以便提供呈一种或多种形式的内容,所述一种或多种形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉(包括触觉、味觉和/或嗅觉)来感知的形式。所有请求和响应的处理以及客户端装置802与应用服务器808之间的内容递送可由web服务器使用PHP超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML或这个示例中的另一种适当的服务器侧结构化语言来处理。应当理解,web服务器和应用服务器并非必需的,而仅仅是示例性部件,因为本文所论述的结构化代码可在如本文其他地方所论述的任何适当装置或主机机器上执行。此外,除非上下文中另外清楚地指出,否则本文描述为由单个装置执行的操作可以由可形成分布式系统和/或虚拟系统的多个装置共同地执行。

数据存储810可包括若干单独的数据表、数据库、数据文档、动态数据存储方案和/或用于存储与本公开的特定方面相关的数据的其他数据存储机构和介质。例如,所示出的数据存储可包括用于存储生成数据812和用户信息816的机构,所述生成数据812和用户信息816可用来为生成端提供内容。数据存储也示出为包括用于存储日志数据814的机构,所述日志数据814可用于报告、分析或其他此类目的。应当理解,可能存在许多其他方面,这些方面可能需要存储在数据存储中,如页面图像信息和访问权限信息,所述方面可以视情况存储在上文列出的机构中的任何机构中或存储在数据存储810中的额外机构中。数据存储810可通过与其相关联的逻辑来操作,以便从应用服务器808接收指令,并且响应于所述指令而获取数据、更新数据或以其他方式处理数据。应用服务器808可响应于所接收的指令而提供静态数据、动态数据或静态数据和动态数据的组合。动态数据(如在web日志(博客)、购物应用、新闻服务和其他此类应用中使用的数据)可由如本文所描述的服务器侧结构化语言来生成,或者可由在应用服务器上操作或在应用服务器控制下操作的内容管理系统(“CMS”)来提供。在一个示例中,用户可以通过由用户操作的装置来针对某种类型的项目提交搜索请求。在这种情况下,数据存储可访问用户信息来验证用户的身份,并且可访问目录详细信息以便获取有关于所述类型项目的信息。随后,可将信息返回给用户,诸如以网页上的结果列表的形式,用户能够经由用户装置802上的浏览器来查看所述网页。可在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。然而,应注意的是,本公开的实施方案不一定受限于网页的情境,但一般而言,可以通常更适用于处理请求,其中所述请求不一定是针对内容的请求。

每个服务器通常将包括针对所述服务器的一般管理和操作而提供可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),当由服务器的处理器执行时,所述指令允许服务器执行其预期功能。操作系统的合适实现方式和服务器的一般功能性是众所周知的或可商购的,并且较易地由本领域普通技术人员来实施,尤其是根据本文中的公开内容来实施。

在一个实施方案中,环境是分布式和/或虚拟计算环境,其利用若干计算机系统和部件,所述计算机系统和部件经由通信链路、使用一个或多个计算机网络或直接连接来互连。但是,本领域那些普通技术人员将了解,此类系统可在比图8所示出的系统具有更少或更多数量部件的系统中同样良好地操作。因此,图8中的系统800的描绘本质上应视为说明性的,并且不限制本公开的范围。

各种实施方案还可在各种各样的操作环境中实施,在一些情况下,所述操作环境可以包括可用来操作许多应用中的任何一个的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可包括许多通用个人计算机中的任何一个,如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持许多组网协议和消息接发协议的蜂窝装置、无线装置和手持式装置。此类系统还可包括许多工作站,所述工作站运行各种可商购的操作系统中的任何一个以及用于诸如开发和数据库管理等目的的其他已知应用。这些装置还可包括其他电子装置,如虚拟终端、薄型客户端、游戏系统以及能够经由网络来通信的其他装置。这些装置还可包括虚拟装置,如虚拟机、管理程序以及能够经由网络来通信的其他虚拟装置。

本公开的各种实施方案利用本领域那些技术人员可能熟悉的至少一个网络,以便使用各种可商购的协议中的任一种协议来支持通信,所述协议诸如传输控制协议/互联网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中运作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用互联网文件系统(“CIFS”)以及AppleTalk。网络可以是(例如)局域网、广域网、虚拟专用网、互联网、内联网、外联网、公共交换电话网、红外网、无线网、卫星网以及上述网络的任何组合。

在利用web服务器的实施方案中,web服务器可以运行各种服务器或中间层级应用中的任何一个,包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器和业务应用服务器。所述服务器还能够响应于来自用户装置的请求而执行程序或脚本,诸如通过执行可以实施为以任何编程语言(如C、C#或C++)或任何脚本语言(如Ruby、PHP、Perl、Python或TCL)以及其组合写成的一个或多个脚本或程序的一个或多个web应用。所述服务器还可包括数据库服务器,其包括但不限于可从和商购的那些服务器,以及开放源服务器,如MySQL、Postgres、SQLite、MongoDB,和能够存储、检索和访问结构化数据或非结构化数据的任何其他服务器。数据库服务器可包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或者这些和/或其他数据库服务器的组合。

环境可包括如上文所论述的各种数据存储以及其他存储器和存储介质。这些可驻留在各种位置中,如处于一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或处于网络上的计算机中的任何或所有计算机远程位置处的存储介质上。在一组特定实施方案中,信息可驻留在本领域那些技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行属于计算机、服务器或其他网络装置的功能的任何必要文件都可以视情况本地或远程存储。在系统包括计算机化装置的情况下,每个此类装置可以包括可经由总线而电气耦接的硬件元件,所述元件包括(例如)至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此类系统还可包括一个或多个存储装置,如磁盘驱动器、光学存储装置和诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)等固态存储装置,以及可移动介质装置、存储卡、闪存卡等。

此类装置还可包括计算机可读存储介质读取器、通信装置(例如调制解调器、网络卡(无线或有线)、红外通信装置等)以及如上文所论述的工作存储器。计算机可读存储介质读取器可与计算机可读存储介质连接或者被配置来接收计算机可读存储介质,从而表示远程、本地、固定和/或可移动存储装置以及用于临时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。所述系统和各种装置通常还将包括位于至少一个工作存储器装置内的许多软件应用、模块、服务或其他元件,包括操作系统和应用程序,如客户端应用或web浏览器。应当了解,替代实施方案可具有与上述实施方案不同的众多变型。例如,还可使用定制化硬件,和/或特定元件可以硬件、软件(包括可移植软件,如小程序)或两者实施。此外,可以采用与诸如网络输入/输出装置等其他计算装置的连接。

含有代码或代码部分的存储介质和计算机可读介质可以包括本领域已知或已使用的任何适当介质,包括存储介质和通信介质,诸如但不限于以用于存储和/或传输信息(如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术来实施的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦可编程只读存储器(“EEPROM”)、快闪存储器或其他存储器技术、光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁性存储装置,或可用来存储期望信息且可由系统装置访问的任何其他介质。基于本文所提供的公开内容和教示,本领域普通技术人员将了解用以实施各种实施方案的其他方式和/或方法。

因此,应在说明性意义而不是限制性意义上理解本说明书和附图。然而,将显而易见的是,在不脱离如权利要求书中阐述的本发明的更广泛精神和范围的情况下,可以对说明书和附图做出各种修改和改变。

其他变型也处于本公开的精神内。因此,虽然所公开的技术可容许各种修改和替代构造,但其某些说明性实施方案示出在附图中并且已在上文中详细描述。然而,应当了解,不存在任何意图来将本发明限制于所公开的一种或多种具体形式,相反地,所述意图在于涵盖处于如所附权利要求书限定的本发明的精神和范围内的所有修改、替代构造和等效物。

描述所公开实施方案的上下文中(尤其是所附权利要求书的上下文中)的词语“一个”和“所述”以及类似参照词语的使用应解释为涵盖单数和复数两种形式,除非在本文另外地指出或明显地与上下文矛盾。词语“包含”、“具有”、“包括”和“含有”应解释为开放式词语(即,意味着“包括但不限于”),除非另外地指明。词语“连接”在未经修改并且指代物理连接时应解释为部分地或全部地包含在内、附接至或结合在一起,即使存在介入物。除非本文另外指明,否则本文中数值范围的引述仅仅意在充当个别地参照处于所述范围内的每个单独数值的速记方法,并且犹如本文个别引述的,每个单独数值被并入到本说明书中。除非本文另外指明或与上下文矛盾,否则词语“集”(例如,“项目集”)或“子集”的使用应解释为包括一个或多个成员的非空集合。此外,除非本文另外指明或与上下文矛盾,否则词语对应集的“子集”不一定表示对应集的真子集,而是子集和对应集可以相等。

除非另外特别规定或另外明显与上下文矛盾,否则连接性语言,如具有形式“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中的至少一个。

可按任何合适的顺序来执行本文所述的过程的操作,除非本文另外指明或另外明显地与上下文矛盾。本文所描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下来执行,并且可实施为代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用),所述代码共同地在一个或多个处理器上执行、由硬件执行或其组合来执行。代码可以(例如)按照包括可由一个或多个处理器执行的多个指令的计算机程序的形式而存储在计算机可读储存介质上。所述计算机可读储存介质可以是非暂时性的。

本文所提供的任何和所有示例或示例性语言(例如,“如”)的使用仅仅意在更好地阐明本发明的实施方案,并且除非另外要求保护,否则不会对本发明的范围施加限制。本说明书中的语言不应解释为将任何未要求保护的要素指示为实践本发明所必需的。

本文描述了本公开的实施方案,包括发明人已知的用于施行本发明的最佳模式。在阅读了前文描述后,这些实施方案的变型对本领域的那些普通技术人员来说将变得明显。发明人希望技术人员视情况采用此类变型,并且发明人期望以与本文所特别描述的方式不同的其他方式来实践本公开的实施方案。因此,经适用的法律许可,本公开的范围包括在随附权利要求书中引述的主题的所有修改形式和等效物。此外,除非本文另外指出或另外明显地与上下文矛盾,否则本公开的范围涵盖上述要素在其所有可能变型中的任何组合。

本文所引用的所有参考文献(包括出版物、专利申请和专利)特此以引用的方式并入,其程度等同于每个参考文献单独且具体地表示为以引用的方式并入并且其全部内容在本文得以陈述。

本公开的各种实施方案可鉴于以下条款来描述:

1.一种用于将容器实例化的计算机实施方法,其包括:

在配置有可执行指令的一个或多个计算机系统的控制下,

从域名系统(DNS)服务接收指示由客户端装置做出的DNS请求的消息,以便将统一资源定位符(URL)解析成互联网协议(IP)地址;

由于接收到所述消息,将所述容器实例化,从而使所述实例化的容器能够处理被传输至所述IP地址的请求;

从所述客户端装置接收定向到所述IP地址的请求;以及

将所述接收的请求发送至所述实例化的容器。

2.如条款1或2所述的计算机实施方法,其中将所述容器实例化包括:在针对资源的请求被传输至所述容器之前,利用所述DNS请求中的信息来将所述容器实例化。

3.如任一前述条款所述的计算机实施方法,其中经由负载平衡器来将所述客户端装置传输的、针对存储在所述容器中的所述资源的所述请求路由至所述容器,并且其中所述DNS服务被配置来将所述负载平衡器的IP地址发送至所述客户端装置。

4.如任一前述条款所述的计算机实施方法,其中所述资源是虚拟机、web资源、图像、web表单、静态网页、网站或应用编程接口。

5.一种系统,其包括:

至少一个计算装置,所述至少一个计算装置被配置来实施一个或多个服务,其中所述一个或多个服务被配置来:

从请求者接收请求以便将存储在容器中的资源的第一标识符解析成存储在所述容器中的所述资源的第二标识符;以及

将涉及到存储在所述容器中的所述资源的所述第一标识符的所述请求的通知传输给不同于所述请求者的、可操作来将所述容器实例化的系统。

6.如条款5所述的系统,其中所述请求由域名系统(DNS)服务接收,所述DNS服务可操作地与被配置来向所述容器提供互联网协议(IP)地址的负载平衡层互连。

7.如条款5或6所述的系统,其中所述负载平衡层可操作地与定时器互连,并且被配置来监视所述容器的实例化与针对所述容器中的所述资源的下一个请求之间的时间。

8.如条款5至7中任一项所述的系统,其中所述负载平衡层被配置来控制超时值,当所述超时值等于最大值时,所述负载平衡层被配置来将消息传输给所述容器以便终止操作状态,其中所述最大值可以是预定值或动态设定值。

9.如条款5至8中任一项所述的系统,其中所述一个或多个服务还被配置来将消息传输给所述负载平衡层以便将至少两个容器实例化,其中所述至少两个容器包括第一资源以及可由所述第一资源访问的第二资源。

10.如条款5至9中任一项所述的系统,其中所述负载平衡层被配置来在至少部分地基于与所述请求相关联的时间值而确定的某个时间长度内使所述容器保持实例化以便处理未来请求。

11.如条款10所述的系统,其中确定所述容器保持实例化的所述时间长度包括:至少部分地基于所述容器运行所处的位置、计算循环的次数、最大或最小财务成本或者与存储在所述容器中的至少一个资源相关的介质确认来确定所述时间长度。

12.如条款10所述的系统,其还包括在所述容器的生存周期期间动态地设定所述容器的运行时间,其中所述运行时间至少部分地基于地理旋转的功能、请求访问所述容器的用户的地理位置的功能或者所述容器主控的一种类型的资源的功能。

13.一种非暂时性计算机可读存储介质,其上存储有可执行指令,当由计算机系统的一个或多个处理器执行时,所述可执行指令致使所述计算机系统执行至少以下操作:

检测客户端装置所做出的请求,以便将与容器相关联的第一标识符解析成存储在网络部件中的资源的第二标识符;以及

由于所述检测,启动所述网络部件以便在所述客户端装置传输引用所述第二标识符的请求之前,预热与所述网络部件相关联的高速缓冲存储器。

14.如条款13所述的非暂时性计算机可读存储介质,其中所述指令还包括当由所述一个或多个处理器执行时致使所述计算机系统维持可操作地与域名系统(DNS)服务器互连的高速缓冲存储器的指令。

15.如条款13或14所述的非暂时性计算机可读存储介质,其中所述指令还包括当由所述一个或多个处理器执行时致使所述计算机系统将资源记录维持在所述网络部件的所述高速缓冲存储器中的指令,其中所述资源记录包括与所述客户端装置、客户端装置的客户相关的信息和/或与所述客户端装置请求的服务相关的信息。

16.如条款15所述的非暂时性计算机可读存储介质,其中致使所述计算机系统将资源记录维持在所述网络部件的所述高速缓冲存储器中的所述指令还包括致使所述计算机系统执行以下操作的指令:

在所述高速缓冲存储器中搜索对应于所述请求的资源记录;以及

利用所述资源记录来解析所述请求。

17.如条款13至16中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括如下指令:当由所述一个或多个处理器执行时,其致使所述计算机系统响应于网络部件将与资源相关的数据预加载到所述网络部件的所述高速缓冲存储器中而将虚拟机或容器实例化。

18.如条款17所述的非暂时性计算机可读存储介质,其中致使所述计算机系统将所述虚拟机或所述容器实例化的所述指令还包括致使所述计算机系统有选择性地传输消息的指令,所述消息包括一种类型的资源,其中所述类型的资源包括虚拟机、web资源、图像、web表单、静态网页或应用编程接口。

19.如条款13至18中任一项所述的非暂时性计算机可读存储介质,其中所述指令还包括当由所述一个或多个处理器执行时致使所述计算机系统确定存在点(PoP)位置以便发送用户请求的指令。

20.如条款19所述的非暂时性计算机可读存储介质,其中致使所述计算机系统确定所述PoP位置以便发送所述用户请求的所述指令还包括致使所述计算机系统向所述PoP位置传输消息的指令,所述消息包括传入活动的通知。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1