1. 程式人生 > >WhatsApp用什麼架構支撐4.5億活躍使用者?

WhatsApp用什麼架構支撐4.5億活躍使用者?

從WhatsApp軟體架構師Rick Reed在3月份即將發表的演講介紹中(That's 'Billion' with a 'B': Scaling to the next level at WhatsApp),我們可以得知WhatsApp當下的一些輪廓:
現在,WhatsApp有數百個節點、數千個核心及數百TB的記憶體,我們的目標是服務全世界數十億使用者。在WhatsApp,我們使用了Erlang/基於FreeBSD伺服器基礎設施,為了應對訊息的增長需求,我們必須克服一個又一個挑戰,可以說在系統容量(大於8000核心)和速度(每秒Erlang訊息超7000萬)上的極限挑戰從未停歇!
鑑於這個演講在3月份才釋出,這裡我們不妨聚焦Rick Reed兩年前的分享—— WhatsApp如何應對數百萬的同時連結數。
在Yahoo!供職時,Rick Reed曾負責用C++建立高效能的訊息匯流排,因此他對高擴充套件性架構並不陌生。WhatsApp創始人中還包括了一個擁有大量擴充套件經驗的Yahoo!工程師,不難得知,WhatsApp有現在的成就與兩個創始人的超凡技術是分不開的。而企圖成為全世界50億手機服務商的遠大目標,他們也必須將技術推向極限!
190億美元的交易的背後
做為一個程式設計師,如果你問WhatsApp是否值那麼多,我的答案必然是否定的!因為產品真正價值不在於那些死板的程式碼,而在如何讓使用者喜歡並且使用。



著眼這個應用的特點,我們知道WhatsApp是一個世界級的 零噱頭(零廣告,零創意,零遊戲)產品,在SMS收費時代提供了一個免費的資訊互動平臺。當下,這個應用已被數量巨大的美國人使用,因此一旦有使用者加入,即會在上面發現大量的親朋好友。在手機如此普及年代,WhatsApp絕對稱得上填補了美國社交網路上的空白。鑑於其跨平臺特性,所以每個人都可以使用它;值得關注的是,它還可以傳遞各種格式資訊,比如共享地理位置、傳送語音及視訊等。WhatsApp有著非常出色的國際化,使用手機號碼作為驗證資訊、聯絡人列表作為社交圖,因此你不需要郵箱驗證、使用者名稱及密碼,更不需要提供信用卡等號碼資訊——“it just works”。
雖然WhatsApp有著如此的誘人特性,但是它仍然不值190億美元,而且對於網際網路巨頭來說,這樣的特性模仿起來也並不複雜。
WhatsApp之所以能賣190億美元可能有多個原因: 第1, 如Google CEO Larry Page所說;第2, WhatsApp已經威脅到Facebook;第3,Facebook正在褪色,需要補充大量新鮮血液;第4, WhatsApp是你的電話簿;第5,WhatsApp可以收集到大量的元資料(雖然他們並未儲存)。
準確的說,190億美元收購WhatsApp是為了它的 4.5億使用者,為了它的日百萬使用者增加,為了它可能會有10億使用者的潛能——Facebook需要WhatsApp成為下一個10億使用者應用,當然只能成為它的一部分。同時,40美元一個使用者的價格也並不離譜,特別是以股票充當大部分金額。Facebook曾今使用 30美元每使用者的價格收購了Instagram,而 Twitter的每個使用者更值110美元。
Benedict Evans 做了一個非常棒的預測,移動是一個萬億級的市場。WhatsApp通過每天傳送180億SMS訊息(整個SMS系統每天傳送的訊息也只有200億條)攪亂了整個SMS市場,而這個市場有著超過1億美元的稅收。在智慧手機採用越發普及的年代,WhasApp有著比Facebook更清晰的盈利思路。然而,在承諾了零廣告和零干涉後,Facebook又會從何處得益?
在 移動應用業務開發上有著許多有趣的用例, WhatsApp則經常被專案團隊用來建立會話組,風投們也樂於將它作為交易流程中的對話工具。
Instagram被Kuwait用來出售綿羊。
WeChat,WhatsApp的一個競爭者,在1月份推出了一個叫車服務;值得關注的是,僅僅一個月,這個應用上的 打車成交量就達到了2100萬。
商業活動看起來確實很適合WhatsApp,但是它的用途顯然還有更多——西班牙警察使用它來抓捕罪犯,義大利人們使用它來組織籃球比賽。
鑑於每個人都有手機而且訊息應用已變得更加強大、自由及便宜,商業及其它型別應用程式已逐步向移動端過渡。許多功能已不再只能用桌面或Web應用程式實現,訊息應用已初露鋒芒。
其中,許多應用已經對Facebook和Google產生威脅,桌面和網路皆將成為過去, 訊息+移動將讓整個系統愈加偏離這些巨頭的王國,那麼在這股移動的大潮中Facebook又該何去何從?
隨著移動化的更加深入,Facebook的地位已愈發岌岌可危,使用者的流逝顯然已不可避免。桌面Web是Facebook後端所有特性的入口,它非常的肥胖、複雜及陳舊,當下已經很少有人會喜歡Facebook的UI。
在Facebook確定了“Mobile first”這個移動方案後,更深度的打磨被執行——不僅建立不同用途的應用,同時也提供了多個具有類似功能和相互競爭的應用,這些應用有時甚至不會共享相同的後臺基礎設施,比如:Messenger和WhatsApp,Instagram和Facebook圖片應用。Paper也是Facebook一個限制功能候補入口,但是它表現得非常好。
在Mobile World Congress上,Facebook CEO Mark Zuckerberg發表了自己的看法, 他認為收購WhatsApp與Internet.org的願景緊密相連:
這個思想就是建立一組基礎網際網路的免費服務——“網際網路的911”,這可能是類似Facebook這樣的社交網路服務、訊息服務以及搜尋服務等。將這些服務提供給那些支付得起卻沒有支付意識的使用者,引誘其上癮,讓他們知道自己的重要性,從而更願意使用更多的收費服務。
這是個長久的目標,這個舞臺裡有足夠多的利益去追逐,然而即時回報率卻非常的低, Facebook正在這條道路上前行著
拋開這次交易不談,WhatsApp究竟是如何用32個工程師來支撐4.5億的活躍使用者,下面一起探索……
服務4.5億使用者的高可靠架構
資訊源
需要注意的是, WhatsApp的整體架構並未公開,這裡僅僅是從不同資訊源中獲取不同的片段。Rick Reed的講座主要分享了使用Erlang實現單伺服器200萬連線數,雖然很有價值,但是並不是整個應用架構。
Rick Reed: 擴充套件到數百萬併發連線數(2012, PPT)
Rick Reed: Erlang Factory(訪談)
Eugene Fooksman: WhatsApp的Erlang使用(訪談)
DLD14: 關於WhatsApp(Jan Koum和David Rowan)
Yowsup以前是WhatsApp的一個開源API,但是由於 棄用了DMCA當下已不可用,但是同樣可以說明WhatsApp的一些內部工作機制。
相關文章中列出的一些資訊。
一、 統計
這些統計是當下系統的一些資料,更多針對資料儲存、訊息、meta-clustering以及新加入的BEAM/OTP補丁。
4.5億的活躍使用者,並且是史上最快達到這個數字的公司
32個工程師,平均每人支撐1400萬活躍使用者
每天收發跨7個平臺的500億訊息
平均每天註冊使用者過百萬
0廣告開銷
800萬投資
數百個節點
8000+核心
數百TB記憶體
每秒Erlang訊息超過7000萬
在2011年,WhatsApp單伺服器取得 100萬個tcp會話,同時還有記憶體和CPU剩餘。在2012年, tcp會話發展到了200萬。2013年WhatsApp 發表tweet宣告,70億訊息入站,110億訊息出戰,即每天處理180億訊息,偉大的2013!
轉自:http://m.chinabyte.com/server/117/12873617_m.shtml