当年面对业务压力和amazon prime的竞争 netflix为什么最终还是选择了aws – 十轮网-九游会官网真人游戏第一品牌

关于这趟旅程,起点是2008年8月的一次san存储设备故障事件,足足让netflix的关键数据库系统宕机2天,当时因为无法查找订单数据,一连3天,没有寄出任何一片顾客租借的dvd视频。大家都在问netflix怎么了! netflix是全美最大的dvd租片服务公司,顾客通过网站租片,过两天就会在自家邮箱收到,看完再用回邮信封寄回。

这次事件让netflix开始反省,就算砸大钱,买来业界最高端的oracle数据库系统,搭配最顶级的硬件设备设备,为何还是会出错?当时adrian cockcroft是网站工程团队的总监,他开始意识到:“服务可用性的主角应该是应用程序,而不是硬件。”而顺着这个思路进一步发现,其实,netflix不见得需要昂贵的硬件,而是可以考虑租用便宜的云计算环境,也许就够了。

这并不是netflix独到的经验,很多企业信息主管遇到宕机事件时,都会有同样的反省。但是,“得等到出现外在危机的压力,企业才会真的愿意采取行动,我们也是。”adrian cockcroft事后回忆。

这个来自外部的压力,出现在2009年。 netflix除了租片服务,从2007年也开始在美国提供线上视频串流服务,当年2月,netflix宣布累计出借了10次亿份dvd,但他们的串流服务人数,迟迟没有突破1千万用户。

之后,netflix在2010年进军国际市场,而为了解决dvd全球发送的问题,netflix决定改变,开始主推线上串流服务。这也让adrian cockcroft开始思考,新业务带来的挑战有多大。

原有的dvd出租生意,顾客大约每周使用一次netflix网站来租片,须等到dvd寄到顾客手上看完后,顾客才会再次上站来租片,发送的时间,往往决定了顾客下次何时再上线挑片的频率,而这个频率大约是每人每周一次。

但是,线上串流服务的挑战完全不同,netflix串流服务顾客每天大约可以可以观赏5到6段视频,租片量是dvd租片的10倍以上,而视频还提供个人化浏览服务,顾客会花更多时间上站选片,甚至顾客看到一半停下来,网站还要记住他当时所看到的进度,下次再继续播放。根据adrian cockcroft估计,串流顾客与netflix九游会官网真人游戏第一品牌官网的交互(浏览)频率,大约是租片顾客的100倍。

换言之,租片量10倍成长,顾客交互次数增加100倍,两者相乘,租片顾客改用串流服务后,每周带来netflix数据中心的流量成长,是过去的1千倍。只要有0.1%的用户改用串流服务,netflix数据中心承受的流量规模,就要翻倍。

从it运营模式的改变来看,adrian cockcroft指出,过去it只需考虑到,以员工人数来决定系统的扩展规模,但未来it要考虑全球顾客的参与度,以此决定扩展规模。这个数字转型压力是根本性的变革,从服务数百、数千人,到服务全球顾客,而且要提供24小时服务。

2009年时,netflix有两个选择,第一是雇用一个世界级数据中心运维团队,未来需要多少用量,就预先构建多少数据中心。第二个选择是使用netflix竞争对手aws提供的云。当时的amazon prime视频串流服务,是netflix最大的竞争者。 “选择自己盖数据中心,还是租用竞争对手的服务,改把钱花在内容和开发者身上。”adrian cockcroft表示,这是当年经营高层最头痛的抉择。

还有一个难题,促使netflix最后决定上云计算。那就是进军全球市场后,netflix串流服务也会集成到多种播​​放设备上,不只是计算机,还增加了iphone、wii、ps3和xbox的版本,未来的成长规模几乎难以预测。如何满足至少是1千倍的扩展需求? netflix决定开始认真评估,了解搬上云计算的风险。

首先,考虑aws业务和amazon prime服务的关连,后来netflix高层也直接联系amazon创办人,确定两者各自独立运行。其次是要测试aws的能耐,评估aws的扩展能力,能否胜过自行构建数据中心的速度。后来,netflix签署aws 第一个企业授权契约,直接上网用信用卡刷卡就完成这件事。

直到2010年4月,netflix开始公开即将上云的消息,adrian cockcroft表示,大家都觉得他们疯了,因为他们是第一家这么做的大企业。不过,早在2009年,adrian cockcroft率领的网站工程团队,就展开上云转移的作业。而这个过程的第一步,是先查看那些不会直接面对顾客的系统,决定先将视频编码(movie encoding)服务器放上aws的ec2。因为,这类视频编码服务需要大量机器来运算,但现有数据中心的空间并不足以扩展。

选定搬迁的目标后,下一步就是要测试ec2的扩展能力,adrian cockcroft表示,那次一口气向aws提出要求,想在一小时内要取得3千台ec2虚拟机,后来,真的拿到了,也才让netflix相信,云计算真的可行;接着,就真的把视频编码的实体主机关了,全部搬上ec2。视频编码的处理,租用了数千台ec2实例来组成运算农场,当时还用了不少windows环境的视频转码软件,处理了上万部视频,而为此而存储在s3的数据量,已经高达pb级。

