skip to Main Content

当年,云端教父如何成功让Netflix成为第一间完全上云的大型企业

当年,云端教父如何成功让Netflix成为第一间完全上云的大型企业

在2010年10月之前,几乎没有人相信,大型企业真的可以全靠云端,彻底取代资料中心。当时担任Netflix云端架构长,而现在是AWS云端架构策略副总裁的Adrian Cockcroft,他的一场演讲,从此改变了许多人的想法。而且,那是他第一次完整揭露Netflix的上云之旅。

一手设计出Netflix云端架构的云端教父Adrian Cockcroft,目前是AWS云端架构策略和开源发展的推手 (摄影/洪政伟)

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

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

这并不是Netflix独到的经验,很多企业资讯主管遇到当机事件时,都会有同样的反省。但是,「得等到出现外在危机的压力,企业才会真的愿意採取行动,我们也是。」Adrian Cockcroft事后回忆。

Netflxi在2010年4月公开上云计画,所有人都不看好,直到年底公开了这张AWS架构图后,才让大家意识到,大型企业真的也可以上云。

全球布局的外部压力浮现,才下定决心上云端
这个来自外部的压力,出现在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资料中心承受的流量规模,就要翻倍。

转移前端系统时,Netflix的策略是,先从最简单的网页开始转移,一次只将网站上的一页服务搬上云端。这是Netflix第一个搬上AWS的网页。(资料来源:Adrian Cockcroft)

IT未来要考虑全球顾客的参与度
从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服务,也都搬上云端。当时,多数后端系统仍部署在资料中心内,不过,前端上云后,机房就可用于扩充后端系统。

过去IT只考虑服务员工数,来决定系统规模,但未来IT要考虑全球顾客的参与度,来决定扩充力道,这个数位转型压力,是根本性的变革。──云端教父 Adrian Cockcroft

2010年底官网前端系统全面上云
「我们没有备桉!一定要在年底前将网站前端搬上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千倍以上。正是因为当年上云端的决定,才能支撑起这样的千倍的发展速度。

Profile
云端教父 Adrian Cockcroft


1982年:进入剑桥顾问公司担任软体工程师,一待就是6年,专责开发即时嵌入式讯号处理和控制系统,后来还兼职担任Unix系统首席管理员。

1988年:进入昇阳电脑,任职长达16年,直到2004年才离开昇阳,他不只熟谙云端技术和软体技术,更是高效能电脑技术的专家,最后成为昇阳高效能工业计算(HPTC)部门的首席架构师。在昇阳期间,也有多本高效能电脑的相关着作,例如他是《Sun Performance and Tuning:Java and Internet》第二版一书的第一作者,这是畅销的HPC调校参考书之一。

2004年:离开昇阳后,9月转而进入eBay工作,主要参与多项创新计画,也是eBay Research Lab创始团队成员之一。早在iPhone和Android问世之前,Adrian Cockcroft就开始研发自製手机和先进行动应用。

2007年:进入Netflix,担任网站工程团队总监,负责Netflix首页开发,以及打造个人化选片服务,尤其是研发背后的演算法,也参与了Netflix Java系统重构计画,也就是SOA架构的导入。

2008年8月:一场SAN储存设备大当机,Netflix开始考虑採用云端。Adrian Cockcroft是关键评估者之一。

2009年:Netflix开始展开云端转型之旅,先将内部系统搬上云端AWS,例如影片编码。

2010年:进一步将网站前端系统全部放上AWS。

2010年4月:Netflix开始宣布上云端计画。

2010年12月:正式完成官网上云端转移。

2011年:开始将后端系统搬上云端。

2013年:Netflix也大方公开了这套转型上云端的经验,甚至打包自己开发的工具和架构设计范本,开源推出了NetflixOSS平台,这也成了设计云端原生架构的最佳实务参考之一。

2014年:Adrian Cockcroft离开Netflix,转而进入Battery Ventures创投担任技术院士,从更宏观的角度,来观察科技产业、网路新创、创新技术的发展。

2016年1月:Netflix最后一批资料搬上云端,完成了为期7年的云端之路。

2016年10月:Adrian Cockcroft进入AWS担任云端架构策略副总裁,不只带领AWS的开源推动工作,也开始到各国分享自己一路参与云端架构发展的经验。

2018年6月:Adrian Cockcroft首次来台分享数位转型经验和云端发展策略

 

如果你在创业,想要被报导;如果你有企业,想要光宗耀祖的机会,

点击: Https://Goo.Gl/3ovfub

 

预获取更多创业资讯,请LIKE我们的网页:

Https://Www.Facebook.Com/Dznewsasia   

 

文章转载:王宏仁

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top