InfoQ 大会组织部祝您开工大吉!点击查看节中内容进度 >>> 了解详情
写点什么

为什么 Netflix“永不宕机”?

  • 2021-11-25
  • 本文字数:3992 字

    阅读完需:约 13 分钟

为什么Netflix“永不宕机”?

上个月,Netflix 出品的《鱿鱼游戏》剧集再次引爆全球无数观众。虽然“身经百战”的观众早已对这类大逃杀题材的作品建立起充分的心理预期,但 Netflix 凭借着对反乌托邦题材的极致挖掘再次证明,他们有决心打造一出迄今为止最成功的原创剧集,同时也向其他竞争对手证明自己的业务高度已然遥不可及。


与此同时,很多同类流媒体平台还深陷老大难问题而无法自拔:视频卡顿、控件失效或者服务崩溃等等。而 Netflix 却鲜少出现问题,这离不开其优秀的基础设施建设。近日,《The Verge》撰文谈 Netflix 庞大的服务器网络 Open Connect,其指出,正是这个不被太多人在意的技术细节,从根本上解决了大部分现代流媒体面临的共同难题。

Open Connect 的奥秘

过去十多年来,Netflix 流媒体服务出过多少次技术问题?不能说没有,但肯定屈指可数。服务的核心,也就是应用程序底层的工程方案,才是决定一切流媒体成功与否的关键。


Netflix 用了十年时间搭建起一套名为 Open Connect 的服务器网络。Netflix 公司 Open Connect 副总裁 Gina Haspilaire 表示,当初之所以要构建 Open Connect,是因为 Netflix“清醒地意识到,我们需要构建一定水平的基础设施技术才能维持起我们想要获得的预期流量。我们觉得自己能成功,也知道当时的互联网还支撑不起预期中的全球流量规模。”


没人能在应用程序不断崩溃、视频老在缓冲的情况下坚持看完一部电影。Netflix 对这个问题很有先见之明,他们知道要想保持稳定的质量水平,首先需要建立自己的内容分发系统。


Open Connect 是 Netflix 的内容交付网络,专门用于向全球用户分发电视节目与电影。项目始于 2012 年,包括由 Netflix 向互联网服务商提供物理设备,借此实现媒体流量本地化。这些设备存储着 Netflix 的内容副本,负责减少内容在抵达播放用户之前需要经过的通道数量,借此减轻网络压力。


大多数主要流媒体服务都依赖于第三方内容交付网络(即 CDN)实现视频传递,正是这种通行实践让 Netflix 的自有服务器网络变得鹤立鸡群。如果没有像 Open Connect 这样的系统或者其他第三方 CDN,互联网服务商所请求的内容必须“通过一个对等点、再经由四到五个其他网络,才能抵达数据源头或者内容存储位置。”内容交付网络厂商 Akamai 媒体工程首席架构师 Will Law 强调,这不仅会拖慢内容交付速度,而且考虑到互联网服务商可能需要付费才能完成内容访问,所以整个实现成本也更为高昂。


为了回避流量和成本问题,Netflix 会提前将内容副本发送至自有服务器,从而防止 Netflix 流量在流媒体峰值时段被播放端网络所阻塞。


我们的 Open Connect 会在离用户互联网服务商最近的位置部署一份 Bridgerton 副本——有时候甚至会直接部署在互联网服务商的网络之内。这就基本避免了互联网服务商先通过网络对接服务器、再把提取到的内容传输给用户的过程。”Gina Haspilaire 说道。



而且,Netflix 的服务器几乎无处不在。目前,Netflix 表示已经在 158 个国家/地区部署有 17000 台服务器,而且未来还计划进一步扩展其内容交付网络。根据介绍,Netflix 会根据哪些位置周边的用户更多、哪些区域的互联网服务器商合作门槛更低对服务器部署做出优先级排序。


Law 解释道,“为了提高性能,流媒体服务商纷纷将服务器尽可能靠近最终用户,再由这些服务器提供最后一英里区域内的网络内容。这就避免了把所有内容请求都返回源头,再将内容经由互联网整体传递的过程。这不仅减轻了互联网的传输负担,也缓解了对等点的承载强度。”


十年前 Open Connect 刚刚立项时,Netflix 也确定了与互联网服务商全面合作的基本部署思路。Netflix 免费为互联网服务商提供服务器,再由内部可靠性团队与这些服务商一道维护这些服务器设备。根据 Netflix 与 Akamai 的介绍,互联网服务商也能从中受益,因为就近获取内容副本可以降低他们的网络基础设施运营成本。


Law 称,“由此带来的运营职责不算特别繁重,但却带来了令人释怀的解脱。而且这些服务器的基本作用跟 Akamai 乃至其他 CDN 完全相同,唯一的区别就是它们只服务于 Netflix,属于 Netflix 内容的专属 CDN。”


包括 Akamai 在内大多数主要第三方 CDN 服务商都需要服务成千上万客户并应对企业提出的种种要求,而 Netflix 的内部 CDN 只着眼于一个目标:分发 Netflix 内容。Law 表示,为了顺利将电影或电视节目交付到每一位点播观众面前,内容分发商必须建立起这样一套全面的 CDN 合作关系或者服务器网络。


