首页> 中国专利> 云中的CDN负载平衡

云中的CDN负载平衡

摘要

云中的CND负载平衡。在内容递送网络的边缘数据中心处,服务器资源被分配给正由边缘数据中心服务的财产。基于近似实时数据,根据趋势流量在边缘数据中心处对财产排序。在边缘数据中心处,为所排序的财产的至少一个财产分配服务器资源。基于从长期趋势中开发的规则来分配服务器资源。资源分配包括计算在边缘数据中心处的分区中的财产的服务器需求,并将该财产的服务器需求分配到分区中的可用服务器。

著录项

  • 公开/公告号CN104756444A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN201380057098.8

  • 申请日2013-11-01

  • 分类号H04L12/24(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人杨洁

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 09:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-03

    授权

    授权

  • 2017-11-03

    专利申请权的转移 IPC(主分类):H04L12/24 登记生效日:20171016 变更前: 变更后: 申请日:20131101

    专利申请权、专利权的转移

  • 2015-07-29

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20131101

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

背景

许多基于因特网的服务提供者向全世界的客户机递送数字内容。数字内容 可以包括web对象(例如,文本、图形、URL、脚本)、可下载对象(例如,媒 体文件、软件、文档等)、web应用、流媒体(例如,音频和视频内容)等。给 位于各种各样地理位置的大量客户机提供数字内容向服务提供者提出了挑战。 例如,服务提供者可能不能够提供足够的服务器资源和/或网络带宽以在给定 时间服务于请求数字内容的全部客户机。此外,因为服务提供者和地理上远离 服务提供者的服务器的客户机之间的流量通过大量因特网服务器经极大的地 理距离来路由,所以客户机可能经历高级别的等待时间和/或低传送率。

内容递送网络(CDN)旨在减轻服务提供者向大的和/或地理上不相同的 客户机组递送数字内容的能力。CDN将服务器(或服务器群集)置于各种地理 位置,并使用这些服务器来高速缓存并递送来自服务提供者的原始服务器的内 容。如此,CDN可通过增加用于递送每个服务提供者的内容的总的可用服务器 资源和带宽两者,还通过从地理上更接近正被服务的客户机的服务器递送每个 服务提供者的内容,来改善服务提供者将内容递送到客户机的能力。

CDN通常为大量服务提供者提供内容递送服务。如此,CDN在各种服务 提供者间分配CDN资源。例如,如果CDN正经历针对特定地理区域的特定服 务提供者的流量激增,CDN可反应性地分配该特定地理区域中的附加服务器资 源以用于递送该特定服务提供者的内容,而从一个或多个其它服务提供者移除 在该特定地理区域的该附加服务器资源。

概述

在此描述的至少一些实施例利用实况的和历史的数据两者来抢先,而不是 反应性地,重新配置CDN来处理当前的和预期的客户机负载。如此,基于实况 的和历史的数据,在此描述的各实施例可在服务提供者的客户机负载达到尖峰 之前,抢先针对服务提供者和高速缓存的服务提供者的内容来设定服务器分 配。

在一些实施例中,在CDN的边缘数据中心处的服务器资源被分配给由边 缘数据中心服务的财产。基于近似实时数据,计算机系统根据趋势流量来在边 缘数据中心处对财产进行排序。计算机系统基于从长期趋势开发的规则针对在 边缘数据中心处经排序的财产的一个财产分配服务器资源。分配包括为边缘数 据中心处的分区中的财产计算服务器需求的计算机系统。分配还包括计算机系 统向该分区中的可用服务器分配该财产的服务器需求。

提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也 不旨在用于帮助确定所要求保护的主题的范围。

附图说明

为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图 中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可 以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其 范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在 附图中:

图1示出了促进抢先地和反应性地配置CDN以针对由CDN主存的各财产 处理当前和预期的客户机负载的示例计算机体系结构。

图2示出了用于分隔、分区和/或分配示例CDN的资源的示例方案。

图3示出了用于将CDN的边缘数据中心处的服务器资源分配给由边缘数 据中心服务的财产的示例方法的流程图。

图4示出了用于边缘数据中心处的负载平衡器代理将流量卸载到另一边缘 数据中心的示例方法的流程图。

图5示出了用于使用孵化池来确定一个或多个财产的属性的示例方法的流 程图。

详细描述

在此描述的至少一些实施例利用实况的和历史的数据两者来抢先,而不是 反应性地,重新配置CDN来处理当前的和预期的客户机负载。如此,基于实 况的和历史的数据,在此描述的各实施例可在服务提供者的客户机负载达到尖 峰之前,抢先针对服务提供者和高速缓存的服务提供者的内容来设定服务器分 配。

更具体地,各实施例涉及服务于多个财产并包括物理地位于不同地理位置 (且潜在地在全世界的地理位置)的多个边缘数据中心的CDN。每个边缘数据 中心包括用于高速缓存并提供各财产的内容的多个服务器。各实施例还涉及包 括负载平衡器服务的CDN,该负载平衡器服务跟踪多个边缘数据中心的长期流 量趋势,并且管理用于(基于该长期流量趋势)向各财产分配服务器资源的规 则。各实施例还涉及包括在每个边缘数据中心处的负载平衡器代理的CDN。每 个负载平衡器代理被配置来根据基于长期流量趋势的规则,以及关于在边缘数 据中心处的当前活动的实时(或近似实时)数据,来作出服务器分配决定。如 此,负载平衡器代理基于长期流量趋势和规则抢先地,并基于实时(或近似实 时)数据反应性地作出服务器分配决定。

如在此使用的,“财产”是主存在原始服务器上的客户web应用。例如, “财产”可以是在线视频流网站、在线音频流服务、补丁/更新网站等。如在 此使用的,“客户”是拥有一个或多个财产的个人、实体、服务提供者等。如 在此使用的,“原始服务器”是由客户拥有和/或被用户操作的web服务器。

图1示出了促进抢先地和反应性地配置CDN以针对由CDN主存的各财产 处理当前和预期的客户机负载的示例计算机体系结构100。参见图1,计算机 体系结构100包括边缘数据中心102、与近似实时(NRT)数据相关的一个或 多个组件108,以及与长期趋势和规则相关的一个或多个组件114。所描绘的 组件和计算机系统中的每一个通过诸如例如局域网(“LAN”)、广域网 (“WAN”)、因特网等的网络彼此连接(或作为网络的一部分)。相应地,所 描绘的组件和计算机系统中的每一个可以创建与消息相关的数据并通过网络 交换与消息相关的数据(例如,网际协议(“IP”)数据报和利用IP数据报的其 他更高层协议,诸如传输控制协议(“TCP”)、超文本传输协议(“HTTP”)、 简单邮件传输协议(“SMTP”)等)。

边缘数据中心12包括多个数据中心,每个数据中心位于不同地理位置。 例如,图1描绘了边缘数据中心102a以及边缘数据中心102b,尽管如垂直省 略号所指示的,计算机体系结构100可包括任何数量的边缘数据中心。如在此 使用的,“pop”(point of presence(存在点))还指边缘数据中心,无论该边缘 数据中心专用作CDN的一部分,或与其它服务搭配。

如所描绘的,每个边缘数据中心102包括被配置用来高速缓存与边缘数据 中心相关联的财产的内容并将那个内容递送到客户机(例如地理地位于边缘数 据中心附近的被高速缓存的财产的客户机)的多个服务器(例如服务器106a 和106b)。边缘数据中心102还包括负载平衡器代理(例如,负载平衡器代理 104a和104b)。负载平衡器代理(104a、104b)被配置用来作出关于在对应边 缘数据中心处的服务器资源(106a、106b)如何被分配给不同财产的抢先的和 反应性的决定两者。在这样做时,负载平衡器代理(104a、104b)使用(来自 规则数据存储124的)基于长期趋势数据的规则,以及(来自NRT数据存储 112的)NRT数据。

如在这里使用的,“NRT数据”意味着近似实时(诸如在几分钟或甚至在 几秒钟内)收集和聚集的数据。在所描绘的实施例中,与NRT数据相关的组 件108包括NRT聚集器110和NRT数据存储112。NRT聚集器110解析在边 缘数据中心102处生成的日志以生成关于在每个边缘数据中心处的当前活动的 NRT数据。NRT聚集器110将所生成的NRT数据存储在NRT数据存储112 中。NRT数据存储112使得NRT数据对于在每个边缘数据中心处的负载平衡 器代理(104a、104b)可用(如在NRT数据存储112和负载平衡器代理之间的 箭头所指示的)。对应地,负载平衡器代理能够从NRT数据存储112检索NRT 数据并将该NRT数据用作它们资源分配决定的一部分。通过使用NRT数据, 负载平衡器代理能够对在边缘数据中心102处的当前流量作出反应,诸如处理 非预期的在一个或多个财产处的流量激增。当与NRT数据相关的组件108被 描绘成与边缘数据中心102分开时,这些组件的全部或部分,在一些实施例中, 可在边缘数据中心102处实现。

在所描绘的实施例中,与长期趋势和规则相关的组件114包括日志数据存 储120、趋势聚集器118,和长期趋势数据存储116。日志数据存储120被配置 来存储由边缘数据中心102生成的日志。趋势聚集器118被配置来解析这些日 志以确定由边缘数据中心服务提供的财产的长期流量模式。趋势聚集器118将 长期流量模式存储在长期趋势数据存储116中。

长期趋势可标识对财产的客户需求跨日、星期、月或甚至年的变化。例如, 对于视频流财产,长期趋势可指示在该星期的特定日子(例如,对应于新内容 发布)、在晚间、和在周末客户需求的增加。在另一示例中,对于补丁/更新 财产,长期趋势可指示在该月的特定日子(例如,在新补丁/更新内容发布时)、 和在一天内的特定时间(在许多客户机被配置来安装补丁/更新时)客户需求 的增加。

在所描绘的实施例中,与长期趋势和规则相关的组件114还包括负载平衡 器服务122和规则数据存储124。负载平衡器服务122配置用于分析长期趋势 数据存储116中的流量模式数据,以创建/修改与将在边缘数据中心102处的 服务器分派给各种财产相关的规则,并将规则存储在规则数据存储124中。规 则数据存储124使得规则对于在每个边缘数据中心处的负载平衡器代理(104a、 104b)可用(如在规则数据存储124和负载平衡器代理之间的箭头所描绘的)。 对应地,负载平衡器代理能够从规则数据存储124检索规则并将该规则用作它 们资源分配决定的一部分。

如长期趋势数据存储116和负载平衡器服务122之间的双箭头所指示的, 负载平衡器服务122可从长期趋势数据存储116接收长期趋势数据,并还将反 馈提供给长期趋势数据存储116。例如,负载平衡器服务122可细化/优化对 长期趋势数据的收集。此外,如规则数据存储124和负载平衡器服务122之间 的双箭头所指示的,负载平衡器服务122既可从规则数据存储124读取规则也 可向规则数据存储124提供规则输入和调整。

在一些实施例中,CDN将财产分配给跨边缘数据中心(诸pop)的池。在 属于特定池的特定pop处的一组服务器是那个池的分区。这些服务器服务于在 pop处的池的财产。图2,例如,示出了用于分隔、分区和/或分配示例CDN 的资源的示例方案。示例CDN包括三个pop(或边缘数据中心)。这些包括有 50个服务器的“pop A”、有80个服务器的“pop B”,以及有100个服务器 的“pop C”。如水平省略号所指示的,示例CDN可包括任何数量的pop。

如所描绘的,示例CDN将示例CDN资源分成多个池,包括“池1”、“池 2”,和“池3”。如垂直省略号所指示的,示例CDN可包括任何数量的池。 每个池包括在一个或多个pop处的一个或多个服务器的一分区。例如,池1包 括在pop A处的分区1A(10个服务器)、在pop B处的分区1B(25个服务器), 以及在pop C处的分区1C(20个服务器)。如所描绘的,池2包括在pop A、 B、和C处的分区(2A、2B和2C),并且池3包括在pop A和B处的分区(3A 和3B)。

各财产可被分配给各池。例如,五个财产可被分配到池1,10个财产可被 分配到池2,4个财产可被分配到池3。对应地,每个池的各分区中的服务器被 保留来服务于分配给池的财产。例如,在pop A,分区1A的10个服务器被保 留来服务于分配给池1的五个财产,在pop B,分区1B的25个服务器被保留 来服务于分配给池1的五个财产,以及在pop C,分区1C的20个服务器被保 留来服务于分配给池1的五个财产。在一些实施例中,财产可被分配给多个池, 并且那些池可被分配给同一pop。因此,财产可被分配给在单个pop处的(对 应于不同池的)多个分区。

在图1和2的上下文内,存在多个可被用作管理服务器分配的一部分的方 法用于服务于在CDN内的财产。

1.负载平衡算法

各实施例包括由在边缘数据中心102处的每个负载平衡器代理执行的负载 平衡算法。通过使用该负载平衡算法,每个负载平衡器代理利用来自NRT数 据存储112的NRT数据和来自规则数据存储124的规则两者来作出本地服务 器分配决定。

图3示出了用于将CDN的边缘数据中心处的服务器资源分配给由边缘数 据中心服务的财产的示例方法300的流程图。方法300将参考计算机架构100 的组件和数据来描述。

方法300包括根据趋势流量对财产进行排序的动作(动作302)。动作302 可包括,基于近似实时数据,通过趋势流量在边缘数据中心处对多个财产进行 排序的动作。例如,负载平衡器代理104a可将来自NRT数据存储112的NRT 数据与来自规则数据存储124的规则进行比较,以确定在边缘数据中心102处 一个或多个财产正在经受的流量模式的类型。负载平衡器代理104a可接着将正 在经历流量激增的财产(例如以优先级降序)进行排序并将它们置于经排序的 财产列表中。方法300的其余部分可接着根据经排序的财产列表作出资源分配 分派,使得激增的财产在非激增财产之前被分配服务器资源106a。

方法300还包括在经排序财产列表中选择下一个财产的动作(动作304) 以及为所选择的财产选择下一个分区的动作(动作306)。例如,负载平衡器 代理104a可在经排序的财产列表中选择具有最大趋势流量的财产,并接着选择 那个财产被分配的第一分区。

方法300还包括为所选分区中的所选择的财产计算服务器需求的动作(动 作308)。动作308可包括基于从长期趋势中发展的一个或多个规则为在边缘 数据中心处经排序的多个财产的至少一个财产分配服务器资源的动作,包括为 在边缘数据中心处的分区中的至少一个财产计算服务器需求。例如,动作308 可包括负载平衡器代理104a基于趋势流量改变财产的负载类型并基于新的负 载类型为财产确定服务器需求。

在一些实施例中,基于诸如财产的过去流量模式(例如,如后面结合孵 化描述的)、手动分派、或来自客户的指定,财产可被分派规则内的一般负载 类型。例如,每个财产可在每个pop中基于其在那个pop处的典型客户机负载 根据“T恤尺寸”(例如,S,M,L,XL)来分类。因此,在一个实施例中,动 作308可包括负载平衡器代理使用NRT数据来确定当前趋势流量将导致财产 达到将导致在pop处负载类型增加(例如从L到XL)或减少的点。基于对财 产需要负载类型增加/减少的确定,负载平衡器代理可在pop向财产分派新负 载类型。接着,负载平衡器代理可基于新负载类型为财产计算新服务器需求。

计算新服务器需求可包括从各规则中检索新负载类型的财产的一般服务 器需求。例如,规则可指定负载类型XL的财产的一般服务器需求,如表1所 示:

财产负载类型 最小服务器需求 倍数 XL 20 10

表1

表1指定最小服务器需求和倍数。最小服务器需求是能够完成pop处的此 类财产的100%需求的总的专用服务器的计数。倍数定义针对此类财产应当允 许多少弹性余量。

计算新服务器需求还可包括计算财产的pop负载。例如,基于其池分派, 财产可跨各pop来分配,如表2所示:

财产ID Pop ID Pop分配负载 财产1 Pop A XL 财产1 Pop B XL 财产1 Pop C XL 财产1 Pop D L 财产1 Pop E L 财产1 Pop F S

表2

此外,每个负载类型可对应于系数权重。例如,系数权重可以是如表3中 指定的:

负载类型 权重 XL 5 L 3 S 1

表3

基于表1-3,负载平衡器代理可针对每个负载类型的财产计算服务器需求 计数,如表4所示:

负载类型 计数   XL 3*5(XL负载类型的数量乘以XL负载类型的权重) 15 L 2*3(L负载类型的数量乘以L负载类型的权重) 6 S 1*1(S负载类型的数量乘以S负载类型的权重) 1 总和   22

负载平衡器代理可接着使用以下等式为所选分区中的所选财产计算分配 百分比:

分配百分比=((在一pop处的一负载类型的数量)*(来自表3的负载类型

的权重))/(来自表4的总和)

例如,对于pop A,分配百分比可被计算如:(1*5)/22=0.227或~22%。

表5示出了每个pop中的财产1的分配百分比:

财产ID Pop ID 分配百分比 财产1 Pop A (1*5)/22=~22% 财产1 Pop B (1*5)/22=~22% 财产1 Pop C (1*5)/22=~22% 财产1 Pop D (1*3)/22=~14% 财产1 Pop E (1*3)/22=~14% 财产1 Pop F (1*1)/22=~5%

表5

最后,每个pop中的财产1的所需服务器的数量可使用以下等式来计算: 所需服务器数量=(来自表1的最小服务器需求)*(来自表1的倍数)*(分配百分比)

例如,在pop A中的财产1需要20*10*22%=44台服务器。因此,pop A处的分区中的财产1的新服务器需求将是44台服务器。

在一些情况中,财产可被分派到两个或更多个重叠的池。在这样的情况中, 负载平衡器代理可计算pop中的负载的池分区共享。例如,财产1可被分派到 “北美池”和“国际池”两者,每个池被分派到至少一个公共pop。例如,表 格6描绘了示例池分配方案,其中池被分派到至少一个公共pop:

池ID Pop ID 服务器计数 北美池 Pop A 80 北美池 Pop B 50 北美池 Pop C 20 国际池 Pop A 100 国际池 Pop G 50

国际池 Pop H 35

表6

在这个池分配方案中,对于总共在pop A处180台服务器,财产1被分派 到作为北美池的一部分的pop A中的一个分区(80台服务器),以及作为国际 池的一部分的pop A中另一个分区(100台服务器)。计算pop A中的分区共 享可使用至少两个策略之一来完成:单纯分区分配或按比例分区分配。

通过使用单纯分区分配,负载平衡器代理可将pop中财产所需的服务器均 匀地分派给每个分区。例如,由于pop A中财产1需要44台服务器,负载平衡 器代理可将服务器需求的一半(22台服务器)分派给对应于北美池的分区,并 将服务器需求的一半(22台服务器)分派给对应于国际池的分区。

通过使用按比例分区分配,相反,负载平衡器代理可将pop中财产所需的 服务器按比例地分派给每个分区。例如,对应于北美池的pop A处的分区具有 对于pop A处的财产1可用的~44%(80台服务器/180台服务器)的服务器, 而对应于国际池的pop A处的分区具有对于pop A处的财产1可用的~55%(100 台服务器/180台服务器)的服务器。因此,由于pop A中财产1需要44台服 务器,对于总共44台服务器,负载平衡器代理可按比例地将服务器需求的20 台(44台服务器*44%)分派给对应于北美池的分区,并将服务器需求的24台 (44台服务器*55%)分派给对应于国际池的分区。

返回图3,方法300还包括向所选分区中的可用服务器分配财产需求的动 作(动作310)。动作308可包括基于从长期趋势中发展的一个或多个规则在 边缘数据中心处为经排序的多个财产的至少一个财产分配服务器资源的动作, 包括将对于至少一个财产的服务器需求分配到分区中的一个或多个可用服务 器。例如,动作310可包括负载平衡器代理104a使用一个或多个不同准则将负 载分摊分配到分区中的服务器。例如,在分配期间,负载平衡器代理104a可执 行以下的一个或多个:(i)聚集服务器资源,(ii)考虑数据的粘性,或(iii)考虑财 产的兼容性。

例如,动作308可包括根据资源聚集索引、高速缓存的数据的粘性的索引, 和兼容性索引的加权平均对分区中作为要被分派到财产的候选服务器进行排 序。例如,负载平衡器代理可为财产要被分派给的分区中的每个候选服务器计 算加权平均,并根据加权平均来排序那些服务器。经排序的服务器列表按次序 提供最合适服务器以用于分派到财产。

资源聚集索引提供在服务器处剩余的可用资源的估计的指示,并可以以任 何合适的方式被计算,用于估计服务器处的剩余资源。例如,负载平衡器代理 可跟踪哪些财产被分配到分区中的哪些服务器,并给定这些财产的平均负载来 估计每个服务器剩余可用资源。

高速缓存的数据的粘性的索引可指示数据已经被高速缓存在服务器多久 了。例如,负载平衡器代理可跟踪高速缓存的数据在服务器已经存活了多久。 数据被高速缓存越久,粘性越有价值,因为这个数据将显得更有价值。

兼容性索引可提供服务器处的不同财产的兼容性(或不兼容性)分数。例 如,负载平衡器代理可基于被分派到服务器的财产的兼容性来给服务器打分, 而把针对不兼容财产的出现的罚分考虑在内。负载平衡器代理可使用兼容性索 引来最小化不兼容财产分派。例如,由于主要使用网络I/O资源的财产可与 主要使用盘I/O资源的财产兼容,负载平衡器代理可将这些财产分派到同一 服务器,而避免将同样重度使用网络I/O和盘I/O的其它财产分派到那个服 务器。

计算兼容性索引可包括:(i)从各规则获取预定义的不兼容财产类型和大小 的罚分系数;(ii)使用来自各规则的兼容性矩阵来获得主存在服务器上的全部不 兼容财产的列表;(iii)标识服务器上的财产的负载类型(例如,S、M、L、XL) 以及它们出现在服务器上的频率;以及(iv)对于每个不兼容财产类型,将它们的 罚分系数提升到频率的幂。计算兼容性索引(compatibility index)可用以下等 式汇总:

compatibility>=(Πi=1ncifi)*100

其中:

n=特定负载类型的不兼容财产计数,

c=兼容性罚分系数,以及

f=特定负载类型的不兼容财产的出现频率。

例如,表7表示示例兼容性矩阵,它可被定义在各规则中,指定哪些财产 类型相互兼容:

类型1 类型2 T1 T2 T4 T1 T4 T2 T4 T3

表7

例如,财产类型T1可以是主要使用盘I/O的财产,而财产类型T2是主 要使用网络I/O的财产。此外,表8表示各规则中定义的示例罚分系数,它 指定特定大小的不兼容财产的罚分:

负载类型 兼容性罚分系数 XL 0.6 M 0.7 S 0.90

表8

如果,给定上面的兼容性索引,服务器要被分派三个不兼容的XL大小的 财产,两个不兼容的M大小的财产,和一个不兼容的S大小的财产,服务器的 兼容性系数索引将使用上面的公式来计算如:(0.6)3*(0.7)2*(0.9)*100= 9.52%.

通过以最大化兼容性索引分数的方式作出服务器分派,负载平衡器代理可 使兼容财产到服务器的分派最大化并更高效地使用服务器资源。

如前面讨论的,负载平衡器代理可为财产要被分派给的分区中的每个候选 服务器计算加权平均,并根据加权平均来排序那些服务器。例如,如果财产需 要被分派到五个服务器的一分区,针对一个服务器的加权平均的计算可被如表 9指定的来执行:

表9

对分区中的其它四个服务器也可以计算类似的加权平均。五个服务器可接 着根据它们的加权平均值来排序。表10示出一个排序示例:

服务器ID 分数 1 70% 2 50% 3 50% 4 42% 5 38%

表10

财产可接着根据经排序的次序来被分派到服务器,具有更高分数的服务器 更合适将财产分派给它们。

财产可通过更新财产到服务器的映射来被分派到服务器。在作出财产分派 之后,负载平衡器代理可为所分派的服务器调整聚集资源索引以考虑将被新分 派的财产使用的资源。

方法300还可包括处理服务器缺陷的动作(动作312)。在一些实例中, 在一分区中pop可能不具有足够的服务器资源以完全将财产分派到可用服务 器。当这个发生时,动作312可包括在pop处的负载平衡器代理请求一些负载 由在其它pop处的服务器分摊。这进一步结合代理间负载平衡来描述。如果没 有其它pop可处理所请求的负载,财产可被分派到在该pop处的同一服务器多 次。动作312还可包括诸如向CDN管理员发出一个或多个警报。

方法300还包括确定针对经选择的财产是否存在更多分区的动作(动作 314)以及确定在经排序的财产列表中是否存在更多财产的动作(动作316)。 当存在更多分区和/或财产时,方法300可跳回到动作304和/或306,确保 全部财产和分区被考虑并且任何合适的服务器分派被作出。

2.含优先权的代理间负载平衡

在一些实施例中,在边缘数据中心处的负载平衡器代理可(基于规则)确 定在边缘数据中心处的负载条件已经达到指示过载的特定参数。当这个发生 时,负载平衡器代理可联系在一个或多个其它边缘数据中心处的其它负载平衡 器代理,以试图将在该边缘数据中心处的一些流量平衡到一个或多个其它边缘 数据中心。例如,图1包括边缘数据中心102a和边缘数据中心102b之间的双 箭头,指示负载平衡器代理104a和负载平衡器代理104b可相互通信(并与在 其它边缘数据中心处的其它负载平衡器代理通信)。

图4示出了用于边缘数据中心处的负载平衡器代理将流量卸载到另一边缘 数据中心的示例方法400的流程图。方法400将参考计算机架构100的组件和 数据来描述。

方法400包括确定流量应当被卸载的动作(动作402)。动作402可包括 确定在边缘数据中心处的流量应当被卸载到一个或多个其它边缘数据中心。例 如,负载平衡器代理104a可从规则数据存储124中查阅业务规则以确定流量是 否应当被卸载。在一些实施例中,业务规则也采取以下形式:使用任何合适的 结构化语言(例如XML、C#、Java),if<condition>then<action>(如果<条 件>那么<动作>)。在一些实施例中,示例规则可包括:

●如果代理发现pop中的资源消耗达70%,那么就尝试将25%的流量卸 载到其它pop。

●如果代理检测其pop的健康下降在30%-40%之间,那么就尝试将50 %的流量卸载到其它pop。可根据NRT数据中的健康索引来测量健康, 健康索引根据类似多少服务器在转/不转、多少服务器被加载等的因 素给pop健康进行打分。

方法400还包括向其它边缘数据中心发送卸载请求的动作(动作404)。 动作404可包括确定请求将流量卸载到其它边缘数据中心的优先级水平的动 作。例如,负载平衡器代理104a可确定将流量卸载到其它边缘数据中心的紧急 度,并据此确定优先级水平。在确定是否向负载平衡器代理104a出借资源时, 其它负载平衡器代理可使用该优先级。在一些实施例中,优先级水平可包括在 表11中指定的示例:

表11

动作404还可包括向每个其它边缘数据中心发送卸载请求的动作,每个卸 载请求指示所确定的优先级水平。例如,负载平衡器代理104a可向在边缘数据 中心102b处的负载平衡器代理104b发送卸载请求。负载平衡器代理104a还可 向在未描绘的其它边缘数据中心处的一个或多个其它负载平衡器代理发送卸 载请求。当一负载平衡器代理向多个其它负载平衡器代理发送卸载请求时,该 负载平衡器代理可以以定时的、异步的方式来这样做。

方法400还包括向其它边缘数据中心发送卸载请求的动作(动作404)。 动作404可包括从一个或多个其它边缘数据中心接收一个或多个回答的动作, 包括指示资源可被该负载平衡器代理使用的一个或多个回答。例如,负载平衡 器代理104a可从它向它们发送卸载请求的一个或多个边缘数据中心接收回答。 回答可指示其它边缘数据中心具有可由该负载平衡器代理用于卸载流量的资 源。在一些实施例中,回答包括在其它边缘数据中心处的可用的服务器的列表。 在一些实施例中,回答指示资源保证有效并且被保留以供负载平衡器代理104a 使用预定或协商的一段时间。动作404还可包括接收指示资源不能供负载平衡 器代理使用(即,协助是不可能的)的一个或多个回答。

方法400还包括向至少一个边缘数据卸载流量的动作(动作408)。动作 408可包括对一个或多个回答进行排序以标识至少一个边缘数据中心供卸载流 量的动作。例如,如果负载平衡器代理104a从一个以上边缘数据中心接收肯定 回答,负载平衡器代理104a可将这些回答进行排序以确定流量应当被卸载到哪 个(些)边缘数据中心。在一些实施例中,对回答排序包括为每个数据中心计 算各因素的加权平均。因素可包括,例如,边缘数据中心的(物理的或网络的) 距离、将流量卸载到该边缘数据中心的花费(例如,针对带宽的货币花费)、 和/或已经在该边缘数据中心成为可用的资源。例如,即使一个边缘数据中心 相对于其它可用边缘数据中心具有更高的货币花费,可能希望使用那个边缘数 据中心,因为它相比其它可用边缘数据中心可提供更多数量的资源,和/或因 为它比其它可用边缘数据中心更近。

动作408可包括向至少一个已标识的边缘数据中心卸载流量的动作。例如, 一旦想要的边缘数据中心被选择,负载平衡器代理104a可向所标识的边缘数据 中心发送想要使用的服务器的列表连同资源清单。负载平衡器代理104a可将一 些流量卸载到一个边缘数据中心,并将其余的流量卸载到一个或多个其它边缘 数据中心。

如果一个边缘数据中心已经使得资源对负载平衡器代理104a可用,且负 载平衡器代理104a将不使用那些资源(例如,因为它选择使用在另一个边缘数 据中心处的资源),负载平衡器代理104可通知该边缘数据中心那些资源可被 释放。例如,负载平衡器代理104a可通知一边缘数据中心在该边缘数据中心处 的成为可用/保留的一些或全部服务器可被释放。

因此,当边缘数据中心确定它进入或接近过载情况时,方法400允许该边 缘数据中心利用在其它边缘数据中心处的资源。

3.在中央服务和规则数据库之间的反馈回路

如先前讨论的,负载平衡器服务122,在一些实施例中,是与长期趋势数 据存储116和规则数据存储124进行双向通信的。因此,负载平衡器服务122 可被配置来参与到反馈回路以基于长期趋势来自我评估和自我改善规则。通过 将来自长期趋势数据存储116的长期数据用作主要输入,负载平衡器服务122 可确定针对配置参数和在规则数据存储124中的业务规则的经优化的设置。

在一些实施例中,反馈回路显式地发生。例如,当对配置值(例如,兼容 性罚分、排序准则权重)作出改变时,负载平衡器服务122可为CDN、为pop、 为财产等作出性能数据快照。接着,负载平衡器服务122可随后分析该快照以 确定对配置值的改变对相关组件的性能的影响。如果存在由改变引起的CDN 中的性能下降,警报可被生成和/或配置值可被自动调整(例如,恢复原状)。

在附加或替换的实施例中,反馈回路隐式地发生。由于日志数据可(例如 被趋势聚集器118)持续聚集和(例如被负载平衡器服务122)分析,并且由 于负载平衡器服务122被配置来识别并适应日志数据中的改变(例如,每天地), 对财产的负载和/或由财产消费的资源的类型的改变应当最终被考虑。

反馈回路可在实况的和模拟的日志两者上工作,并且可在实况的和模拟的 配置参数/规则两者上操作。表12指定反馈回路的隐式和显式元素如何在每 种类型上工作。

表12

4.孵化

一些实施例包括一个或多个孵化池的使用。通常,当财产首先被添加到 CDN时,CDN可将财产分派到孵化池。在孵化池中,财产被分析以确定财产 的一个或多个属性,诸如T恤尺寸(例如S、M、L、XL)以及流量模式(例 如,峰值流量周期,低流量周期等)。一旦财产已经在孵化池的上下文内被分 析,该财产就可被分派到更一般的池。

图5示出了用于使用孵化池确定财产的一个或多个属性的示例方法500的 流程图。方法500将参考计算机架构100的组件和数据来描述。

方法500包括确定孵化周期的动作(动作502)。动作502可包括基于对 负载大小的估计和财产的流量类型并基于定义添加到孵化池的财产的最小和 最大孵化时间的一个或多个规则来确定孵化周期的动作。例如,负载平衡器服 务122或CDN内的另一个管理系统可为要被添加到该CDN的财产确定孵化周 期。确定孵化周期可基于(例如从客户)所提供的关于财产的信息,并基于规 则数据存储124中的一般业务规则。

在一些实施例中,确定孵化周期是基于可影响财产在孵化中花费的时间的 量的客户事实索引(CTI)。如果客户具有高CTI,意味着CDN具有关于客户 如何特征化财产的高级别的信任,那么CDN可将那个客户的新添加的财产在 孵化中留较短时间周期。相反,如果客户具有低CTI,意味着CDN具有关于客 户如何特征化财产的低级别的信任,那么CDN可将那个客户的新添加的财产 在孵化中留较长时间周期。

例如,当客户初次将一个财产登载到CDN时,CDN可询问客户关于该财 产的一个或多个问题。这些问题可被设计来帮助CDN计算财产的属性的一般 近似值(例如,负载大小和流量类型)。如果这是客户登载的第一个财产,CDN 可对客户提供的回答应用相对低级别的信任,并将该财产在孵化中留较长时间 段。

在财产进入孵化之后,CDN可基于对财产的实际使用的观察来计算先前估 计的属性。如果计算得的属性类似于基于客户输入近似的那些,那么该客户可 被分派高CTI。如果计算得的属性与基于客户输入近似的那些不类似,那么该 客户可被分派低CTI。CDN可随时间,诸如在财产已经被释放到生产池之后通 过重新计算属性并因此更新CTI来细化客户的CTI。

在一些实施例中,CTI是表示为百分比的合成索引。CTI可基于客户的说 出关于财产特征的“事实”的跟踪记录。CTI也可以基于财产的实际性能。客 户的跟踪记录和财产的实际性能可被不同地加权(例如,客户的事实的权重为 1,而实际财产性能的权重为2)。例如,如果客户具有80%的历史CTI,并在 新财产孵化期间,实际性能是客户估计的90%,新CTI可被计算为(80+(90*2)) /3=~86%。

如所指示的,确定孵化周期是基于规则数据存储124中的业务规则。例如, 规则可指定最小孵化周期和最大孵化周期。基于CTI,最终孵化周期可在最小 和最大之间。例如,如果客户具有为90%或更大的CTI,那么客户的新财产可 在孵化中仅被留最小周期。如果客户具有少于90%的CTI,那么客户的新财产 可在孵化中被留大于最小周期,并随CTI分数变低接近最大周期。

方法500还包括向孵化池添加财产的动作(动作504)。动作504可包括 向孵化池添加财产的动作,包括将孵化池的一个或多个服务器资源分配到该财 产。例如,负载平衡器服务122或CDN内的另一个管理系统可将该财产分派 到被设置为与孵化池隔开的指定池。如此,财产可被分派到在边缘数据中心/ pop处的对应分区。

动作504还可包括为所确定的孵化周期分析财产的负载和流量模式。例如, 在其在孵化池中期间,负载平衡器服务122可分析客户机负载模式、财产提供 的内容的类型、在服务客户机时在边缘数据中心的服务器处使用的资源的类型 等等。动作504还可包括基于向孵化池添加财产来确定该财产的负载大小或流 量类型的动作。例如,通过使用在孵化期间收集的数据(例如,客户机负载模 式、财产提供的内容的类型、在边缘数据中心的服务器处使用的资源的类型), CDN可计算财产的大小和流量类型,并将此信息存储在规则数据存储124中。

方法500还可包括处理孵化溢出的动作(动作506)。例如,规则数据存 储124中的规则可指定条件,在该条件下新孵化的财产可溢出其被分配的资源 并使用附加资源。在一个示例中,规则可指定VIP客户的财产可自动被允许溢 出,并且该溢出默认对非VIP财产禁止。在另一个示例中,规则可指定如果财 产展现了超过了特定的阈值的持续的增长,对该财产溢出可被允许。规则还可 为停止溢出指定条件。

动作506可包括确定财产超出一个或多个被分配的服务器资源并将一个或 多个附加资源分配到该财产的动作。例如,负载平衡器服务122或CDN内的 另一个管理系统可确定财产成长到大于其被分配的资源并因此它被允许溢出。 作为响应,CDN可分配给该财产该孵化池内的更多资源,溢出到另一个孵化池 内的资源,和/或溢出到非孵化池内的资源(例如针对VIP客户)。

方法500还可包括执行孵化后步骤的动作(动作508)。例如,在孵化周 期结束后,可确定已收集到关于该财产的并不足够的信息。因此,对该财产的 孵化周期可被延长。在另一个示例中,该财产的客户的CTI索引可被更新,如 上面描述的。在又一个示例中,可为财产在孵化阶段花费的时间向客户开具账 单,和/或收费规则可基于在孵化期间收集的信息来更新。

方法500还可包括对财产加压。例如,当财产在孵化中时,CDN可对财产 运行压力测试负载。这样做可帮助确定在极端负载情形期间财产的行为模式以 及财产对CDN的影响。在一些实施例中,如果客户选择经受压力测试,他们 可被给予令人满意的收费待遇。例如,在登载期间,可向客户提供对执行针对 财产的压力测试的选项。客户可能能够指定压力测试参数,诸如压力测试时间 段,用作压力测试的一部分的综合测试数据的类型,等。压力测试参数的类型 和边界可在规则中被定义。CDN可使用CDN中未使用的或正在使用的资源、 CDN中的专用资源、和/或从CDN中分离的资源来生成压力负载。

因此,在将财产释放到一般CDN资源上之前,孵化可帮助获得关于财产 的数据并定义围绕财产的规则。这样做可帮助细化CDN的与客户的关系,并 保护CDN资源的完整性。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所 附权利要求书中定义的主题不必限于上述特征或动作或上述动作的次序。更具 体而言,所描述的特征和动作是作为实现权利要求书的示例形式而公开的。

本发明的各实施例可包括或利用专用或通用计算机系统,该专用或通用计 算机系统包括诸如举例而言一个或多个处理器和系统存储器的计算机硬件,如 以下更详细讨论的。本发明范围内的各实施例还包括用于承载或存储计算机可 执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质 可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指 令和/或数据结构的计算机可读介质是计算机存储介质。承载计算机可执行指 令和/或数据结构的计算机可读介质是传输介质。由此,作为示例而非限制, 本发明的各实施例可包括至少两种显著不同种类的计算机可读介质:计算机存 储介质和传输介质。

存储计算机可执行指令和/或数据结构的计算机存储介质是物理存储介 质。物理存储介质包括可记录型存储设备,诸如RAM、ROM、EEPROM、固 态驱动器(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储、磁盘存 储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的程序 代码装置且可由通用或专用计算机系统访问的任何其他物理存储介质。

传输介质可包括可用于携带计算机可执行指令或数据结构形式的程序代 码并可由通用或专用计算机系统访问的网络和/或数据链路。“网络”被定义为允 许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个 数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或 无线的组合)传输或提供给计算机系统时,该计算机系统将该连接视为传输介 质。以上介质的组合也应被包括在计算机可读介质的范围内。

此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形 式的程序代码可从传输介质自动传输到计算机存储介质(或反之亦然)。例如, 通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络 接口模块(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM 和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机 存储介质可被包括在还利用(甚至主要利用)传输介质的计算机系统组件中。

计算机可执行指令例如包括,当在一个或多个处理器处执行时使通用计算 机系统、专用计算机系统、或专用处理设备执行某一功能或某组功能的指令和 数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格 式指令、或甚至源代码。

本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置 的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、 膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或 可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、 平板、寻呼机、路由器、交换机等等。本发明也可以在通过网络链接(或者通 过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合) 的本地和远程计算机系统两者都执行任务的分布式系统环境中实践。如此,在 分布式系统环境中,计算机系统可包括多个组成部分计算机系统。在分布式系 统环境中,程序模块可位于本地和远程存储器存储设备两者中。

本领域技术人员还将理解本发明可在云计算环境中实践。云计算环境可以 是分布式的,但这不是必须的。在分布时,云计算环境可以国际性地分布在一 个组织内,和/或具有跨多个组织拥有的组件。在该描述和下面的权利要求书中, “云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、 应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这 样的模型(在被合适地部署时)中获得的任何其他多个优点。

云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、 快速灵活性、和所测定的服务等。云计算模型还可以以各种服务模型的形式出 现,诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)以及基础结构 即服务(“IaaS)。”云计算模型还可以使用不同的部署模型来部署,诸如私有 云、社区云、公共云、混合云等。

一些实施例,诸如云计算环境,可包括一系统,该系统包括一个或多个主 机,每个主机能够运行一个或多个虚拟机。在操作期间,虚拟机模拟可操作的 计算系统,支持一个操作系统并且也许还支持一个或多个其他应用。在一些实 施例中,每个主机包括管理程序,该管理程序使用从虚拟机的视角抽象出的物 理资源来模拟虚拟机的虚拟资源。管理程序还提供各虚拟机之间的适当的隔 离。因此,从任何给定的虚拟机的角度来看,管理程序提供该虚拟机正与物理 资源对接的错觉,即便该虚拟机仅仅与物理资源的表象(例如,虚拟资源)对 接。物理资源的示例包括处理容量、存储器、盘空间、网络带宽、媒体驱动器 等等。

本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实 施例在所有方面都应被认为仅是说明性而非限制性的。因此,本发明的范围由 所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围 内的所有改变都被权利要求书的范围所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号