2013年(8)
分类: NOSQL
2013-08-24 15:28:27
Netflix是网络媒体企业的大公司,在40多个国家和地区拥有33万用户。随着Netflix的流媒体服务的增长,公司不得不重新考虑其数 据和存储策略,以应付云处理中超负荷的工作量。如今,该公司已接近完成从Oracle到NoSQL数据库的迁移,这样的改变可提高可用性并从根本上消除停 机时间所产生的数据库架构的变化。
Netflix公司在2007年推出其流媒体服务,并使用Oracle数据库作为后端。“我们有一个单独的数据中心,这意味着我们存在单点故障 的可能性。” Netflix的云建筑师阿德里安·克罗夫特解释说:“我们正在接近运输量和容纳能力的限制。现在,人们可以从他们的手机、Wifi的设备、Roku盒观 看Netflix的流媒体,对可用性的需求一直在增加。我们每季度都会拥有更多的客户,更多的客户以较快的速度使用流媒体。
数据随着客户群快速增长,克罗夫特说:2011年1月的API请求数量是2010年1月的37倍。运行的中断或质量低劣的流动服务可能会赶走客户。克罗夫特说:“我们知道我们必须要走出数据中心,只有这样我们可以才能继续运行并保持不断增长。
2010年开始,Netflix公司开始移动数据到亚马逊网络服务。下一步就是用Apache Cassandra取代Oracle公司的数据库,Apache Cassandra 是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提供了新的更加坚实的基础。克罗夫特说,“它使我们能够为成员提供其值得信赖的满意的服务”。