Friday, April 2, 2010

Build Now,Scale Later:Getting Real

原文:FaceBook CookBook (Chapter 4.3)
Build Now,Scale Later:Getting Real
馬上作,晚點擴展: 回到現實世界吧

問題
聽說過好多傳聞,關於開發者因為一開始沒有考慮到規模擴張的問題
等到有了25萬用戶時手忙腳亂的嘗試擴張應用程式
我想要一開始就建立好正確的規模
有沒有聰明一點的方法

解決:
想像一下Ilike 當初在Bay Area,開著租來的車
(http://www.ilike.com/ 一個音樂社群網站 最近被Myspace收購)
四處籌錢買了150台Server 完成安裝到他們的data center,只花了48小時
正當匆忙準備這些server時,他們已經有6百萬用戶

這個故事的告訴我們,
只要你肯丟錢買server
你永遠可以之後在擴展你的規模.

如果一開始,為了那小貓兩三隻的用戶
你就要建構一個完整load balance,n-tier架構,
你必須再多花半年時間
而此時你的對手早已經完成品上線了

再看看另一個故事,
Twitter CEO Evan Williams
在成立Twitter之前,跟他的夥伴成立了Pyra Labs
建立了Blogger平台然後賣給了Google

Evan Williamsc.後來成立一家新公司Odeo
一個員工叫Jack Dorsey貢獻了一個在腦中盤旋了6個月的點子
在2006年10月,他們把Jack作的ProtoType公布
叫作"Twttr" (不是Twitter喔)

到了2008年5月它們改名Twitter
Twitter有1百70幾萬用戶每天送出3百萬post
然後 他們遇到了規模擴張的問題

在一次訪談中Evan Williamsc.提到
他們的問題不在於金錢,或使用Ruby on Rails,或是Server,
而是整個架構的問題

當它們建立Twitter平台時
根本沒想到會變得大受歡迎,超過Jack作的ProtoType所能負荷
所以也沒有考慮擴張性的問題
他提到,通常擴張性不值得去考慮
因為一般產品永遠達不到那個規模

然而看看Facebook上的App
過去一年前10名App的用戶幾乎都是在一夕之間一飛衝天
似乎證明
如果你是開發一個超棒的app
就算一開始就建構最棒最完整的架構也並非不切實際的

結論是,你應該把目標放在中度規模
介於比工程師的prototype大
比擔心每天3百萬訊息量小
(介於Twttr,與Twitter之間)

Twttr=============你============== Twitter

No comments: