Netflix高级工程师谈Amazon EC2与devops
在北美的视频流网站当中,Netflix可以说是当红炸子鸡之一。1997年开始运作的Netflix在最开始的几年一直以一种传统的方式运作一个在线的视频DVD租赁服务,后来着重发展基于用户影评的推荐算法,从2008年开始着重发展在线视频流的业务;从2009年开始,Netflix决心投入大量精力到移动互联网大潮中,研发了iOS、Android、任天堂3DS、Nook等终端的客户端。到2011年,Netflix的视频流量已经占据北美web总流量的24%以上,排名第一。
在2012年4月的QCon大会上,笔者遇到了Netflix的高级软件工程师Jason Brown先生,从他那里听说了不少有趣的事情。Jason刚从QCon东京会场过来北京,分享的话题分别有关Amazon EC2和Cassandra在Netflix当中的应用。Netflix从2008年开始往Amazon EC2上迁移,就目前来看,说它是EC2的最大客户可能也不为过。因此Netflix在使用公共云方面的经验,对其他正在考虑云计算的企业而言应该会有不少可以借鉴之处。
Jason Brown简介:Netflix高级软件工程师,1999年在Ball State University获得音乐硕士,之后开始接触软件分发工作,并逐渐发展为一名程序员。在加入Netflix之前,Jason曾在北美棒球联盟传媒任职架构师。
Jason加入Netflix是在2008年。在那一年之前,Netflix的业务主要运行在自己的数据中心当中,用IBM的高性能硬件搭配Oracle数据库作为底层架构。在那一年秋季的某一天——也就是Jason去Netflix面试前后的某一天——Netflix的服务挂掉了,具体是因为流量暴增还是因为单点故障倒是不清楚。总之,Netflix在2008年决定往Amazon EC2上迁移,成本只是其中一方面的考虑。
“可扩展性很重要啊。除了Amazon EC2之外,还有谁能够提供在1小时内增加1000个节点的能力?”Jason这样介绍到。
“那如果不是在2008年,而是在现在做这个决定呢?你们仍然会选择Amazon EC2这样的公共云平台,而不会考虑像Zynga那样,搞个自己的私有云?”
“哦,我想我们目前不会打算回到自建数据中心的方案的。”Jason对数据中心的解决方案表示不置可否。“Zynga有他们的考虑。我有朋友就在zCloud工作,他们那边的说法是自建私有云比使用Amazon EC2便宜,可能对他们来说真是这样吧。不过对我们来说,还是刚才我说的那样,能在1小时内增加1000个节点的可伸缩性,目前只有EC2能满足我们的需求。而OpenStack这方面的东西,我也偶尔看看,这项技术感觉目前还在幼年期,不适合用在一个线上的业务当中。”
Netflix现在有700多名员工,其中大部分是工程师。Jason所在的Cassandra集群团队主要由软件工程师组成,还有三个dev-ops。
“您提到团队中有3个dev-ops,也就是传统上负责系统管理运维的工种。他们的工作主要包括哪些内容?”
“我们的dev-ops会写很多脚本,让各种工作变得自动化。”Jason介绍到。“点一下就做好环境搭建,点一下就做好配置,很多这样点一下就完成的实现。其中很重要的一部分是跟监控相关的,我们想知道我们的Cassandra集群的运行状态,每个节点的负载如何等等细节。”
“那总的来说,云计算下的运维工程师和传统数据中心里面的运维工程师有何不同?”
“哦,在数据中心里面可是很无聊的。要加台服务器?先填写个工单;要上线个服务?先填写个工单;要调试一下配置?先填写个工单……工单然后审批,通过后再执行,很多这样繁琐的行政流程占据了工程师的时间。而在EC2上就很方便了,需求提交过来,也就是点两下鼠标的工作。”
“刚才您提到写脚本监控Cassandra集群,也就是说目前还没有成熟的用来监控Cassandra的系统吗?”
“没,基本上都是我们自己实现的。”Jason向笔者介绍了Netfilx的一些开源项目(目前都公开在Github平台上 https://github.com/Netflix),以及最近将要开源的一套“猴子”工具。“猴子工具针对EC2平台,其中包含几个子项目:有一个Chaos Monkey(混乱的猴子)专门在集群中随即杀死虚拟机,以确保系统在部分节点故障时仍然可以正常运行;有一个Security Monky(安全的猴子),可以自动检查系统中存在的漏洞;还有一个Janitor Monkey(看门人猴子),可以自动发现系统中的闲置资源并将其关闭。这套工具是各个团队通用的,会在未来几个月内开源。”
“那么针对AB测试,你们也有专门的工具吗?”Jason负责的是AB测试这一块,他在QCon上的话题也是有关AB测试系统的,所以笔者单独询问了一下。
“当然有了。AB测试有很多部分是专门针对Netflix的业务的,比如给用户展示不同的界面,不同界面下的数据统计等等,当然这些肯定是不会开源的。一些通用的工具,未来倒是可能会逐渐都放到Github上面。”
Jason在QCon的分享上倒是透露了一些其他的情况,那就是Netflix目前正在联系Amazon EC2之外的服务提供商来处理容灾备份和恢复(他们目前使用的是Amazon的S3存储),但具体是哪家,他现在还不便透露。随着Netflix对集群性能的要求日益增高,Jason也开始学习一些Linux内核级别的知识。对于大规模网站架构的工程师而言,往高处和深处走是必然的趋势;尤其在云计算普及之后,工程师有更多的时间精力可以放在业务本身,这相比上个世纪的工程师们是极大的优势。
(责任编辑:admin)- “扫一扫”关注融合网微信号
免责声明:我方仅为合法的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的保证:不保证内容满足您的要求,不保证融合网的服务不会中断。因网络状况、通讯线路、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。
第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于传播、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的建议。用户应基于自己的独立判断,自行决定并承担相应风险。
根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。
第三方企业注册用户在融合网相关栏目上所发布的涉嫌侵犯他人知识产权或其他合法权益的内容(如,字体、图片、文章内容等),经相关版权方、权利方等提供初步证据,融合网有权先行予以删除,并保留移交司法机关查处的权利。参照相应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。
个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在侵犯自身合法权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。
融合网联系方式:(一)、电话:(010)57722280;(二)、电子邮箱:2029555353@qq.com dwrh@dwrh.net
对免责声明的解释、修改及更新权均属于融合网所有。