解剖 Facebook 底层


了解高科技公司的发展战略,通常有三个信息来源,1. 新闻,2. 财报,3. 产品介绍。

1. 新闻往往捕风捉影,鱼龙混杂,做参考可以,但是可信度不高。

2. 在美国上市的公司都有公开的财报,例如 Apple 公司的历年所有财报,都可以在这里 [1] 找到。 上市公司的财报,直接影响到公司股价。所以上市公司写财报,通常比较用心,可信度较高。

按 照美国证监会(SEC)的规定,每家上市公司必写的财报种类很多,其中 10-Q 和 10-K 分别是公司季度财报,和年度财报。季度和年度财报中,不仅有公司当前经营情况的汇报,而且通常会有专门的章节,如 “Management’s Discussion and Analysis of Financial Condition and Results of Operations”,专门讲述公司决策者,对于当前形势的分析,以及未来发展战略的规划。

虽然在有些公司的财报里,这方面的章节刻意措辞含混,但是至少可以了解,公司高层领导在关注哪些问题。股神巴菲特就很喜欢研读各个公司的财报,巴菲特前儿媳写过一本小册子,总结了巴菲特读财报的方法 [2]。

3. 产品具有延续性,分析现有产品的功能和性能,可以了解未来产品的走向,据此推断公司的发展战略。对于以网站为主要产品形式的信息企业来说,关键是研究其网站的系统架构。

Facebook 的 Director of Engineering,Aditya Agarwal,在 2008 年和 2010 年,在 QCon 国际会议上的两篇演讲 [3,4],谈及 Facebook 的系统架构,见图一。

图一. Facebook 的系统架构
Courtesy http://i879.photobucket.com/albums/ab351/kan_deng/Cloud/FacebookArchitecture.png

由 此可见,目前 Facebook 的系统架构,类似于早期 Yahoo! 的系统架构。作为门户,Yahoo! 是一大堆各色服务的汇集,包括新闻,财经,求职,Email 等等。Yahoo! 内部把每个服务称为 “部落”,每个部落自成一体,有各自的酋长, Yahoo! CEO 杨致远自称是大统领。

国内的门户网站,如新浪和搜狐,它们的系统架构大多也与 Yahoo! 的类似。

部落式的系统架构,有什么问题呢?

澳拜客(Outback Steakhouse)是一家全球连锁牛排餐厅,北京有两家分店,在王府井和工体院内,口味地道。澳拜客的正餐前的开胃菜,开花洋葱(Bloomin’ Onion),很受顾客青睐。

去年,澳拜客决定通过 Facebook 发放优惠券,以免费 ”开花洋葱“ 为号召,吸引顾客。促销活动从 2009 年 11 月 5 日开始,原订计划是做 30 天的活动,吸引 50 万顾客。

Facebook 的传染性果然威力惊人,活动开始后仅仅一周,就已经吸引了超过 20 万顾客,仅仅 18 天,就圆满完成了吸引 50 万顾客的任务 [5]。

对于 Facebook 来说,这不仅是一次赢利机会,而且也是一次绝好的宣传机会,今后可以举一反三,向其它商家推荐这种促销方式。但是 Facebook 没赚到什么钱,洋洋得意的,却是微软 [6]。

图二. 澳拜客(Outback)在 Facebook 上的 ”开花洋葱“ 优惠券
Courtesy http://i879.photobucket.com/albums/ab351/kan_deng/OutbackBloominOnion.png

澳 拜客的强项是烧菜,所以澳拜客的市场部把网络促销的实现工作,外包给了一家名叫 Thuzi 的公司。Thuzi 的 CTO 认为,由于难以事先预料促销活动开始以后,会有多少顾客会光顾澳拜客的主页。流量难以预测,所以无法预先确定需要多少台服务器。合理的解决方案,是租赁云 计算平台,根据实时流量,即时动态地分配服务器。多用多付钱,少用少付钱。

Thuzi 接到澳拜客的项目,是 2009 年 9 月的事儿,这时离促销开始的 11 月,只有两个月的时间。Thuzi 先是考虑租赁 Amazon 的云计算平台,但是开发工作量太大。又考虑了 Google 的云计算平台,但是使用太复杂。最后 Thuzi 选择了微软的 Azure 云计算平台,结果圆满完成任务 [6]。

在可见的未来,类似澳拜客这样的促销活动,将越来越多。Facebook 急需建设自己的云计算平台,而且还必须易学易用,把两个月的开发周期,最好降低到几天,甚至几个小时。

因为没有云,Facebook 丢了商机。而且丢掉的,不仅仅是市场促销活动这一类商机。

有个制作视频的服务,Animoto,在 Facebook 登台亮相之初,宾客盈门。Animoto 后台服务器在三天内,需求量从 40 台一下子猛增到 5000 台。热闹了一阵子以后,宾客热情消退,门可罗雀,根本用不了 5000 服务器。

如果在用户人数大增时,Animoto 不迅速增加后台服务器的数量,用户无法正常使用该服务,失去的是市场。但是用户人数大跌以后,这 5000 台服务器闲置,又造成对现金流的无意义的侵蚀。

所幸的是,Animoto 当初没有自己购置服务器,而是租用了 Amazon EC2 云计算服务,一场左右两难的惊悚,被云计算服务化解于无形 [7,8]。

Facebook 平台上,有 55 万个这样的服务。假如 Facebook 有自己的云,租赁云计算这笔大生意,就不至于落入 Amazon 和微软之手。

图三. Animoto 租用 Amazon 云计算服务
Courtesy http://i879.photobucket.com/albums/ab351/kan_deng/Cloud/AnimotoandCloud.png

从这两个例子中,我们看到 “部落式” 的系统架构存在的一个问题。由于各个部落自成一体,不共享资源,造成各部落平时资源冗余,高峰时却又疲于应付。

无法实时地弹性地分配资源,这只是部落式系统架构存在的,诸多隐患中的一个。

业界经常把 Yahoo! 部落式系统架构,形象地称为 “烟囱”。烟囱式系统架构,虽然存在很多问题,但是技术门槛低,各部落各司其职,责任分明。从历史上看,曾经助力 Yahoo! 等等门户网站,迅速走向市场,这是烟囱的历史功绩。

但是随着时代的发展,传统的烟囱,解决不了新需求新问题。新需求新问题,需要云计算这个新技术。

Facebook 不是不明白这个道理,它正在逐步构筑自己的云计算平台。

Reference

[1] Apple SEC Filings.
http://finance.yahoo.com/q/sec?s=AAPL+SEC+Filings
[2] Warren Buffett and the Interpretation of Financial Statements
http://www.amazon.com/Warren-Buffett-Interpretation-Financial-Statements/dp/1416573186
[3] Facebook: Science and the Social Graph
http://www.infoq.com/presentations/Facebook-Software-Stack
[4] Scale at Facebook.
http://www.infoq.com/presentations/Scale-at-Facebook
[5] Facebook + Cloud Computing = A Perfect Marriage for Social Media Marketing?
http://blogs.msdn.com/b/ingitaraj/archive/2010/03/29/facebook-cloud-computing-is-this-the-perfect-marriage-for-social-media-marketing.aspx
[6] Microsoft Case Studies: Outback Steakhouse.
http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000005861
[7] Above the Clouds: A Berkeley View of Cloud Computing
http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf
[8] Animoto ramped up in the cloud.
http://www.informationweek.com/blog/main/archives/2009/01/behind_the_musi.html

你可能感兴趣的:(解剖 Facebook 底层)