当年,云端教父如何成功让Netflix成为第一间完全上云的大型企业
2018-07-14 10:25:35 | 来源:ithome | 投稿:米娜 | 编辑:dations

原标题:当年,云端教父如何成功让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首次来台分享数位转型经验和云端发展策略。

tags:

上一篇  下一篇

相关:

AWS云端架构策略副总裁:飙速开发又有新方向,Serverless是容器和微服务的下一步

图片来源: 资料来源:Adrian△Cockcroft,iThome整理,2018年7月 早在2015年冬天AWS年度大会一场演讲中,AWS云端架构策略副总裁Adrian△Cockcroft就预言,Serverless将是下一阶段的云端架构方向。当时,Docker崛起才

【深度专访AWS云端架构策略副总裁】冲刺数位转型,企业需要什么IT新架构?

Adrian△Cockcroft有云端第一架构师的美称,也曾入选云端运算年度十大关键人物。 (摄影/洪政伟) 他是打造Netflix全球服务架构的关键人物。早在2009年,当时担任Netflix网站工程总监的Adrian△Cockcroft,就开始

微软延长支援Windows Server、SQL Server 2008/2008 R2,条件是搬上云端

图片来源: 微软 微软拥有广大用户的SQL△Server及Windows△Server△2008即将在明年和后年结束延伸支援。微软周四提供了新的选项:搬移到Azure云上。根据微软的支援方案,SQL△Server△2008/2008 R2的延伸支援将在201

加强云端DevOps功能,甲骨文公有云服务推出Ansible模组

除资料库、ERP产品,公有云是甲骨文近年加强经营力道的事业,在今年陆续加强对Kubernetes、GPU的支援,也与Cloudera合作,让企业用户可以在该公有云平台使用Cloudera的资料仓储、串流分析等服务。而除扩张平台的大数

云端大量部署优先! Canonical推迷你作业系统Minimal Ubuntu,映像档只有29MB

在云端运算蔚为普及的时代,因应应用程序快速部署、开启及执行的需求,厂商也会推出相对轻薄的作业系统,适应云端原生环境。在2015年时,正逢Docker如日中天,许多厂商推出专属容器作业系统支援Docker,像是红帽Atom

站长推荐: