文 / Mohit Vora, Andrew Berglund, Videsh Sadafal, David Pfitzner, and Ellen Livengood
译 / Ant,赵军
技术审校 / 扶凯
CDN的原理就是将用户想要的内容放在距他尽可能近的地方,以最低的成本获取。当面对海量的内容和用户时,情况就变得很复杂。同时,任何设备都可能出现故障而失效,系统能够面对任何一个设备失效被替换的情况,同时保证从集群到服务器各个硬件单元之间保持负载均衡。根据您2015年的统计,Netflix占据了美国36%的流量。本文将揭示Netflix如何应对如此巨大的流量,通过不断改进的算法快速分配热门内容,并保证整个CDN网络平稳运行。
LiveVideoStack对本文进行的翻译,感谢英特尔资深软件开发工程师赵军和云帆加速联合创始人&CTO扶凯协助完成翻译和审校。
之前我们曾经讨论过内容的流行度,通过计算、预测以及使用内容的流行度来最大化的发挥Open Connect(Netflix发起的开放CDN平台)的硬件基础设施的能力,同时我们也讨论了这一领域的一些其他数据科学的挑战。我们还在最近的文章讨论了如何提升服务器的吞吐量(throughput)的问题。本文,我们将深入讨论如何在Open Connect服务器(有时也称作 Open Connect Appliances 或者 OCAs)上分配内容,包括我们的哈希策略以及如何处理异构服务器集群。这个工作是Nexflix的Open Connect团队与Science & Analytics 团队一起合作的一个成果。
内容(文件)放置策略与目标
文件的放置策略涉及到决定把哪些文件内容放署在哪些集群的哪个服务器上(更多内容可以参考早期文章,它综述了为什么这些决定是非常重要的)。一般而言,为了让集群的流量最大化,应该把最流行(热门)的内容放在当前集群中;并保证集群中的每台服务器上是负载均衡。其次,要保证集群长期的稳定,尤其是在增加或移除服务器过程中保持稳定(不能让热点失效)。最后,这个分配文件内容放置策略与目录算法必须在有限时间就要计算出来的(时间过久会影响分发效率)。