擁有 9 億用户的 WhatsApp,工程師只有 50 人


WhatsApp 是全球最受歡迎的聊天軟件,用户數量達到 9 億。在 WhatsApp 成長過程中,最讓人驚奇是事情是,這件壯舉是由一個小團隊完成的。在公司被 Facebook 收購之前,它已擁有 4.5 億用户,而公司的工程師只有 35 名。如今,它的工程師數量也只是增加到了 50 名。

WhatsApp 很少談論技術方面的事情。不過,在最近的一次科技聚會上,WhatsApp 的軟件工程師 Jamshid Mahdavi 談到了公司的一些不尋常做法。比如,公司在構建自己的網絡服務時,使用了一種不常見的編程語言:Erlang。這種語言並沒有被許多程序員採用,但是,它非常適合 WhatsApp 的服務,一種大量用户進行交流的服務,而且,它讓工程師快速部署新的代碼。Mahdavi 説,技術只是一方面,更為重要的是態度問題。

Wired 網站報道,Mahdavi 於兩年前加入 WhatsApp。他發現,公司對待技術的態度是他未曾見過的。一方面,這是因為公司使用了 Erlang 和 FreeBSD 操作系統,另一方面,公司努力維持一種非常簡單的運作方式。“在構建大規模的架構上,這是一種完全不同的方法,” 他説,“以極簡主義的方式,只解決那些急需解決的問題,這讓我大開眼界。”

WhatsApp 使用 Erlang 的原因是,它擅於處理並行的任務。當互聯網服務覆蓋到更多人羣,必然需要同時處理人們的各種需求,於是,此類語言變得很有吸引力。在開發反垃圾郵件系統時,Facebook 就使用過另一種小眾語言 Haskell。與 Haskell 相同,Erlang 也是誕生於 80 年代。它由瑞典愛立信的工程師開發,用於高速的電話網絡。

“他們不是首先發明語言,然後搞懂它的用途,而是發明了一種解決特定問題的語言,” 英國的一位 Erlang 專家 Francesco Cesarini 説,“當時的問題是大規模系統的擴展性和可靠性,那時候,電話網絡是唯一顯示出此類特性的系統。” 從某種程度上説,WhatsApp 就是替代了電話服務,因此,它也需要同樣的“擴展性和可靠性”。

當然,這種語言也有一些問題。一是懂 Erlang 的程序員比較少,二是它可能與現有系統不兼容。Facebook 曾用 Erlang 編寫了 Facebook Chat,但是,它後來又重寫了軟件,以便更好兼容公司的其它系統。對於 WhatsApp 來説,這些似乎不是什麼問題。它不需要考慮與現有系統的兼容,而且,Erlang 程序員稀少也沒什麼關係。

“我們的招聘策略是,找到最好的、最聰明的工程師。我們不會因為某個人了解 Erlang 就聘用他 。” Mahdavi 説,“我們希望,當工程師進入公司後,花上一週時間去熟悉這種語言,然後學會使用它。如果你僱傭了聰明的人,他們能夠做到這一點。”

圖片來自 tiempo


資料來源:愛範兒(ifanr)
作者/編輯:積木

如果喜歡我們的文章,請即分享到︰