最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Netflix 网站架构学习

来源:博客园


(相关资料图)

Netflix 网站架构学习

Netflix 架构的特点是他们没有自建数据中心,而是将服务直接架设在 AWS 的云服务上(EC2 和 S3),并通过自建 CDN Open Connect 提供高质量的点播服务。Netflix 采用微服务架构,将复杂业务流程拆解成独立的小型服务,服务间通过 REST 或 RPC 彼此调用。

CDN

CDN 的主要原理是利用位于不同地理位置的服务器集群,将内容存储在靠近用户的服务器上,从而减少内容传输的延迟和带宽使用。

当用户请求访问特定的内容时,CDN 会自动为用户提供最接近他们所在地理位置的服务器上的内容,这将使用户能够更快地访问网站和其他在线服务。如果某个服务器出现故障或网络拥塞,CDN 可以自动将用户请求重新路由到其他可用的服务器上,从而确保内容始终可用。

CDN 中内容的来源称为 Origin,而缓存服务器称为 POP(Point of Presence)。

视频网站使用 CDN 能带来哪些优势:

  • 性能优势:CDN 节点距离用户更近,请求内容的时延更小;
  • 可用性:单个节点宕机,其他节点能仍能提供服务;即使源服务器宕机,CDN 仍能利用缓存的数据提供服务;
  • 安全性:CDN 能缓解 DDos 攻击并提供其他安全功能;
  • 可拓展性:CDN 按使用的流量计费,且可以处理流量高峰。

Open Connect

Open Connect 是 Netflix 自建的视频 CDN,它是一种主动的、有针对性的缓存解决方案(相对于缓存未命中时找 Origin 拉取内容的 CDN 方案)。

Open Connect 由一堆专用服务器构成,这些服务器被称为 OCAs(Open Connect Appliances)

  • 存储编码的视频/图像文件,并通过 HTTP / HTTPS 将这些文件提供给客户端设备
  • 部署在 IXP 中,和 ISP 对等互连或直接部署在 ISP 网络内部

OCAs 和客户设备、Netflix AWS 服务之间的交互

  • OCAs 不存储客户数据(比如观看历史、DRM 信息)
  • OCAs 只执行两件事
    • 当客户端设备请求内容时,OCAs 服务器会通过 HTTP/HTTPS 提供内容
    • 向 AWS 中的 Open Connect 控制平面服务报告自己的状态
  • Open Connect 控制平面服务
    • 接收 OCAs 报告的数据,并利用这些数据来控制客户端通过 URL 访问最优的 OCA
      • 根据文件可用性、健康状况、与客户端的网络距离
    • 控制 OCAs 的填充行为
      • 根据算法预测用户行为,利用非峰值带宽更新 OCAs 上的视频
        • 受欢迎的视频可以有更多的副本

视频播放的整体流程

  1. OCAs 定期汇报健康状态、路由、文件可用性等信息给 AWS 上的 Cache Control Service
  2. 用户在客户端设备上通过 Netflix 应用程序请求播放电视节目或电影
  3. Playback Apps 会检查用户授权和许可证,然后根据客户端特征和当前网络条件确定选择合适的文件来播放
    • 应该指的是选择一个合适的分辨率或格式下的视频文件来播放
  4. Steering Service 使用由 CCS 存储的信息来选择应该让哪个 OCA 提供请求的文件,生成相应的 URL 并将其交给 Playback Apps
  5. Playback Apps 将适当的 OCA 的 URL 交给客户端设备,由 OCA 提供请求的文件
    • Playback Apps 会返回一组 URL,由客户端来选择连接哪个 URL,网络质量下降时,客户端可能会切换到其他 OCA 上去

其中 Playback Apps、Steering Service、Cache Control Service 都部署在 AWS 上

media pipeline

工作室发给 Netflix 的原始视频,这些视频一般是高清格式的

  • Netflix 首先会检查这些源视频
    • 检查是否存在失真或伪影的问题,是否符合规范,如果存在问题就要求重新交付
    • 同时生成编码管道所需的元数据
    • 源视频首选格式为 IMF,也支持 ProRes、DPX 和 MPEG
  • 在 EC2 服务器上执行转码(transcoding),生成不同分辨率和格式的视频以支持各种不同的播放设备
    • 由于源视频可能会非常大,管道会将它分块放到不同实例上并行处理,所有块的编码都结束后再组装到一起
  • 转码后输出的视频会被发送到 Open Connect 里

参考资料

  • Open-Connect-Overview.pdf
  • Netflix: What Happens When You PressPlay?
  • High Quality Video Encoding at Scale | Netflix TechBlog
  • Netflix and Fill. the complex reality of global content… | by Netflix Technology Blog | Netflix TechBlog

关键词: