Netflix的扩展手册:云、CDN与微服务
每次你在Netflix上点击播放,都会触发一个跨越大陆、数据中心和数千个微服务的分布式计算事件。为了向全球超过2.7亿订阅用户提供无缝流媒体体验,Netflix从根本上重新定义了内容编码、交付和规模化管理的模式。本文探讨了Netflix如何扩展其流媒体基础设施,通过三大策略:基于云的控制平面实现敏捷性,名为Open Connect的大规模定制CDN实现高效交付,以及以韧性为核心原则的微服务架构。理解这些层次,你将看到该公司如何持续实现低于100毫秒的延迟,并最大限度地减少数十亿日常请求的缓冲。
你将学到什么
通过本文,你将了解Netflix全球流媒体基础设施背后的架构决策。你将学习该公司如何将其“大脑”(控制平面)与“肌肉”(数据平面)分离,如何优化自有CDN以节省数十亿美元,以及为何将故障视为正常状态。你将获得一个清晰的思维模型,了解云计算、定制硬件和混沌工程如何结合,以扩展全球最大的互联网服务之一。
双面架构:控制平面与数据平面
为了有效扩展,Netflix将其架构分为两个不同的层次:控制平面和数据平面。这种分离是Netflix如何扩展流媒体基础设施的基石,允许每一侧针对其特定工作负载独立优化。
控制平面(AWS):大脑
在点击“播放”之前的所有操作都由运行在AWS上的控制平面处理。这包括浏览、搜索、推荐引擎、用户认证、计费和账户管理。这一层由数千个Java微服务组成,每天处理数十亿次请求。由于这种流量不可预测且与用户交互相关,因此非常适合云的弹性。Netflix利用AWS动态扩展这些服务——尤其是在重大内容发布期间,用户需求激增时。
数据平面:Open Connect
一旦你点击“播放”,数据平面就会接管。与控制平面依赖公有云不同,数据平面主要运行在Open Connect上,这是Netflix专有的全球内容分发网络(CDN)。这可能是Netflix如何扩展其流媒体基础设施以每天交付PB级数据的最关键组件。Netflix在过去十年中投资超过10亿美元建设该网络,使其成为唯一运营自有全球CDN的主要流媒体服务。
Open Connect:Netflix十亿美元CDN的内部揭秘
Open Connect是Netflix能够向165多个国家/地区流式传输4K视频,且超过95%的流量延迟低于100毫秒的魔法所在。Netflix没有向第三方CDN支付不断增长的带宽费用,而是掌控了自己的命运。
Open Connect设备(OCA)
Netflix将名为Open Connect设备(OCA)的物理服务器直接放置在互联网服务提供商(ISP)内部以及全球超过6000个边缘位置。通过将热门内容缓存到用户附近,Netflix减少了数据传输距离,并显著降低了Netflix和ISP的带宽成本。这些服务器不仅用于点播内容,还扩展到支持直播事件,在不同用例之间共享容量。
交付优化与效率
对于直播,Netflix对Open Connect进行了重大增强,以处理内容的实时性。Live Origin服务器是一个自定义微服务,位于云端编码管道和Open Connect之间。它使用“保持打开”请求技术:当客户端请求一个尚未发布的片段时,服务器会保持请求打开,直到片段准备就绪,从而减少持续404错误的“ chatter”。此外,为了处理可变比特率(VBR)编码的不可预测性,Netflix改变了其流量引导逻辑。它不是根据当前流量(在简单场景中会下降)进行路由,而是根据每个流的标称比特率预留容量,以防止在复杂的高比特率场景中服务器过载。
更智能的编码以提高效率
Netflix最近的一项创新是将直播流的编码从恒定比特率(CBR)转向可变比特率(VBR)。在CBR下,谈话节目和动作场景消耗相同的比特率,在简单场景上浪费数据,并在复杂场景上冒质量风险。VBR根据场景复杂度分配比特。Netflix在2026年初为所有直播活动推出了VBR,结果平均传输字节数减少15%,峰值分钟流量减少10%,同时重新缓冲次数减少5%。
微服务与韧性:为故障而设计
Netflix运营着数千个独立的微服务,主要用Java编写。这种架构允许团队独立部署并根据需求扩展服务。然而,拥有数千个活动部件,故障是不可避免的。Netflix不仅接受这一点,还为此进行设计。
混沌工程哲学
Netflix发明了著名的Chaos Monkey,一个随机终止生产环境中服务器的工具。这迫使工程师构建能够抵御突然故障的系统。这种做法扩展到直播管道,自动故障注入测试模拟缺失片段、云区域丢失或网络中断,以确保系统能够应对最坏情况。
智能负载丢弃
当流量峰值超过容量时,自动扩展通常反应太慢。为了解决这个问题,Netflix开发了基于服务级别的优先级负载丢弃。系统不是平等地丢弃所有请求,而是优先处理关键用户操作。
⚠️ 关键洞察: 在过载期间,Netflix丢弃低优先级请求(如预取)以保留其“成功缓冲区”用于高优先级请求(如用户发起的播放)。这确保了即使在极端负载下,核心观看体验也能保持完整。
直播运营层:人员基础设施
扩展技术只是等式的一部分。扩展运营同样关键。对于直播活动,Netflix构建了专门的人员基础设施以匹配其技术基础设施。该过程已从软件工程师在笔记本电脑上监控仪表板演变为复杂的“传输运营中心”(TOC)模型。为了管理多达10个并发直播活动,他们将角色分为专业操作员:
- 传输控制操作员(TCO): 管理来自场馆的输入信号。
- 流媒体控制操作员(SCO): 监督输出流媒体馈送。
- 广播控制操作员(BCO): 专注于活动的创意和质量执行。
这种“舰队”模型使Netflix每年能够流式传输超过400个全球活动,而无需大规模的一对一操作员与活动比例,同时仍为高风险活动保留“大赌注”模型,即整个控制室专门用于单个节目。
常见问题
Netflix如何应对突发流量峰值而不崩溃? Netflix结合了针对预期需求(如新季发布)的预测性预置和反应机制。在非计划峰值期间,其主要防御是基于服务级别的优先级负载丢弃,该机制丢弃低优先级的后台任务,以保留关键播放请求的容量,确保系统优雅降级而非完全失败。
什么是Open Connect,Netflix为何构建自己的CDN? Open Connect是Netflix自建的全球内容分发网络。它由数千台物理服务器组成,直接放置在ISP内部和边缘位置。通过控制硬件和软件栈,Netflix降低了用户延迟,节省了数十亿美元的带宽成本,并可以针对其流媒体协议优化交付。
Netflix如何确保不同设备上的视频质量一致? Netflix使用自适应比特率流和比特率阶梯。每个视频被编码为数百种不同分辨率和比特率(标清、高清、4K)的变体。你设备上的Netflix播放器实时监控网络状况,并自动切换到合适的变体,以在最小化缓冲的同时最大化质量。
Netflix如何直播WWE或足球比赛等活动? Netflix构建了自定义的基于云的管道,使用AWS Elemental MediaLive从广播中心摄取馈送,使用自定义的“Live Origin”服务器管理片段发布,并使用Open Connect在全球分发流。专门的**直播指挥中心(LCC)**实时监控整个管道,每秒处理多达3800万个事件,以立即检测和缓解问题。
Netflix如何使用混沌工程保持平台稳定? Netflix使用Chaos Monkey等工具随机终止服务器或向生产环境注入故障(如网络延迟或损坏的片段)。这种主动方法确保工程师构建能够自动从故障中恢复的系统,防止小问题演变为大规模中断。
来源
- Netflix技术博客:更智能的大规模直播:为所有Netflix直播活动推出VBR
- Netflix技术博客:人员基础设施:Netflix如何构建大规模直播的运营层
- InfoQ:从点播到直播:Netflix在1分钟内流式传输到1亿台设备
- Codemotion:Netflix如何通过Java和微服务扩展到2.7亿用户
- Netflix技术博客:Netflix Live Origin
- Netflix技术博客:介绍Netflix的键值数据抽象层
- InfoQ:在QCon SF 2025上使用基于服务级别的优先级负载丢弃增强可靠性
- Netflix技术博客:幕后:Netflix直播三年。第一部分
— Editorial Team
暂无评论。