在多 CDN 架构中,您可以跨具有重叠地理覆盖范围的多个 CDN 提供商缓存您的视频片段。 通过利用不同提供商的优势并通过智能负载平衡算法最大限度地减少其劣势,将多 CDN 架构用于实时流式传输可提供更大的冗余和性能优势。
CDN 是任何流媒体服务基础设施的关键部分。他们将内容存储在世界各地的服务器上,并以近乎实时的方式提供给用户,无论他们身在何处。但是,随着传输视频的负载和复杂性的增加,越来越多的流媒体提供商正在转向多 CDN 架构。
在本文中,我们将探讨多 CDN 架构的工作原理以及多 CDN 架构的优势。我们走吧!
为什么你应该使用多个 CDN
当一个组织的流量负载增加超过他们当前对一个 CDN 提供商的容量限制,或者如果他们希望战略性地跨提供商在地理上分发他们的内容时,就会出现对多 CDN 策略的需求。
这是因为托管来自不同 CDN 提供商的内容有很多优势——地理冗余、安全性、提高性能和节省成本(多 CDN 可以通过平衡负载来帮助降低带宽成本)并利用不同 CDN 之间的定价差异针对不同情况、时间段等的供应商
首先,让我们快速了解一下什么是多 CDN 架构,然后深入了解实施策略。
什么是多 CDN 架构?
在多 CDN 架构中,网站/流媒体服务的内容(图像、视频文件等)在不同地理区域的多个 CDN 提供商之间进行缓存。
借助智能负载平衡算法和在交付管道的不同点收集的数据,来自视频播放器(客户端)的传入流量分布在这些多个 CDN 提供商之间,从而提供更大的冗余和性能优势。
数据通常通过 QoE/QoS 分析提供商收集,代码在服务使用的每个视频播放器上运行,或者通过测量网络性能的专有方式(例如,下载虚拟文件所花费的时间)收集。
中央规则引擎或服务器使用所有这些数据来决定多个 CDN 中的哪个应该服务于来自特定区域的请求。
接下来,我们来看看多CDN切换是如何实现的。
实现多 CDN 的不同方式
有多种实现多 CDN 的方法,例如循环法、DNS 切换、清单重写、HTTP 重定向和客户端切换。让我们看看这些技术是如何工作的。
在研究多 CDN 切换的实现之前,我们先来看看切换 CDN 的决策是如何做出的。主要有两种方法来决定使用哪个 CDN——基于静态规则的切换或基于动态规则的切换。
基于静态规则的切换与动态切换
基于静态规则的切换是一种简单的 CDN 切换形式,其中规则引擎使用简单的指令进行编程,例如“如果 CDN-A 失败,则将流量转移到 CDN-B”。这不能容纳大量智能,需要严密监控以确保不受规则约束的情况不会导致系统崩溃。
在Dynamic rules-based switching中,切换 CDN 的决定是基于从播放器、CDN 本身和其他业务规则中不断收集的。由于这些因素在白天动态变化,决策也会自适应地发生变化。
虽然以上内容适用于决策的制定方式,但现在让我们看看切换机制的实际实现,从简单的基于 DNS 的切换开始。
基于 DNS 的 CDN 切换
DNS 切换背后的想法涉及通过一个域名来引导所有内容请求,该域名可以实时和动态地处理流量分配。因此,例如,如果来自域的所有流量都需要从 CDN-A 重定向到 CDN-B,那么 DNS 将指向 CDN-B – 仅此而已。
虽然这种技术看起来很简单,但效率不高,因为 DNS 传播非常耗时,需要几分钟才能通过 Internet 传播。在随后的时间里,最终用户可能会向错误的 CDN 上的内容服务器发出许多请求,如果处理不当,最多会导致性能下降或所有请求的服务中断。
基于 HTTP 重定向的多 CDN 切换(服务端)
在这种方法中,当系统想要将流量从一个 CDN 转移到另一个 CDN 时,负载均衡服务器将为每个发出的请求返回一个HTTP 302 响应给最终用户。这会通知播放器不能在请求的 CDN 访问内容,应该使用响应标头中指示的备用 CDN(302 状态代码表示请求的资源已临时移动到标头中给出的 URL) Location
。
因此,与耗时且不是精确形式的切换的 DNS 切换相比,HTTP 重定向可以更快地响应网络和 CDN 条件的变化。
但是,基于 HTTP 重定向的多 CDN 路由方法有哪些缺点?
- 使用负载平衡器服务器会在系统中引入新的故障点。每个请求都必须到达 URL 路由器(规则引擎),如果该服务器出现故障,您就会遇到问题。为了缓解这种情况,您可能必须平衡负载均衡器上的负载或确保它有足够的容量来处理流量高峰。
- 您正在增加往返时间,尽管幅度很小。这是因为每个请求都必须转到负载均衡器,然后返回到播放器,然后到新的 CDN,最后返回到播放器。
但是,团队可以通过将 CDN 解析/切换限制为每个回放会话的第一个请求来最大限度地减少这些问题。在这种情况下,RTT 在整体方案中可以忽略不计。此外,还降低了切换服务器的负载。
我们刚刚读到的是一种智能在服务器端的方法,但是,如果您想将其切换到播放器会怎样?
客户端中流切换
在基于服务器的技术中,中央服务器负责将流量转移到正确的 CDN。但是,在客户端切换中,切换机制被移动到播放器中。由于基于 HTTP 的流媒体的性质以及在 HLS 和 DASH 中使用可独立解码的片段,播放器可以独立地从不同的 CDN 获取每个片段(这种可能性存在)。播放器还拥有有关网络状况、延迟和其他因素的“最新”信息,这些信息使其作为决策节点具有吸引力。
播放器本身会检查每个请求,然后选择 CDN 来处理该请求。这需要对请求 URL 进行简单操作,服务可以在播放器本身执行此操作。
至于决策,你可以,
- 将规则引擎嵌入播放器,或者,
- 采用基于 API 的方法,玩家通过 ping 规则引擎获取最新推荐的 CDN 并在切换步骤中使用它。
虽然所有这些听起来不错,但客户端 CDN 切换也有缺点,例如 –
- 您需要将额外的智能嵌入到播放器中,并且必须对其进行编程以与维护所有规则和切换因素的外部服务器进行通信。
- 您需要为流媒体服务使用的每个播放器实现这一点,这是一个艰巨的任务!想象一下为 HTML5、Android、iOS、Roku、智能电视、Xbox 等编写、测试和维护 SDK。
- 此外,更改播放器中的流 URL 需要访问播放器的源代码(可能在开源播放器中)或闭源播放器中的 API。在无法提供此级别代码支持的平台中,您将无法在播放器端实现中流切换。
即时重写清单
会话开始 CDN 切换的另一种技术是即时重写清单。在这种方法中,决策服务器根据切换规则和因素重写清单以指向不同的 CDN。这需要加载(或重新加载)清单才能进行更改。虽然这似乎是一个简单的策略,但它需要一个服务器设置来重写并在重写后提供清单(即不被缓存)。该服务的一个变体还在清单中记录了一个 CDN 列表,播放器可以切换到以防其中一个 CDN 出现故障。
尽管这种技术看起来很简单,但在 HLS 播放列表与 DASH 清单中如何指定 URL、播放器在直播与 VOD 流中请求新清单的频率、清单重写器本身是一个新的点等方面存在问题-失败。
了解了实现多 CDN 切换的不同技术后,您现在一定已经意识到没有万能的方法。相反,公司可以根据他们的需求、基础设施能力和设计、预算和规模使用不同的策略。
接下来,让我们继续了解在多 CDN 负载平衡决策中使用的一些因素。
多 CDN 负载均衡使用哪些因素?
正如我们所了解的,多 CDN 策略对于在使用多个 CDN 时平衡负载和实施某些重要规则非常有用。但是,驱动多 CDN 负载平衡的因素是什么?我们现在来看看。
- 来自播放器的QoE / QoS 分析用于了解不同设备、资产、地理位置的性能和用户体验,并在不同级别进行汇总以供决策。
- 延迟:延迟指的是包含数据的数据包从发送方位置一路穿过网络并到达发送方所需的时间。如果 CDN 的延迟或响应时间延长,则可以将其用作将流量从该 CDN 转移出去的一个因素。同样,这些信息通常是从玩家那里获得的。
- CDN 成本或承诺:交付的每 GB 成本价格和基于承诺的定价是多 CDN 决策中的重要因素。提供商可以选择将流量从一个 CDN 转移到另一个 CDN 以满足提交或利用它们。
这些只是流媒体提供商可以提供给多 CDN 规则引擎的几个因素或数据点。我确信公司有自己的秘密武器和数据点,他们可以使用它们来微调设备、ISP、地理位置、一天中的时间等决策。
但是,完成所有这些之后,将多 CDN 切换到流媒体提供商的好处是什么?
视频流使用多 CDN 的好处
多 CDN 架构的一些有形好处是:-
- 通过跨多个 CDN 提供商缓存内容来提高性能(减少延迟) 。当他们的视频以低延迟和减少缓冲令人满意地流式传输时,这反过来会导致更高的客户满意度。
- 通过允许一个地区的用户访问世界边缘服务器另一部分的内容,实现更广泛的地理覆盖。
- 有助于避免供应商锁定。
- 更高级别的安全性,因为如果其中一个 CDN 受到攻击(DDoS,也许!),您可以将所有流量切换到另一个 CDN。
- 冗余是多 CDN 策略的直接好处和结果。
- 能够将预算分配到多个 CDN 并利用多个供应商的高峰/非高峰定价。
用于视频流的多 CDN 的缺点
虽然多 CDN 策略带来很多好处,但您必须考虑一些缺点 –
- 复杂的架构和另一个供应商集成来管理。
- 来源成本增加:当数据从 AWS S3(一种常见的视频来源)流向 AWS CloudFront 时,某些供应商(如 AWS)不会向您收费。但是,如果您将 AWS S3 与 Akamai CDN 一起使用,那么您必须支付原始 S3 的出口成本,从而使您的设置成本比以前更高。
- 跨多个 CDN 分配 CDN 负载可能会导致您无法满足与一个或多个 CDN 供应商的CDN 使用承诺。在全力以赴采用多 CDN 策略之前需要考虑的事项。
结论
我希望这篇关于多 CDN 的文章对您有用。我们讨论的每种方法都有很多优点和缺点,流媒体提供商和供应商需要找出适合他们/他们的客户的方法。
作者:Krishna Rao Vijayanagar
本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/13368.html