阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

避免流量高峰期 CDN 问题的 10 个方法

  • 2018-07-26
  • 本文字数:2515 字

    阅读完需:约 8 分钟

在视频流媒体中,因平台火爆而出现问题是件好事。至少,这比根本没有观众要好。

也许你正在使用世界级的 CDN,但是,在大型赛事期间,当 CDN 的服务器和对等点流量变得饱和的时候,一些用户还是无法享受到流畅的体验。因为每个 CDN 拥有的容量都是有限的,所以都有其局限性。

更糟糕的是,每个 CDN 都是一个黑盒子,在任何特定时候几乎都不能提供可用容量的信息。因此,CDN 在大型赛事中的实际表现情况是无法预测的,尤其是当有不同内容供应商进行活动视频直播的时候。你会发现,实际上你和其他内容供应商在共享 CDN 这种稀缺资源上竞争。

今年的世界杯正如火如荼地进行着,可以说世界杯会是有史以来最大的流媒体活动。我们对一些进行世界杯视频直播的广播公司客户进行了采访,询问了他们为世界杯直播做了哪些准备。

根据采访,我们总结了如下10 个方面的经验。你可以主动采取这些行动,以确保用户在观看世界杯直播时尽可能获得最佳体验。用户已经为这次盛会等了足足四年,你可不想让他们失望吧。

1. 数据是关键 —— 了解 CDN 表现如何

使用 Mux、Youbora 或 Conviva 等服务以准确了解你的 CDN 表现如何。再强调一遍,每个 CDN 都是一个黑盒子,但是你至少应该从外部进行测试,并获得关于交付情况有意义的数据。

此图来源于某次活动现场直播的Peer5 分析仪表盘

Peer5 的内置流媒体分析还能对 CDN 交付提供很多洞察分析,即使你没有使用我们的 P2P 交付产品,你还是可以使用这些免费的分析数据 。如果目前你还没有分析数据,那么有一点分析总比什么都没有好。如果你有分析数据,那么可以把 Peer5 的数据和现有供应商的统计数据进行比较,以进行完整性检查。

2. 让 CDN 供应商为问题负责

