近日,Netflix通过公司博客宣布他们历时7年多的云之旅最终完成。Netflix云之旅最早开始于2008一次重大的数据库损坏事件之后,那次事件影响了他们向订阅者分发实体DVD的能力。
数据库损坏事件促使Netflix改变了他们看待其架构的方式。他们由垂直可扩展的单点故障转向了云上水平可扩展的分布式系统。
Yury Izrailevsky是云和平台工程部的副总裁。他介绍了Netflix为什么选择Amazon Web Services作为他们的云提供商:“我们选择Amazon Web Services(AWS)作为我们的云提供商是因为它为我们提供了最大的规模和最广泛的服务和特性集合。”
Netflix云之旅非常漫长。最初,他们的重点是所有部署在云上的、面向客户的服务。这让Netflix可以利用Amazon遍布世界各地的区域,为130个国家的客户提供服务。一旦面向客户的服务迁移到了云上,Netflix此后的重点是计费系统和员工数据管理。最后剩下的是供流媒体服务使用的服务,2016年1月,Netflix关闭了他们数据中心里的这部分服务。
从2007年12月到2015年12月,Netflix增长了超过1000倍。Izrailevsky将Netflix招徕和支撑新客户的能力归因于使用了云。“由我们自己的数据中心支撑这种快速增长会非常困难;我们根本无法这么快上架服务器。云的弹性让我们能够在几分钟内增加成千上万的虚拟服务器以及数以PB计的存储,让这样一种扩展成为可能。”
云不仅为Netflix提供了可扩展性,还为提高了他们的可用性数值。最初,Netflix经历了一些“艰难的时刻”,但他们看到了此后的改善,Netflix距离他们给自己设定的正常运行时间99.99%的目标更近了。通过从传统上不可靠的组件中构建出高可靠性的服务,Netflix提升了他们的可用性。他们通过使用冗余云组件达成了这一目标。
为了测试和验证他们的冗余策略,Netflix使用Simian Army实现了常规生产测试。其中部分策略包括使用Chaos Monkey,后者会定期施加可能导致组件失败的条件。它确保及早并经常地暴露任何失败点,那样,工程师团队就可以通过受控的练习来解决问题,而不是在计划外停机事件中发现它们。
虽然向云迁移花费了Netflix七年多的时间,但他们的迁移有条不紊,没有出现策略的变化。Netflix觉得,为了真正受益于云,他们需要改变系统,利用基于云的组件,而不是将数据中心的缺点带到云上。Izrailevsky进一步解释说:“我们选择云原生方法,重建了我们几乎所有的技术,并从根本上改变了我们运营公司的方式。从架构上讲,我们从一个单体应用迁移到了数以百计的微服务,并使用NoSQL数据库反规范化了我们的数据模型。”
来源:InfoQ
聚焦云计算,扫描二维码,关注HostUCan云计算