在数据中心中的角色实例的可到达性的制作方法

文档序号:7866862阅读:228来源:国知局
专利名称:在数据中心中的角色实例的可到达性的制作方法
技术领域
本申请涉及数据中心的负载平衡,特别是在数据中心中的角色实例的可到达性。
背景技术
大规模联网系统是在用于为业务和操作功能运行应用和维护数据的多种设定中使用的常见平台。例如,诸如数据中心(例如物理云计算基础架构)的托管环境可以同时为多个顾客提供多种服务(例如web应用、电子邮件服务、搜索引擎服务等等)。这些大规模联网系统通常包括遍及该数据中心分布的大量资源,其中每个资源都类似物理机或在物理主机上运行的虚拟机。当数据中心托管多个承租人(例如顾客应用)时,这些资源被最优地从同一数据中心分配给不同的承租人。
当在数据中心中实现顾客应用时,可以由包括该应用的部分代码的一个或多个角色来提供该应用。每个角色通常可具有多个具有负载平衡的角色实例,所述负载平衡被用于将来自应用(例如外部应用)的消息分布到各个实例上。在这样的基础架构中,期望允许顾客通过增加或减少分配给他们的服务的物理机、虚拟机和/或角色实例来明显地横向扩展(scale out)他们的服务。另外,存在许多顾客可能希望在诸如因特网的网络上定址特定角色实例的场景。示例包括远程桌面、调试、实例监视、任务管理(例如为某些应用提供粘性会话(sticky sessions))以及在不同的应用之间的承租人间通信。一种通过负载平衡的设置中的共享地址来提供实例的可到达性的方案将是通过负载平衡的地址发送应用消息并随后写应用专用连接转发器(forwarder)以将消息路由到合适的实例。然而,这种方案是低效率的,且要求为每个应用协议写一个定制的协议转发器。另一个提供实例的可到达性的方案将是为每个角色实例分配排他的IP地址。然而,该方案将不能很好地扩展,因为需要大量IP地址块。而且,这使得建立诸如防火墙之类的基础架构更加困难,因为地址将随着实例的数目的增加或减少而动态改变。

发明内容
提供本发明内容以便以简化的形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本发明的实施例涉及通过将唯一的端口号分配给角色实例来在数据中心中提供角色实例的可到达性。根据实施例,可以为在数据中心中运行的应用内的一个角色的角色实例分配实例端点。每个实例端点可以包括IP地址、传输协议和唯一的端口号的组合。另夕卜,可以将同一共享地址上的负载平衡的端点分配给一组角色实例。负载平衡的端点可以包括IP地址、传输协议和另一唯一的端口号的组合。可以用实例端点和负载平衡的端点来编程负载平衡器。另外,实例端点和负载平衡的端点可以被展示给对数据中心中运行的服务应用进行访问的应用。因此,当外部应用使用实例端点和负载平衡的端点将消息发给数据中心时,负载平衡器可以将消息适当地路由到角色实例。特别地,当消息包括实例端点时,在没有负载平衡的情况下,该消息可以被直接路由到与该实例端点相对应的角色实例。当消息包括负载平衡的端点时,可以根据负载平衡算法将该消息定向到任意一个角色实例。