虽然 Netflix 没有透露他们搭建并维护这些服务器的具体成本,但也提到自十年前立项以来,Open Connect 的总投资已经达到 10 亿美元上下。他们还在不断向 CDN 投入大量资金,继续坚定推进这一以良好观看体验与用户高参与度为核心的 Netflix 业务战略。很明显,Netflix 的整个订阅商业模式之所以成立,依靠的就是为用户提供符合预期的视频流质量。


Netflix 还需要考虑到一个残酷的现实:美国的互联网基础设施在本质上可谓支离破碎、头尾难以相顾。


电子前沿基金会的 Katharine Trendacosta 在采访中表示,“Netflix 之所以必须建立自有 CDN,是因为美国的互联网服务商实在垃圾得不行。他们很清楚,只要寄希望于互联网服务商,就必然会有相当一部分用户始终受到视频缓冲或者低画质图像的折磨。”

为什么有效

Netflix 最关注的目标,就是无论互联网服务商有多差劲、都能保证用户享受到良好的内容观看体验。


为此,Netflix 会在服务器上为每部剧集或影片保留 3 个副本,这些副本的图像质量各不相同。如果您的互联网基础设施不堪重负甚至暂时中断,系统会导入码率较低的版本,保证用户始终有内容可看。


Haspilaire 解释道,“我们会根据网络质量调整内容,而不是根据内容调整网络质量。正因为如此,观众在观看时感受不到网络条件发生了哪些波动——流媒体内容一直在稳定呈现,而我们会随时间推移随时调整播放的版本……这样即使短时间内断开网络又重新连入,用户的屏幕上也不会出现缓冲提示。”


那么,为什么是 3 个副本?Trendacosta 指出,美国本地的互联网服务体验毫无可靠性可言。设施宕机、WiFi 连接不良乃至其他网络故障都有可能影响用户的互联网访问能力,而 Netflix 则尽可能与互联网服务商合作以解决大部分网络传输问题。


Haspilaire 提到,Netflix 会在非峰值时段预先部署好影音内容,保证这部分传输任务不会跟其他流量竞争互联网传输带宽。至于部署的具体内容和位置,Netflix 会提前预测高人气影片/剧集,并将数据相应发送至目标服务器。


Haspilaire 表示,“我们不只是把内容部署在世界各地的内容交付服务器上,同时也会根据预先做出的流行度预测设计部署方案。我们会预测哪些内容更受欢迎,并把影音尽可能部署在正确的服务器中。通过提前准备,我们的电影和剧集就能在黄金时段为几乎 100%的观众提供本地副本,基本消除了由网络服务中断引发的糟糕观感。”


之后,Netflix 会根据内容的受欢迎度在服务器上转移视频。Open Connect 拥有两类服务器:闪存型(提供更快的交付速度)和存储型(最多可容纳 350 TB 数据)。如果存储内容的人气不断提升,Netflix 就会把相应的副本转移到闪存服务器当中。


Netflix 公司解释道,“闪存服务器的基本定位就是支撑大部分流量服务,所以随着某些节目或影片的需求量提升,我们的 OCA 服务器就会把内容从存储型转移到闪存型、保障观众获得稳定的观看体验。”


新冠疫情的突然爆发,让全球数亿人窝在家中持续观看流媒体内容。而这一突发状况,也成为 Netflix 这项十年规划的收官之战与立威之路。Haspilaire 表示,“这场疫情以一种我们不愿看到的方式测试了 Netflix 基础设施与技术体系。”而 Open Connect 顶住压力,证明自己有能力帮助 Netflix 应对不断增长的未来需求。

流媒体之王

Open Connect 是 Netflix 在疫情期间赢得良好市场表现的一大支柱,但 Netflix 力压竞争对手靠的显然不只这一招。Rayburn 也向《The Verge》列举了 Netflix 视频与音频编码项目的例子,强调虽然看起来 Netflix 当下已经建立起“巨大的优势”,但作为战场中的后来者,他们还需要凭借服务品质与服务态度去吸引和留存用户。


Rayburn 指出,“每个人都承认,Netflix 建立起了一套能够大规模稳定运行的系统,而这也是整个流媒体行业最不关注的方向。只有在规模化运营中始终提供良好、优质的消费者体验,我们才能获得如此庞大的订阅者群体。没人拥有 Netflix 这样的基础设施规模,也没人拥有同等程度的专业积累。”


至于 Netflix 为什么这么成功,已经有不少人从各个角度进行剖析,其技术和企业文化也一直广受好评。资深架构师、微服务技术专家杨波曾向我们总结了一些 Netflix 的厉害之处,其中有几点尤其能体现 Netflix 在技术创新上的大胆和前沿。比如,在 2009 年左右, Netflix 就开始启动上公有云战略(虽然背后也是吃了自建数据中心的苦头),应用逐步向 AWS 迁移,这个过程一共持续了将近 5 年,到 2015 年的时候迁移完毕。而现在回想,2009 年左右的 AWS 其实还不太成熟,别说当时,即使现在也没有几个大厂敢提全部迁移公有云的战略。