除了视频编码,第二步则是改将大量的网站访问日志放上云计算,尤其是所有串流服务的日志。 netflix有太多想纪录关注的信息,都改用s3来存储,这些日志数据每天的成长量也是tb级。最后,利用hadoop来分析,还和aws合作集成hive sql来设计数据超市,再集成到netflix内部数据中心的bi系统上。

2010年初,netflix就决定不再盖数据中心了,并且在年初开始也把串流服务的后端系统搬上云,例如像是drm密钥管理、用户重播书签服务、高可用设计的“播放”按钮服务等。

netflix还决定要在2010年底前,要把前端系统和用户端设备的api服务,也都搬上云计算。当时,多数后端系统仍部署在数据中心内,不过,前端上云后,机房就可用于扩展后端系统。

“我们没有备案!一定要在年底前将网站前端搬上aws。”那时,netflix每次经营会议时,都会秀出一张图,上面有一台准备起飞的飞机,代表着netflix,轨道尽头就是树林,“到了年底,没有飞上云计算,就会撞上树林。”adrian cockcroft强调。在2010年12月初,完成九游会官网真人游戏第一品牌官网最后几页的转移,过程没有发生任何一次宕机,netflix顺利飞上了云计算。

原本,adrian cockcroft一开始设计了一个渐进式转移的作法,但他的老板直接指示:“全部砍掉重练!顶多留下你觉得有用的10~20%,你不要的程序代码,一行都不要留。”他希望趁着重新设计的机会,要求adrian cockcroft设计可符合未来5年需求、兼顾效率和生产力的新架构。 “因为,我们不想成为一味节省成本的公司,而要追求业务速度。”adrian cockcroft表示。

除了重新打造新架构,在转移前端系统时,adrian cockcroft的策略是,先从最简单的网页开始转移,逐次将网站上的一页服务搬上云计算,并且先从最简单的api服务开始转移,其次是转移对应的页面,然后再进行下一个api和下一个页面。同样的作法,先套用到其他服务页面,再来,才是转移其他不同数据来源的页面。

因为是一页一页地转移上云计算,因此,他们也采取双轨系统并行。用户先登录位于数据中心的旧版九游会官网真人游戏第一品牌官网网页、后端系统和登录服务,再挑选合适网页,切换成由云计算提供服务的版本给顾客。一旦出现问题,可以马上切换回来,因为采取标准http转址来切换,因此,顾客不会发现。

在数据转移的策略上,原有系统数据都存储在oracle数据库中,先利用oracle远程副本功能,在云计算创建一份副本数据库,多数用户只是需要查找数据,就先由云计算数据库来提供,只有用户需要更新记录时,才返回数据中心的oracle数据库来修改。

2011年决定全面上云计算后,新的挑战是如何备份。过去,netflix采用磁带来行脱机备份,来保存系统记录。上了云计算后,adrian cockcroft不想把数据再运回本地端数据中心来备份,因此,改而不同的服务区域,创建不同的aws帐号,利用不同帐号的s3服务,来提供另一个备份。

此外,所有系统记录数据不会删除,而是采取每90天自动执行清除程序,将数据压缩备份到归档区的s3帐号,因为可预期这些数据访问频率不高,压缩数据的时候,也以缩小容量为主,而不用考虑解压缩速度来节省空间。后来aws推出了超便宜的归档服务glacier,就有更弹性的备份策略可用。

后来,netflix发现,上云的决定是正确的作法。因为拓展到全球市场后,光是2009年第三季到2010年第三季,一年内串流服务就成长了145%,从原有的1千万名用户,增加到1,600万人。更大的挑战是,到了冬天,大家都待在家里看电视,从感恩节到圣诞节期间的串流视频需求,将会大爆发。 2011年时,netflix就决定,全面上云,连后端和全部数据都要搬上去,不过,仍有少数数据转移不易,例如,当时有些支付法规遵循的要求,规定数据必须落地。结果,他们花了7年时间,直到2016年1月,netflix才完成所有云计算转移工作,并且关闭了数据中心的最后一台机器。

从netflix上云的经验,adrian cockcroft归纳,企业数字转型的途径可分成三阶段。第一,是先追求速度,采用新架构,例如将所有jar组件都微服务化,就不用每隔两周得关机10分钟来更新,或是统一服务设计模式,而不是共享一套标准程序代码,同时,还将复杂纠缠的服务api,改为功能分明的分层式架构。这些设计,后来让netflix的云计算架构,成为微服务架构的经典参考范本。

“有了速度,下一步才追求规模。”他解释,例如,通过水平式扩展架构,满足越来越多服务上云后的运算需求,还要提高利用率。数字转型的最后一个阶段,就是策略性转型,目标是彻底取代数据中心,将关键应用搬上云计算。

netflix租用了超过10万个ec2虚拟机,来服务遍布全球130多国市场的上亿名用户。根据netflix统计,从2007年12月到2015年12月为止,每月串流服务播放总时数,成长了1千倍以上。正是因为当年上云计算的决定,才能支撑起这样的千倍的发展速度。

发表评论