设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

Netflix高级工程师谈Amazon EC2与devops

2012-4-28 11:29| 发布者: joejoe0332| 查看: 1263| 评论: 0|原作者: 51CTO.com|来自: 51CTO.com

摘要:   在北美的视频流网站当中,Netflix可以说是当红炸子鸡之一。1997年开始运作的Netflix在最开始的几年一直以一种传统的方式运作一个在线的视频DVD租赁服务,后来着重发展基于用户影评的推荐算法,从2008年开始着重 ...

  在北美的视频流网站当中,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

  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内核级别的知识。对于大规模网站架构的工程师而言,往高处和深处走是必然的趋势;尤其在云计算普及之后,工程师有更多的时间精力可以放在业务本身,这相比上个世纪的工程师们是极大的优势。


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部