Netflix,作为视频流媒体界的巨头,凭借着丰富的创意内容和卓越的全球用户群体,早已在行业内独树一帜。截止至2024年第一季度,其全球订阅用户数量已飙升至惊人的2.7亿。每天,数千万的用户沉浸在Netflix提供的流畅精彩的观影体验中,而这背后,是众多系统的协同工作,持续优化以满足用户的期待。
在探索Netflix技术博客的过程中,我汲取了许多宝贵的经验分享。今天,我想聚焦于几个例子,展示Netflix所面临的工程挑战,以及他们如何通过坚持创新优先原则,为会员提供更优质的服务。
让我们先来谈谈Netflix在视频处理技术上所展现的卓越能力。作为大规模的视频流媒体平台,Netflix需要处理海量的高质量视频源。这些视频源大多来自Netflix内部制作团队和其他内容合作伙伴。为了提供最佳的视频体验,这些视频源需要经过精细的编码处理,以适应各种用户设备和网络带宽。他们的视频编码过程主要依赖AWS EC2实例来完成,利用云的弹性无缝地扩展或缩减资源。为了应对长时间的任务处理限制,他们将任务分割成较小的部分进行并行处理。随着4K和HDR内容的普及,Netflix成功将编码系统从集中式线性编码升级为基于微服务架构的分布式块编码,大大提高了处理效率和质量。Netflix还实施了自动质量检测,以确保视频的完美播放,及时发现并修复各种可能出现的编码问题。
当我们谈论Netflix的技术革新时,GraphQL技术的转型绝对是值得一提的重要里程碑。在2022年,Netflix对其iOS和Android应用进行了重大改革。他们将后端系统成功迁移至GraphQL,并在保证零停机时间的前提下完成了客户端到API层的全面重构。早期的移动应用主要依赖于内部开发的Falcor框架支持的单体式API。而新的GraphQL系统在保证稳定性的更优化了性能并提升了用户体验。为了确保新系统的正确性,Netflix通过一系列的AB测试进行了验证和优化。几个月的努力后,团队成功将移动端首页的流量百分之百迁移到了GraphQL。经过严格的回放测试和粘滞金丝雀测试后,Netflix确保了一切运行如预期并实现了无缝迁移。
除了技术革新外,Netflix还在广告推出方面展现了卓越的技术实力与策略思考。带有广告的订阅计划在Netflix全球范围内推出时引起了广泛关注。为了满足这一新的业务需求,Netflix扩展了现有基础设施以支持新的广告合作伙伴远程调用。他们设计了一种创新的模拟流量方案来测试新功能并增强团队的信心。利用数据科学团队的预测信息和AB测试平台模拟订阅者行为的方式十分独特且高效。这种策略确保了广告的推出既精准又流畅。
回放流量环境中,仿佛有成员在接收回音。Kafka消费者正在模拟一个设备播放内容的过程,并触发印象跟踪事件。经过细致的分析和不断的改进,回放流量逐渐增至满载状态,实现了全天候的24/7稳定运行。
让我们来探寻Netflix的混沌工程之旅。混沌工程这一术语是由奈飞公司创造的,是一种通过故意引入故障和异常情况来测试分布式系统稳定性的方法。
这段旅程始于Chaos Monkey的开发和使用。它像一名魔法师,随机砍掉生产环境实例,以确保工程师们编写的服务能够在关键时刻保持韧性。接下来的创新是FIT(故障注入技术),这项技术直接向微服务中注入故障。它赋予了Netflix在应用程序中定义故障注入点的能力,比如REST、gRPC、GraphQL、数据库或缓存。并且,Netflix能够决定微服务质量中处理的故障类型,包括故障延迟的任意组合。相较于Chaos Monkey的随机性,FIT更加精准。
为了进一步拓展测试的可能性,Netflix开始使用请求上下文,通过向请求中添加自定义头部来模拟失败场景。这种方式赋予了测试更大的灵活性,允许在更精细的层面上进行测试,覆盖请求和集群故障场景,而不仅仅局限于集群层面。
Canary策略被用来测试FIT的效果。在这个策略中,一小部分流量被导向Canary集群,与基线集群的行为进行对比,以检测异常情况。虽然这一策略非常有用,但它仍然无法完全传达成员的体验。为此,CRR(自定义资源路由机制)应运而生。它在请求中增加了更多的头部信息,确保被标记为金丝雀实验成员的请求始终被路由到金丝雀集群,增加了请求的黏滞性。
监控在奈飞的混沌工程中扮演着重要的角色。奈飞从会员设备和一级系统中收集事件数据和日志,将其转化为计数器。然后,通过对比金丝雀集群和基线集群的数据,评估系统的抗故障能力。
再来看Netflix的开放连接计划(OCP)。这是一个全球范围的CDN,旨在减少Netflix服务器的流量压力。Netflix Open Connect每天处理我们全部的视频流量,目前每天的观看时长超过1.25亿小时。
Open Connect是一组专为特定用途设计的服务器设备,被称为Open Connect Appliances (OCAs)。这些设备存储编码的视频和图像文件,并通过HTTP/HTTPS向客户端设备提供这些文件。这些OCAs被安装在互联网交换点(IXP)里,直接与互联网服务提供商(ISP)对接,深入ISP的网络中。
Netflix的内容大多从这些OCAs提供,而不是从互联网直接获取。这些OCAs分布在超过1000个地点,从大城市到偏远角落无处不在。它们直接从ISP将Netflix的数据流传输给用户,确保流畅、高效的观影体验。
这些是我从Netflix的技术博客中发现的关键点。如果你对这些内容感兴趣,不妨访问Netflix技术博客,那里有更多精彩内容等待你去探索。如果你喜欢这篇文章,请点赞、转发并留下你的评论。感谢你的支持! |