CDN 提供商并不完美。它们经常返回 HTTP 错误,而且有些会优先考虑重要或者咄咄逼人的客户。与你的 CDN 提供商取得联系,准备好数据(#1 中提到的),并要求他们为你的大型赛事提供更好的性能。

如果你的 CDN 提供商没有解决问题,没有达到你的期望,就要考虑换 CDN!如今,换个 CDN 不再是个大麻烦了,通常只需要几天来部署和测试一个新的 CDN。

3. 如果你还没换 CDN,那么就用多个 CDN 以保安全

你不能仅仅依靠单独一个供应商来进行世界杯直播。流媒体直播的关键是冗余,如今使用多个 CDN 要容易得多。首先,纯粹使用 CDN 进行缓存,并删除任何类似摄入等供应商锁定的功能。然后,可以轻松地添加另一个(或者两个,甚至四个!)CDN。接着,你可以在 CDN 之间进行负载平衡,如果出现问题,就切换到没有问题的 CDN 上。

即使你无法更改供应商,无法真的从你的 CDN 迁移,也有办法使用额外的 CDN 进行缓存和冗余,同时仍然使用你的主 CDN 专门进行摄入 / 编码。

4. 改进多个 CDN 切换逻辑

你是如何在 CDN 之间实行负载平衡的?我们看到很多平台仍然使用非常简单的静态负载平衡方案。这意味着,每个用户在整个过程中被分配到一个 CDN,这可能是个问题。首先你必须要测试的是:如果一个 CDN 不能工作了(或者表现糟糕),是否能中途切换 CDN?你可以自己构建这个功能,或者采用第三方解决方案,比如:Cedexis 或 DLVR。

5. 多样化 CDN —— 添加一个无服务器 CDN

给你自己多准备条路。点对点(Peer-to-Peer,简称 P2P)网状网络在解决大规模问题方面已经有几十年的历史了。一旦谷歌开源 WebRTC,Peer5 就可以构建一个 P2P,一个无需终端用户下载或安装的无服务器 CDN,因为 WebRTC 已经嵌入了浏览器。这意味着 Peer5 对于终端用户来说是透明的,就像任何一个基于服务器的 CDN,并且与目前的流媒体架构无缝集成。

这个混合方法(传统的CDN + 无服务器CDN)很独特,因为它使交付堆栈完全多样化了,不受负载的影响。P2P CDN 是最终的流媒体保险方案,其中最棒的是,它完全免费。如果一切正常,并且传统的CDN 表现良好,那么你将永远不需要P2P 容量,也就不必为此付费。但是,如果一切都乱了套,并且观看人数太多了,那么,你就真的需要一个解决方案来解救你。

6. 增加一些额外的服务器

如今,很多公司运营着自己的数据中心,有时也和商业 CDN 合作。如果你运营自己的 CDN,谨慎起见,要增加一些额外的服务器以防万一。考虑到惊群(thundering herd)现象,要在为时已晚前启动更多的实例。

7. 准备好阻止更多用户访问视频流

没有人希望自己处于这个境地,但是,你也许需要在 CDN 出现问题的地区掐断连接。

考虑告诉用户是否 / 何时遇到了交付问题。或者,考虑从页面中删除视频元素一段时间。完全没有视频比有个不断出现错误和缓冲的视频要好一点。

通过采取这个步骤,你也减轻了 CDN 的负担。你肯定不希望在大型节目中出现错误信息或推送代码更改。提前开发这个功能,并确保你能够在需要的时候马上就能触发该功能。

8. 准备好妥协 —— 添加更低的格式标准

由于质量不够好,很多内容供应商不再提供 360p 格式。但是,在大型节目中,你应该考虑把它们添加进来。更低的格式标准意味着即使你的 CDN 受到压力,容量有限,一些终端用户仍然可以观看。

9. 完美并不总是好事 —— 删除更高的格式标准

一种更有趣的方法是,如果碰到紧急状况(容量问题),删除最高格式标准的能力。ABR 算法是很贪婪的,这意味着每个播放者都会试图从 CDN 攫取尽可能多的带宽,以获得尽可能高的视频质量。每个播放器都是独立的,不会“知道”服务器是否压力过大或者当前有多少个其他用户在请求视频片段。很有可能发生这样的情况:所有播放器都在争夺达到同样的最高格式标准,但是最终,没有一个能够做到(可以想想囚徒困境)。

同样,这不是一个理想的场景,但是,当糟糕的事情开始发生时,拥有一个可以消除副本的故障安全措施也许是非常有用的。

10. 了解极限 —— 事先进行压力测试

不幸的是,目前还没有完美的全球压力测试解决方案。有像 LoadRunner 这样的综合解决方案,会创建数以千计的请求发送给你的 CDN,但是这些请求通常将来自位于同一数据中心的几台服务器,它们和你的 CDN 有着良好的连接性。你不能真正超高规模地或在有困难的地区测试你的 CDN,这会非常昂贵和耗时。

我们找到的最佳解决方案是,使用以前大型赛事的真实数据,并认真地深入研究那些第 1 条中的分析所识别出的薄弱痛点。

祝你好运!

查看英文原文: 10 ways to avoid CDN issues at peak

感谢张婵对本文的审校。

2018-07-26 08:516795
用户头像

发布了 199 篇内容, 共 81.7 次阅读, 收获喜欢 293 次。

关注

评论 1 条评论

发布
用户头像
不错不错
2020-03-08 18:35
回复
没有更多了
发现更多内容

Verilog模块例化

二哈侠

Verilog语法 Verilog例化模块 Verilog教程

我在编码过程使用Jenkins自动化的姿势

软件工程师-罗小东

对比PyTorch、TensorFlow、JAX、Theano,我发现都在关注两大问题

OneFlow

人工智能 深度学习 函数转换

华为云会议,助力企业移动办公效率提升

i生活i科技

搞定 Redis 数据存储原理,别只会 set、get 了

小小怪下士

Java redis

从咖啡馆到世界,共赴下一个十年|写在EMQX开源十周年

EMQ映云科技

GitHub 开源 IoT emqx 12 月 PK 榜

华为云桌面之下的“冰山”:技术底座x繁荣生态加速模式进化

IT科技苏辞

华为云会议,助力企业高效办公

秃头也爱科技

【Spring专题】「开发指南」夯实实战基础功底之解读logback-spring.xml文件的详解实现

洛神灬殇

spring logback 12月日更 12 月 PK 榜

华为云桌面远程办公,真香!

爱科技的水月

头部效应明显,中小厂商「闷赚」的 Dating 赛道

融云 RongCloud

社交 虚拟

华为云桌面,一站式云上数字化创作深度解读

IT科技苏辞

华为云会议,更专业“会”更好

秃头也爱科技

阿里云香港节点全面故障给我们的启示

laofo

DevOps 研发效能 DevOps工具

随时随地一键开会,华为云会议大幅提升用户开会体验

i生活i科技

华为云会议助力大家保险提升沟通协作效能

i生活i科技

自动化测试技术笔记(三):如何编写技术方案

老张

自动化测试 技术方案

mysql数据库运维常用的shell脚本

@下一站

12月日更 12月月更

【JWT】jwt令牌研究

No8g攻城狮

JWT\ JWT

华为云会议,让会议更智能

秃头也爱科技

数字化办公,就选流畅、清晰的华为云桌面

i生活i科技

网络安全实战之植入后门程序

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

华为云桌面,为企业发展打造优质云办公环境

爱科技的水月

华为云桌面为企业数字化发展赋能强劲动力

爱科技的水月

华为云桌面协同办公,助力建筑行业数字化转型

爱科技的水月

华为云会议——安全得多,高效得很

秃头也爱科技

华为云桌面Workspace,如何为用户开启全新办公模式?

爱科技的水月

IntelliJ IDEA中我最爱的10个快捷操作

JAVA旭阳

Java IDEA

HTTP的状态码

穿过生命散发芬芳

HTTP 12月月更

2022-12-21:uifd/ui-for-docker是docker的web可视化工具。请问部署在k3s中,yaml文件如何写?

福大大架构师每日一题

Docker 云原生 k8s k3s 福大大

华为云桌面,企业云上办公为何都偏好它?

i生活i科技

避免流量高峰期CDN问题的10个方法_音视频(后端)_Hadar Weiss_InfoQ精选文章