# 解剖 Facebook 【7】 重口味的云计算

- 作者：邓侃
- 发布时间：2011-01-04 10:08
- 原文：https://www.ifanr.com/29611

几周前，某君发了一张照片给我。这是研制中的云计算集装箱，把数据中心一整套设备放进集装箱内，实现移动式云计算数据中心，见图一左侧。

![](https://s3.ifanr.com/wp-content/uploads/2011/01/Cloud-Computing-VS-480x170.png "Cloud Computing VS")

图 1. 云计算集装箱 vs 移动厕所。

Courtesy [http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/vs.png](http://i879.photobucket.com/albums/ab351/kan_deng/Cloud/vs.png)

他问我，这个云计算集装箱，是不是很像移动厕所？

作为云计算工程师，我对这个类比有本能的心理抵触。

他接着说，不仅外型像，而且在本质上，云计算也与移动厕所很像。

我疑惑地看着他，很想知道那张嘴，还会说出什么雷人的话。

他问到，现在忽悠云计算的厂家很多，如何评判谁是真正的云计算？

还没等我回答，他接着说，检验云计算有四项基本原则，1. 大规模，2. 可扩展，3. 超稳定，4. 高弹性。

这里我先解释一下这四项基本原则。

1\. 大规模。

截止 2010 年 4 月，Twitter 注册用户超过 1 亿，见图二。支持这么大规模的用户群，Twitter 网站的后台系统，需要大规模的计算和存储能力 \[1\]。

而 2010 年 10 月底，国内的新浪微博用户数，也超过了 5000 万，大有赶超 Twitter 的势头。所以，新浪微薄的网站，也需要大规模的后台系统 \[2\]。

![](https://s3.ifanr.com/wp-content/uploads/2011/01/twitter-on-paper-480x1011.jpg "twitter-on-paper")

图 2. Twitter 统计，2010 年 4 月 \[1\]。

Courtesy http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/twitter-on-paper.jpg

2\. 可扩展。

单单具有大规模的计算和存储能力，算不上是云计算。

从 2006 年 5 月 Twitter 上线，到 2007 年12 月，在这一年半的时间里，Twitter 用户数从 0 增长到 6.6 万。又过了一年，2008 年 12 月，Twitter 的用户数达到 5 百万 \[3\]。而截止 2010 年 4 月，Twitter 注册用户又增长了近 20 倍，超过 1 亿。

而新浪微博，起步虽晚，但是势头强劲。2009 年 8 月 28 日，新浪微博上线。66 天后，2009 年 11 月 2 日，新浪微博迎来了第 100 万个用户。2010 年 4 月 28 日，注册用户首次突破了千万大关。2010 年 8 月 28 日，新浪微博一周岁生日之际，注册用户数增长到 3000 万。截至 2010 年 10 月底，这一数字已经达到了 5000 万 \[2\]。

IT 界有句名言很给力，“在中国能办到的，在美国一定能办到。反之，不成立”。原因很简单，人口规模相差甚远，导致成长空间相差甚远。

伴随着用户数量的增长，网站的后台系统的承载能力，也必须相应增长，而且在增长的时候，不能破坏现有系统。这就是可扩展性。

[![](https://s3.ifanr.com/wp-content/uploads/2011/01/TwitterGrowth3-480x402.png "TwitterGrowth3")](https://s3.ifanr.com/wp-content/uploads/2011/01/TwitterGrowth3.png)

图 3. Twitter 的成长历程 \[4\]。

Courtesy http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/TwitterGrowth3.png

3\. 超稳定。

仅仅具有大规模的，和可扩展的计算和存储能力，还算不上是云计算。

2009 年 4 月 26 日，Twitter 扛不住太多用户导致的流量压力，进而崩溃 \[5\]。此后又多次发生这样的故障。

2010 年 12 月 1 日，新浪微博注册用户突破 5000 用户后不久，新浪的后台系统也开始领教大规模的用户群，带来的洪水般的流量冲击的厉害 \[6\]。

要称得上云计算这个光荣称号，不仅要大规模，可扩展，还必须超稳定。向蒸不烂、煮不熟、搥不匾、炒不爆、响珰珰的一碗铜豌豆看齐。

![](https://s3.ifanr.com/wp-content/uploads/2011/01/Twitterfails-480x243.png "Twitterfails")

图 4. Twitter 和 新浪博客崩溃

Courtesy [http://i879.photobucket.com/albums/ab351/kan\_deng/Cloud/Twitterfails.png](http://i879.photobucket.com/albums/ab351/kan_deng/Cloud/Twitterfails.png)

4\. 高弹性。

美国的年度橄榄球决赛，绰号超级碗 (SuperBowl)。SuperBowl 在美国的收视率，相当于中国的央视春节晚会。

2008 年 2 月 3 日，星期天，该年度SuperBowl 如期举行。纽约巨人队 (Giants)，对阵波士顿爱国者队 (Patriots)。这是两支实力相当的球队，决赛结果难以预料。比赛吸引了近一亿美国人观看电视实况转播。

对于Twitter 来说，可以预料的是，比赛进行过程中，Twitter 流量必然大涨。比赛越激烈，流量越高涨。但是 Twitter 无法事先预料的是，流量究竟会涨到多高，尤其是洪峰时段，流量究竟会冲到多高。

事后统计 \[7\]，在 SuperBowl 比赛进行中，每分钟的流量与当日平均流量相比，平均高出 40%。在比赛最激烈时，更高达 150% 以上。与一周前，2008 年1 月 27 日，一个平静的星期天的同一时段相比，流量的波动从平均 10%，上涨到 40%，最高波动从 35%，上涨到150%以上，见图五。

由此可见，Twitter 流量的波动十分可观。对于 Twitter 公司来说，如果预先购置足够的设备，以承受流量的变化，尤其是重大事件导致的洪峰流量，那么这些设备在大部分时间处于闲置状态，非常不经济。但是如果缺乏足够的设备，那么面对重大事件，Twitter 系统有可能崩溃，造成的后果是用户流失。

怎么办？办法是变买为租。Twitter 公司自己建设的后台系统，规模无须太大，能够应付平时的平均的流量即可。同时租赁云计算平台公司的设备资源，以应付重大事件来临时，突发的洪峰流量。 Twitter 就是通过租赁第三方（ Netcraft 公司） 提供的云计算资源的办法，顺利挺过了 SuperBowl 的洪峰冲击 \[8\]。

2011 年春节将至，新浪微博势必迎来创纪录的流量高峰。去年 2010 年央视春节晚会，收视率高达 95%，几乎每个中国家庭都在看 \[9\]。2011 年央视春节晚会现场直播之际，新浪微博的洪峰流量将冲到多大规模？新浪后台系统，能不能扛得住洪峰流量冲击？如果不行，新浪将租赁哪一家公司提供的云计算 服务？这些都是吊足 IT 人胃口的悬念故事。

![](https://s3.ifanr.com/wp-content/uploads/2011/01/TweetFlood3-480x371.png "TweetFlood3")

图 5. 2008 年 2 月 3 日，SuperBowl 决赛导致 Twitter 洪峰

Courtesy http://i879.photobucket.com/albums/ab351/kan\_deng/TweetFlood3.png

前面解释了云计算四项基本原则，1. 大规模，2. 可扩展，3. 超稳定，4. 高弹性。

接下来继续讨论云计算与移动厕所的相似性问题。

某君说，上海世博园区内的移动厕所，见过没有？不是一字排开，而是成方阵排开。这样的厕所方阵，在世博园区内有多处。这是什么规模，算不算 ”大规模“？

并非刚开始就这么大规模，而是随着世博游客越来越多，逐渐增加了移动厕所的个数。如果有需要，还可以随时增加新的厕所单元。这算不算 ”可扩展“？

万一哪一个厕所单元坏了，就把它撤换下来，换一个能正常工作的。厕所方阵整体的正常运行，不会受到严重影响。这算不算 ”超稳定“？

世博晚上经常放烟花，演节目，这时候游客聚集于世博园中心区，厕所不够用。怎么办？傍晚时，把其它区域的移动厕所，暂时挪用到中心区，满足聚集在中心区的游客。第二天凌晨，再归还原处。这算不算 ”高弹性“？

最后，他总结到，一提到云计算，我就联想到移动厕所。

这个总结，让云计算工程师们，情何以堪？

但是想说服重口味的某君，停止这样的联想，却不容易。

如果你说，这样的比喻，伤害了云计算工程师的感情。

他多半会反问，为什么餐馆是高雅的，而厕所是卑贱的？为什么嘴巴是高雅的，而肛门是卑贱的？你是不是有器官歧视？

要阻止重口味的某君，把云计算比喻成移动厕所，最有力的办法是，理性分析并论证，这个比喻不贴切。但是这话怎么说呢？

Reference，

\[1\] Twitter facts, April 2010.  
 <http://www.penn-olson.com/2010/04/23/twitters-current-statistics-infographic/>  
 \[2\] 2010 年 10 月底，新浪微博用户数超5000万  
 <http://tech.sina.com.cn/i/2010-11-16/10314870771.shtml>  
 \[3\] Fixing Twitter.   
 <http://www.bookfm.com/courseware/coursewaredetail.html?cid=100777>  
 \[4\] 关于社交媒体的 55 幅图  
 <http://article.yeeyan.org/view/163202/155307>  
 \[5\] Twitter fails，April 26, 2009.  
 [http://news.cnet.com/8301-13577\_3-10213501-36.html](http://news.cnet.com/8301-13577_3-10213501-36.html)  
 \[6\] 2010 年 12 月 1 日，新浪微博出现大规模访问故障。  
 <http://news.duote.com/news/4/9931.shtml>  
 \[7\] Twitter traffic during Super Bowl 2008.  
 [http://blog.twitter.com/2008/02/highlights-from-superbowl-sunday.html](https://docs.google.com/document/d/161KS9Szt62Co2nJl-hqf1Svv905aXqgnXN5zj16EKVY/edit?hl=en)  
 \[8\] The usage of Netcraft by Twitter.  
 [http://toolbar.netcraft.com/site\_report?url=http://twitter.com](http://toolbar.netcraft.com/site_report?url=http://twitter.com)  
 \[9\] 2010 年央视春节晚会收视率高达 95%。  
 <http://hi.baidu.com/ljh19880403/blog/item/466f1c345eae6bbcd0a2d300.html>