下面参考附图详细描述本发明,其中图I是适用于实现本发明的各实施例的示例性计算环境的框图;图2是示出适用于实现本发明的各实施例所使用的示例性云计算平台的框图;图3是示出根据本发明的实施例的分布计算环境的框图,在其中应用可以要么通过负载平衡要么直接访问数据中心中的角色实例;图4是示出根据本发明的实施例分配负载平衡的端点和实例端点并将消息定向到角色实例的数据中心的框图;图5是示出一种方法的流程图,该方法用于根据本发明的实施例通过具有所分配的实例端点和负载平衡的端点的角色实例来配置数据中心以方便到角色实例的直接通信量和负载平衡通信量;以及图6是示出一种用于根据本发明的实施例通过实例端点和负载平衡的端点来编程负载平衡器并将消息路由到角色实例的方法的流程图。
具体实施例方式此处用细节来描述本发明的主题以满足法定要求。然而,该描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的所针对的还可结合其他当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此夕卜,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但除非而且仅当明确描述了各个步骤的顺序时,该术语不应被解释为意味着此处公开的各个步骤之中或之间的任何特定顺序。本发明的各实施例旨在通过将单个IP地址断开成多个端点来提供直接角色实例的可到达性。通常,各实施例旨在将唯一的端口号分配给角色实例,并将每个角色实例作为唯一的公共端点(即实例端点)来展示,该公共端点作为特定传输协议(例如TCP和UDP)的IP地址和唯一的端口号的组合。这些实例端点可以与用于同一角色实例集的负载平衡的端点共存。因此,各实施例可以以通用的且应用协议不可知的方式来处理角色实例的可到达性。该方案允许负载平衡和通过共享地址的实例的可到达性的彼此共存。这样,各实施例维护了数据中心中的业务和工程的可缩放性。根据本发明的实施例,顾客可以在服务模型中指定由数据中心所提供的服务的各方面,包括要被展示和个别可到达的角色实例。根据顾客在服务模型中的指定,数据中心分配运行顾客的业务应用的资源(例如物理机和虚拟机),并且还将业务应用的特定角色的一组角色实例分配给所述资源。在一些实施例中,数据中心可以将负载平衡的端点分配给该组角色实例以允许跨角色实例的负载平衡应用消息。负载平衡的端点可以是包括公共IP地址、传输协议和端口号的组合的面向公众的端点。除了将负载平衡的端点分配给该组角色实例之外,数据中心还将实例端点分配给每个角色实例。特别地,数据中心可以为每个角色实例分配唯一的端口号,以便每个角色实例的实例端点可以包括公共IP地址、传输协议和唯一的端口号的组合。角色实例的每个端口号与分配给其它角色实例的端口号相比是唯一的,并且在负载平衡的端点和角色实例共享相同的公共IP地址的情况下,与分配给负载平衡的端点的端口号相比也是唯一的。通过该组角色实例的负载平衡的端点和实例端点来编程数据中心中的负载平衡器。另外,将负载平衡的端点和实例端点展示给应用(例如外部应用、所托管的应用和/或其它应用)。因此,应用可以使用负载平衡的端点或实例端点发起到数据中心的连接。当负载平衡器通过负载平衡的端点接收消息时,负载平衡器根据负载平衡算法将该消息定向到任意一个角色实例。当负载平衡器通过一个实例端点接收消息时,负载平衡器将消息定向到与该实例端点对应的特定角色实例。因此,在一个方面中,本发明的一个实施例针对存储计算机可使用指令的一个或多个计算机存储介质,当这些指令由一个或多个计算设备使用时使该一个或多个计算设备执行一种方法。该方法包括在托管环境中提供多个角色实例。每个角色实例包括用于在托管环境中运行的顾客应用的代码。该方法包括为多个角色实例分配多个实例端点。每个 实例端点包括第一 IP地址、第一传输协议以及唯一的端口号的组合,并映射到角色实例之一。该方法还包括将实例端点展示给应用以允许该应用使用映射到特定角色实例的实例端点来访问该特定的角色实例。在另一实施例中,本发明的一个方面旨在一种使得负载平衡器将负载平衡的消息和实例消息定向到托管环境中的角色实例的方法。该方法包括接收在托管环境中运行的服务应用的角色的多个角色实例的端点信息。该端点信息为多个角色实例标识多个实例端点。每个实例端点包括第一 IP地址、第一传输协议以及唯一的端口号的组合,并映射到角色实例之一。该端点信息还为多个角色实例标识负载平衡的端点。负载平衡的端点包括第二 IP地址、第二传输协议和另一唯一的端口号的组合。该方法还包括当从应用接收包括来自多个实例端点的第一实例端点的第一消息时,将第一消息定向到对应于第一实例端点的第一角色实例。该方法还包括当从应用接收包括负载平衡的端点的第二请求时,基于负载平衡算法将第二请求定向到角色实例之一。本发明的又一实施例旨在一种用于云计算平台的系统。该系统包括主控多个虚拟机的一个或多个物理机,所述虚拟机运行多个为顾客应用提供代码的角色实例。该系统还包括将唯一的端口号分配给每个角色实例以为每个角色实例生成一个实例端点的承租人管理器。每个实例端点包括IP地址、传输协议和唯一的端口号之一的组合。该系统还包括通过负载平衡的端点和实例端点被编程的负载平衡器。该负载平衡器被配置为使用实例端点将应用消息直接路由到对应的角色实例,并根据负载平衡算法使用负载平衡的端点来路由应用消息。已经描述了本发明的各实施方式的概要,下面将描述其中可以实现本发明的各实施方式的示例性操作环境,以便为本发明的各个方面提供一般上下文。首先具体参考图1,示出了用于实现本发明的各实施方式的示例性操作环境,并将其概括地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。
本发明可以在由计算机或诸如个人数据助理或其他手持式设备之类的其他机器执行的计算机代码或机器可使用指令(包括诸如程序模块之类的计算机可执行指令)的一般上下文中描述。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。参考图1,计算设备100包括直接或间接耦合以下设备的总线110 :存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出(I/O)端口 118、输入/输出组件120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。虽然为了清楚起见利用线条示出了图I的各框,但是实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O组件。而且,处理器具有存储器。发明人认识到这是本领域的特性,并重申,图I的图示只是例示可以结合本发明的一个或多个实施方式来使用的示例性计算设备。诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间没有区别,它们全部都被认为是在图I的范围之内的并且被称为“计算设备”。计算设备100通常包括各种计算机可读介质。计算机可读介质可以是可由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的,不可移动的,或两者的组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。I/O端口 118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、打印机、无线设备等等。可以在数据中心中实现本发明的某些实施例,所述数据中心作为如使用承租人/服务模型的服务(PAAS)之类的平台来操作,在该承租人/服务模型中,顾客应用在提供了一种用于开发和运行顾客应用的平台的云服务基础架构中运行。数据中心可以包括大量物理机,可在其上分配虚拟机并运行顾客应用。参照图2,提供了示出根据本发明的实施例的示例性云计算平台200的框图。能够理解和明白,图2中所示的云计算平台200仅仅是一个合适的计算环境的示例,并且不旨在对本发明的实施例的使用范围或功能提出任何限制。例如,云计算平台200可以是公共云、私有云、或专用云或仅是不同的计算设备的集合。也不应该将云计算平台200解释为对其中所示出的任何单个组件或组件组合有任何依赖性或要求。此外,尽管为了清楚起见用线条示出了图2的各个框,但是在实际上,各组件的轮廓并不是那样清楚,并且比喻性地来说,线条更精确地将是灰色的和模糊的。另外,可以采用任何数目的物理机、虚拟机、数据中心、角色实例或其组合来在本发明的实施例的范围内实现所期望的功能。云计算平台200包括数据中心202,该数据中心202被配置为主控和支持特定服务应用的角色实例214和216的操作。在此使用的用语“服务应用”宽范围地指运行在数据中心202之上或访问数据中心202内的存储位置的任何软件或软件部分。在实施例中,将服务应用作为包括服务应用的逻辑部分的一个或多个角色来实现。每个角色可包括特定的代码集。每个角色的多个实例(例如角色实例214和216)可以在数据中心202中运行,并且可以将负载平衡用于跨角色实例分布消息。给定角色的角色实例可以运行相同的代码,这样,角色实例是相似的且可互换的。通常,根据置于服务应用上的需求(例如处理的负载量)和/或由顾客服务模型中的顾客所指定的服务定义,将虚拟机210和212分配给服务应用的角色实例214和216。如在此所使用的那样,用语“虚拟机”无意为限制性的,并且可以指由处理单元执行以支持角色实例214和216的功能的任何软件、应用、操作系统或程序。另外,虚拟机210和212可以包括处理能力、存储位置、以及数据中心202内的其他资产以合适地支持角色实例214和216。在操作中,在数据中心202的物理资源(例如第一计算设备204和第二计算设备206)内动态分配虚拟机210和212,并且角色实例(例如,角色实例214和216)被动态地放置在所分配的虚拟机210和212上以满足当前处理负载。在一个实例中,构造控制器208负责自动分配虚拟机210和212以及将角色实例214和216放置在数据中心202内。举例来说,构造控制器208可以依靠服务定义(例如其由拥有服务应用的顾客来指定)来提供关于如何和何时分配虚拟机210和212以及将角色实例214和216放置到其上的指导。如上面所讨论的那样,虚拟机210和212可被动态地分配在第一计算设备204和第二计算设备206内。根据本发明的实施例,计算设备204和206可以表示任何形式的计算设备,例如图I的计算设备100。计算设备204和206可以主控和支持虚拟机210和212的操作,同时主控被开辟为支持数据中心202的其他承租人的其他虚拟机,其中支持数据中心202的其他承租人包括支持由不同顾客拥有的其他服务应用的角色实例。在一个方面中,角色实例214和216在云计算平台200的上下文内操作,并且因此,可以通过在虚拟机210和212之间动态实现的连接来内部地或通过物理网络拓扑外部地与远程网络的资源进行通信。内部连接可以包括经由网络云(未示出)来互连分布在数据中心202的物理资源之中的虚拟机210和212。网络云将这些资源互连以使得角色实例可识别另一角色实例的位置以建立其间的通信。另外,网络云可以通过连接服务应用的角色实例214和216的信道来建立该通信。
现在转到图3,诸如应用302的远程应用可以通过网络306访问由运行的数据中心304上的服务应用所提供的服务,所述网络可包括,但不局限于,一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。如图3中所示,多个角色实例(即角色实例310、角色实例312、角色实例314和角色实例316)提供了在数据中心304中运行的服务应用的特定角色的代码。根据本发明的实施例,诸如应用302的应用可以通过负载平衡来访问角色实例310、312、314和316,在负载平衡中来自应用的消息跨角色实例310、312、314和316来分布,或者,可以直接访问角色实例 310、312、314、316 之一。为了提供对负载平衡和对角色实例310、312、314、316的直接的角色实例访问,本发明的实施例同时使用了用于角色实例310、312、314、316的负载平衡的端点和用于角色实例310、312、314、316中每个的实例端点。特别地,将公共IP地址、传输协议和唯一端口号的组合作为负载平衡的端点分配给角色实例310、312、314、316。因此,来自诸如应用302的应用以负载平衡的端点为目标的消息在数据中心304中由负载平衡器308被多路复用给各个实例端点。例如,如果http://customer, domain, name:80是由角色实例310、312、314、316所提供的角色的负载平衡的端点,则到该URL的消息由负载平衡器308分布到可用的角 色实例310、312、314、316之中。应该理解,负载平衡器308可以使用任意负载平衡算法来将通信量分布到各个角色实例310、312、314、316。除了将负载平衡的端点分配给角色实例310、312、314、316之外,还将实例端点分配给角色实例310、312、314、316中的每一个。每个实例端点包括公共IP地址、传输协议以及唯一的端口号的组合,并映射到角色实例310、312、314、316之一。例如,可以将IP = Portl(IP端口 I)分配作为角色实例310的实例端点,将IP:Port2 (IP:端口 2)分配作为角色实例312的实例端点,将IP:Port3 (IP:端口 3)分配作为角色实例314的实例端点,并将IP:Port4(IP:端口 4)分配作为角色实例316的实例端点。可以将用于负载平衡的端点的相同的公共IP地址用作该实例端点的公共IP地址。例如,在一些实施例中,可以使用IPv4地址。来自应用302的包括实例端点的消息在不需要负载平衡的情况下被路由到与该实例端点相对应的角色实例。例如,如果来自应用302的消息包括IP:Portl,则该消息被直接路由给角色实例I。在一些实施例中,同一角色实例可以具有多个实例端点。在这样的实施例中,服务模型可以指定提供给每个角色实例的实例端点的数目。数据中心随后为每个角色的每个所请求的实例端点分配地址、传输协议、端口的组合。负载平衡器308可以用软件、硬件或其组合来实现。在实施例中,用负载平衡的端点和实例端点两者来编程负载平衡器308。这可以包括将负载平衡的端点映射到该组角色实例310、312、314、316的信息,以及将每个实例端点映射到对应的角色实例的信息。这样,负载平衡器308具有足够的信息以通过直接端口使用实例端点将通信量定向到对应的角色实例,并通过负载平衡的端点根据负载平衡算法将通信量负载平衡到角色实例310、312、314,316 之一。现在参照图4,提供了示出包括数据中心402的整个系统400的框图,所述数据中心402分配负载平衡的端点和实例端点并根据本发明的实施例将消息定向到角色实例。最初,顾客可以将实例端点定义为顾客希望具有直接连通性的每个角色的服务定义的部分。可以验证服务定义,并且生成包含服务定义的对应的服务包404。服务定义可以根据本发明的各个实施例以许多不同的方式来指定实例端点的使用以及端口分配。例如,在一些实施例中,服务定义可以简单地指定顾客希望对角色使用的实例端点,并且数据中心402可以处理将端口分配给角色实例。在一些实施例中,数据中心402可以提供不同的端口分配方案(例如随机端口分配),并且顾客可以在服务定义中选择或不选择指定端口分配方案。在其它实施例中,顾客可以在服务定义中指定用于为实例端点分配端口号的端口范围。例如,服务定义可以指定5000-5099的端口范围,并且,端口5000可以被分配给第一角色实例,而端口 5099可以被分配给第100个角色实例。在建立服务定义并生成服务包404之后,可以通过开发者门户406或使用SDK408来将服务包404部署到数据中心402中的顾客订阅。前端410可以验证服务定义并将其传递给数据中心结构412以供开发。结构412包括承租人管理器414,该管理器根据服务定义分配必需的资源并根据服务定义将全局状态持久保存到储存库416。承租人管理器414还根据服务定义执行端口 分配以提供角色实例的实例端点并将全局状态持久保存到储存库416。数据中心管理器418使用包括实例端点的全局状态来编程负载平衡器420。另外,驱动结构412的工作流的节点全局状态将驱动资源调整到全局状态(例如OS开发、引导角色等)。一旦角色实例422处于就绪状态,顾客应用424可以通过负载平衡器420连接到单独的角色实例的每一个。在一些实例中,应用422可以使用负载平衡的端点发出消息。在这样的实例中,负载平衡器420使用负载平衡算法来将消息定向到角色实例422之一。或者,应用424可以使用特定的实例端点(即映射到特定的角色实例的IP:port (IP:端口)组合)将消息发出以访问特定角色实例。在一些实施例中,应用424可以通过SDK调用前端410以确定要访问的特定的角色实例的实例端点。前端410可以包括承租人管理器414以检索这种信息并将其送回应用424。当负载平衡器420通过特定实例端点接收消息时,负载平衡器420可以从角色实例422中标识根据编程到负载平衡器420中的实例端点信息要将消息路由到其处的正确的角色实例。例如,在实施例中,负载平衡器420可以包括映射信息,该信息将面向公共的实例端点映射到数据中心402内的角色实例的直接IP映射。现在转向图5,提供了示出一种方法500的流程图,该方法用于根据本发明的实施例通过具有所分配的实例端点和负载平衡的端点的角色实例来配置数据中心以方便到角色实例的直接通信量和负载平衡的通信量。最初,如在框502处所示,在数据中心从顾客接收服务定义。服务定义可以指定各种关于顾客服务应用的信息,例如所请求的资源和用于实例化的角色实例。另外,服务定义可以指定数据中心将实例端点分配给服务应用的角色的角色实例。如在框504处所示,数据中心根据服务定义分配数据中心资源。这可包括在数据中心内的物理机上分配虚拟机,并且将角色实例分配给虚拟机。另外,数据中心根据服务定义将实例端点分配给角色实例,如在框506处所示。这可以包括将唯一的端口号分配给角色实例以生成作为公共IP地址、传输协议和唯一的端口号的组合的实例端点。数据中心可以使用各种端口分配方案的任意一种。在一些实施例中,顾客可以在服务定义中指定数据中心要使用的端口分配方案,然而,在其它实施例中,可能在服务定义中没有指定所述端口分配方案并且数据中心可以选择要使用哪个方案。除了将实例端点分配给每个角色实例之外,数据中心还将负载平衡的端点分配给该组角色实例,如在框508处所示。虽然实例端点允许外部应用在没有负载平衡的情况下直接访问单独的角色实例,负载平衡的端点也允许在该组角色实例上的负载平衡的应用消息分布。关于实例端点和负载平衡的端点的信息被编程到数据中心中的负载平衡器中,如在框510中所示。另外,实例端点和负载平衡的端点被展示给应用,如在框512中所示。可以以许多不同的方式将实例端点和负载平衡的端点展示给应用。在一些实施例中,可以通过API来展示实例端点和负载平衡的端点。API提供了将角色实例映射到实例端点的映射信息。因此,应用可以使用实例端点或负载平衡的端点来发出消息以直接访问(使用实例端点)角色实例或通过负载平衡(使用负载平衡的端点)访问任意角色实例。转向图6,提供了示出一种用于根据本发明的实施例通过实例端点和负载平衡的端点来编程负载平衡器并将消息路由到角色实例的方法600的流程图。最初,如在框602处所示,在负载平衡器处接收与顾客服务应用的特定角色相对应的一组角色实例的端点信息以编程该负载平衡器。端点信息标识角色实例的实例端点。在实施例中,每个实例端点可以包括IP地址、传输协议和唯一的端口号的组合。该端点信息还包括用于跨角色实例进行负载平衡的负载平衡的端点。在实施例中,负载平衡的端点可以包括IP地址、传输协议和另一唯一的端口号的组合。如在框604处所示,负载平衡器从应用接收包括第一实例端点的第一消息。根据用于编程负载平衡器的端点信息,负载平衡器标识与第一实例端点相对应的第一角色实例,如在框606处所示。另外,负载平衡器直接将第一消息路由到第一实例端点,如在框608处所示。负载平衡器还从应用接收包括负载平衡的端点的第二消息,如在框610处所示。根据用于编程负载平衡器的端点信息,负载平衡器识别负载平衡的端点并使用负载平衡算法来选择特定的角色实例,如在框612处所示。负载平衡器随后将第二消息定向到所选择的角色实例,如在框614中所示。可以理解,本发明的实施例提供了用于通过将唯一的端口号分配给角色实例以使用负载平衡和直接角色实例访问两者来在数据中心中提供角色实例的可到达性。参考各具体实施例描述了本发明,各具体实施例在所有方面都旨在是说明性的而非限制性的。不偏离本发明范围的情况下,各替换实施例对于本发明所属领域的技术人员将变得显而易见。从前面的描述可以看出,本发明很好地适用于实现上文所阐述的所有目的和目标,并且具有对于该系统和方法是显而易见且固有的其他优点。可理解的是,某些特征和子组合是有用的,并且可以加以利用而无需参考其它特征和子组合。这由权利要求所构想的,并在权利要求的范围内。
权利要求
1.一个或多个存储计算机可使用指令的计算机存储介质,所述计算机可使用指令在被ー个或多个计算设备使用时,使得所述ー个或多个计算设备执行ー种方法,所述方法包括 在托管环境中提供(504)多个角色实例,每个角色实例包括用于在所述托管环境中运行的顾客应用的代码; 为所述多个角色实例分配(506)多个实例端点,每个实例端点包括第一 IP地址、第一传输协议和唯一端口号的组合并且映射到所述角色实例之一;以及 将所述实例端点展示(512)给应用以允许所述应用使用映射到特定角色实例的实例端点来访问所述特定的角色实例。
2.如权利要求I所述的ー个或多个计算机存储介质,其特征在于,所述方法还包括 为所述多个角色实例分配负载平衡的端点,所述负载平衡的端点包括第二 IP地址、第ニ传输协议和另一卩隹ー的端口号的组合;以及 将所述负载平衡的端点展示给所述应用以允许所述应用使用所述负载平衡的端点通过负载平衡来访问所述角色实例中的任意ー个。
3.如权利要求2所述的ー个或多个计算机存储介质,其特征在于,所述第一和第二IP地址是相同的。
4.如权利要求2所述的ー个或多个计算机存储介质,其特征在于,所述方法还包括用所述实例端点和所述负载平衡的端点编程负载平衡器。
5.如权利要求I所述的ー个或多个计算机存储介质,其特征在于,所述方法还包括 接收所述顾客应用的服务定义; 验证所述服务定义; 根据所述服务定义分配托管环境资源。
6.如权利要求5所述的ー个或多个计算机存储介质,其特征在于,所述服务定义指定了由所述托管环境所使用的用于将端ロ号分配给所述角色实例的端ロ分配方案。
7.如权利要求5所述的ー个或多个计算机存储介质,其特征在干,所述服务定义指定了用于将端ロ号分配给所述角色实例的端ロ范围。
8.如权利要求I所述的ー个或多个计算机存储介质,其特征在于,通过API将所述实例端点展示给所述应用,其中所述API提供将角色实例映射到实例端点的映射信息。
9.ー种使得负载平衡器将负载平衡的消息和实例消息定向到托管环境中的角色实例的方法,所述方法包括 接收(602)在所述托管环境中运行的服务应用的角色的多个角色实例的端点信息,所述端点信息标识了所述多个角色实例的多个实例端点,每个实例端点包括第一 IP地址、第一传输协议和卩隹ー的端口号的组合并映射到所述角色实例之一,所述端点信息还标识所述多个角色实例的负载平衡的端点,所述负载平衡的端点包括第二 IP地址、第二传输协议以及另ー唯一的端口号的组合; 当从应用接收包括来自所述多个实例端点的第一实例端点的第一消息吋,将所述第一消息定向(608)到与所述第一实例端点对应的第一角色实例;以及 当从所述应用接收包括所述负载平衡的端点的第二请求时,根据负载平衡算法将所述第二请求定向(614)到所述角色实例之一。
10.一种用于云计算平台的系统,所述系统包括 主控多个虚拟机的ー个或多个物理机(204,206),所述虚拟机运行多个为顾客应用提供代码的角色实例; 为每个角色实例分配唯一的端口号以为每个角色实例生成一个实例端点的承租人管理器(414),姆个实例端点包括IP地址、传输协议和卩隹一的端口号之一的组合;以及 用负载平衡的端点和实例端点编程的负载平衡器(420),所述负载平衡器被配置用于使用实例端点将应用消息直接路由到对应的角色实例,以及根据负载平衡算法使用所述负载平衡的端点将应用消息路由到角色实例。
全文摘要
本申请涉及在数据中心中的角色实例的可到达性。为在诸如数据中心的托管环境中运行的应用的角色的角色实例同时提供单独的角色实例可到达性和负载平衡。可以为每个角色实例分配实例端点。每个实例端点可以包括IP地址、传输协议和唯一的端口号的组合。另外,可以为一组角色实例分配一个负载平衡的端点。负载平衡的端点可以包括IP地址、传输协议和另一唯一的端口号的组合。当应用消息被发出到数据中心时,可以根据该消息所使用的端点来路由该消息。当使用实例端点时,在没有负载平衡的情况下,所述消息被路由到与该实例端点相对应的角色实例。当使用负载平衡的端点时,使用负载平衡算法将该消息路由到角色实例中的任意一个。
文档编号H04L29/08GK102984254SQ201210493118
公开日2013年3月20日 申请日期2012年11月27日 优先权日2011年11月28日
发明者P·K·帕特尔, D·班塞尔, M·K·桑古巴特拉, W·赵, X·昝, N·斯里瓦斯塔瓦 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1