探索中国CIO人才现状 | 第四季调研报告
Netflix与NoSQL:大电影,大数据
2013-05-22  作者:企业网 

  随着每天数十亿的读取和写入,Netflix的NoSQL数据库已取代传统的甲骨文数据库。


  Netflix是网络媒体企业的大公司,在40多个国家和地区拥有33万用户。随着Netflix的流媒体服务的增长,公司不得不重新考虑其数据和存储策略,以应付云处理中超负荷的工作量。如今,该公司已接近完成从Oracle到NoSQL数据库的迁移,这样的改变可提高可用性并从根本上消除停机时间所产生的数据库架构的变化。


  Netflix公司在2007年推出其流媒体服务,并使用Oracle数据库作为后端。“我们有一个单独的数据中心,这意味着我们存在单点故障的可能性。”Netflix的云建筑师阿德里安·克罗夫特解释说:“我们正在接近运输量和容纳能力的限制。现在,人们可以从他们的手机、Wifi的设备、Roku盒观看Netflix的流媒体,对可用性的需求一直在增加。我们每季度都会拥有更多的客户,更多的客户以较快的速度使用流媒体。


  数据随着客户群快速增长,克罗夫特说:2011年1月的API请求数量是2010年1月的37倍。运行的中断或质量低劣的流动服务可能会赶走客户。克罗夫特说:“我们知道我们必须要走出数据中心,只有这样我们可以才能继续运行并保持不断增长。


  2010年开始,Netflix公司开始移动数据到亚马逊网络服务。下一步就是用ApacheCassandra取代Oracle公司的数据库,ApacheCassandra是NoSQL数据库的一个开放性资源,它以可扩展性和企业级的信赖性而闻名。“对于我们来说,中央SQL数据库的问题就是一切事物都在一个地方,易于毁坏。”克罗夫特说“因为这些数据库非常昂贵,你会倾向于把所有的东西放在这里,然后一切会同时毁灭”。


  另一个问题是,系统需要停机。每两个星期,我们至少会有10分钟的停机时间以安装新的架构,他说:“SQL数据库的局限性影响了我们的可用性和可扩展性。”


  该公司选择了来自DataStax的Cassandra,是因为它可以快速、灵活的创建和管理数据集群,特别是在云中。Netflix的云平台工程经理解释说:“Oracle的解决方案在虚拟化硬件中运行的并不好,Cassandra的建构、可用性、一致性的调整和可扩展性可以说是一个明智的选择。”为了解决这些问题,Netflix最初将数据从Oracle迁移到亚马逊的SimpleDB分布式数据库,最终移动数据到Cassandra。


  “有了Cassandra,我们可以更敏捷的处理业务,”克罗夫特说“我们不需要提前计划容纳能力,我们也不需要征得其他人的许可来建立我们的东西,我们更不用担心空间或电源会耗尽。我可以在10分钟内在世界任何地区创建一个Cassandra集群”。克罗夫特还说:“当营销人员决定让我们要进入世界的某一部分时,我们就已经准备好了”。


  此外,由于架构的变化就不再需要停机时间,“在Cassandra中没有模式需要改变,因此也就没有停机时间。”克罗夫特说。


  当然,在多个Cassandra的实例中,要管理更多的系统而不是单个的Oracle数据库。但克罗夫特指出,“他们往往在不同的时间出现问题,所以你会失去小块的系统,而不是一次失去整个系统。另外,每个系统的管理要更为简单。”


  今天,Cassandra几乎是Netflix所有数据库需求中的首选数据库。该公司在Cassandra中存储了所有数据的95%,包括客户帐??户信息、电影分级、电影元数据、电影书签和日志。


  Netflix公司利用750多个节点操作50多个Cassandra集群。高峰期,他们在所有的集群中一秒钟要处理50,000多次读取和10万次写入。平均每天他们要处理2.1亿多次读取和4.3亿多次写入。


  Cassandra为Netflix提供了新的更加坚实的基础。克罗夫特说,“它使我们能够为成员提供其值得信赖的满意的服务”。