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切换服务器直到连接上提供最好视频质量的那个。