又比如,Netflix 早在 2013 年就提出了 Cloud Native 理念,也就是现在常说的云原生,而且它的整个平台 (AWS IaaS + PaaS) 都是云原生的。近年容器技术大火,大家都在谈不可变基础设施的理念,本质就是镜像部署。Netflix 在 2012 年前就已经实现镜像部署,发布的单位是 AMI(Amazon Machine Image) 镜像。


另一方面,开放开源也是 Netflix 的一种竞争战略。在进行大规模生产级微服务架构实践的同时, Netflix 也开源了整个微服务技术栈,比如现在大家耳熟能详的 Zuul 网关、Eureka 服务发现注册中心、Hystrix 熔断限流、Archaius 配置等组件。对 Netflix 来说,开源有望能将自己的解决方案建立为行业标准和最佳实践。其次,开源亦可以帮助建立 Netflix 技术品牌,有利于雇佣、留住和吸引顶级工程师。第三,Netflix 可以从共享生态中获得反馈输入并受益。


随着其服务体系的不断扩张,也许终有一天各大老牌流媒体厂商反过来要从 Netflix 的基础设施与自上而下的业务战略中取经。甚至,Netflix 的方案可能最终会成为行业标准。


参考链接:

https://www.theverge.com/22787426/netflix-cdn-open-connect

2021-11-25 15:4514984

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | 使用 Zabbix + Grafana 搭建服务器监控系统

测吧(北京)科技有限公司

测试

Hacker 资讯 | 10 月中旬区块链黑客松活动汇总

TinTinLand

创业 defi 区块链、 黑客马拉松 web3、

2022 云栖大会 | 一体化大数据智能峰会预约开启

阿里云大数据AI技术

大数据 阿里云 开源

“程”风破浪的开发者|OpenHarmony设备开发-开发板介绍

坚果

OpenHarmony 10月月更 “程”风破浪的开发者

Spring Boot 应用使用 application.yml 和 application.properties 的区别

Jerry Wang

Java mvc spring 后端开发 10月月更

你的下一个电脑桌面,为何是云桌面?

科技之光

如何通过C#/VB.NET重命名Excel表格并设置选项卡颜色

在下毛毛雨

C# .net Excel 重命名工作表

ES6 Promise、Generator与async简单介绍与应用

木偶

前端 ES6 异步 10月月更

技术强、资源多,华为云等保合规解决方案助力企业快速过等保!

科技之光

80Gbps 双向带宽,120Gbps 疾速传输,英特尔携新一代 Thunderbolt 引领行业快步向前

科技之家

基于网络安全的Docker逃逸

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

细说JavaScript闭包

hellocoder2029

JavaScript

JS知识点梳理之作用域、作用域链、柯里化、闭包

hellocoder2029

JavaScript

JavaScript知识点总结

木偶

前端 js 10月月更

云堡垒机相关概念汇总说明-行云管家

行云管家

云计算 网络安全 数据安全 堡垒机

诺亚财富 X Hologres : 统一OLAP分析引擎,全面打造金融数字化分析平台

阿里云大数据AI技术

大数据 数据分析 企业号十月 PK 榜

深度解决企业传统办公痛点,华为云桌面使能云上办公!

科技之光

十年磨一剑,华为云数据灾备解决方案为你解决后顾之忧

科技之光

万物皆可DAO?一文带你全方位解读DAO类型

One Block Community

区块链 开发者 治理 DAO web3、

2022 云栖大会 | 开源人说预约:听百味技术人生,品激荡开源江湖

阿里云大数据AI技术

阿里云 开源

及时恢复,华为云灾备数据解决方案让你无忧办公

科技之光

8K AV1视频解码大战:Intel神奇、NVIDIA差点、AMD无语

科技之家

软件测试 | 测试开发 | 测试人生 | 疫情之下涨薪70%从手工转到测试开发,是种什么样的体验?

测吧(北京)科技有限公司

测试

Docker | 容器数据卷详解

甜点cc

Docker 前端 10月月更

Wallys/IPQ4018/IPQ4028 2x2 2.4Ghz 2x2 5Ghz Industrial-grade //wifi5 Support 11ABGN/AC

wallys-wifi6

IPQ4018 IPQ4028

何为云管平台?有什么作用?哪家好?

行云管家

云计算 云主机 云管理 云成本

JS词法环境和执行上下文

hellocoder2029

JavaScript

可适配多企业需求,华为云等保合规安全解决方案选择灵活!

科技之光

js对象和原型、原型链的关系

hellocoder2029

JavaScript

股票价格跨度

掘金安东尼

算法 10月月更

一文详解MySQL事务底层原理,全是干货,推荐收藏

一灯架构

Java 10月月更

为什么Netflix“永不宕机”?_大数据_核子可乐_InfoQ精选文章