代码改变世界

Netflix是怎样运行的(极度简化版)— 每次点击播放按钮背后的复杂东西

2019-04-07 19:31  yx1989  阅读(334)  评论(0编辑  收藏  举报

Netflix是怎样运行的(极度简化版)— 每次点击播放按钮背后的复杂东西

本文摘译自 How Netflix works: the (hugely simplified) complex stuff that happens every time you hit Play

本文并未讲到任何实现细节,只是概略的描述了一些基础架构。

规模

  • 每日2.5亿小时的视频播放。

  • 来自190个国家的0.98亿付费用户。

微服务

文章举例讲了一下微服务的好处,道理大家都懂。Netflix花了大约10年单服务应用重写成了微服务架构,估计大约又700个微服务分别负责了Netflix的各种功能。

  • 百级的微服务

  • 千级的日常生产变更

  • 万级的实例数

  • 十万级每分钟的用户交互

  • 百万级的用户数量

  • 百亿级的度量标准(采集点?)

  • 千亿级小时的流视频

  • 十级的运维工程师

最后说的数十名的运维工程师,数量可以说是非常少了,应该是得益于DevOPS和云服务。

AWS

尽管和Amazon的Prime Video存在竞争关系,Netflix依然是AWS的重度用户。不再自行维护硬件而是把服务挪到云上。并且拿苹果和三星的合作关系来说明这种君子协定是种巨大的双赢。

版权

对于非Netflix自制剧,都需要去谈判播放权,并且会受到不少限制。同时在分发层面,也可能会签署一些排他协议导致延迟上映或者不能上映。举例来说,纸牌屋的第五季在中东地区相对其他150多个国家,延迟了整整一个月。

转换

为了可以满足不同的设备,不同的网络,不同的屏幕尺寸,不同的音频格式;高质量的原画会被转码成很多的格式。

CDN

为了减少延迟,Netflix使用了CDN。早期的时候使用了多种CDN网络,比如Akamai, Level 3 和 Limelight Networks 去分发他们的内容。后来随着用户的增长,意味着他们必须在更多的位置分发内容,同时成本更低;所以他们构建了自己的被称为Open Connect的CDN网络。

当点击播放按钮的时候,Netflix会定位到10个最近的Open Connect设备,并且判断出其中最快的一个。这也是为什么视频开始的时候模糊,但是突然变得清晰 — Netflix切换服务器直到连接上提供最好视频质量的那个。