WhatsApp目前擁有9億用户,但為何只需要50名工程師?
虎嗅注:本文來自Wired文章《Why WhatsApp Only Needs 50 Engineers for Its 900M Users | WIRED》,作者CADE METZ,虎嗅編譯。
本月初,WhatsApp的CEO Jan Koum在他的Facebook上宣佈,公司的實時通訊服務已經擁有9億用户。之後Facebook CEO Mark Zuckerberg也立刻連發兩條回覆他,一條説 “祝賀,”另一條的配圖是WhatsApp CEO在編輯那條 “宣佈用户突破9億”的狀態時的樣子,並寫道 “這就是你編寫那條狀態時的抓拍”,Zuckerberg寫道。
WhatsApp目前歸Facebook所有,在WhatsApp以初創公司之姿面世剛滿一年後,Zuckerberg和他的公司便出資190億美元將其買下。這樣一來,Facebook就運營着互聯網上最火的三個app。作為主業的社交網絡業務目前在世界範圍內擁有15億用户,而Facebook Messenger,從Facebook中拆分出來的即時通訊業務也擁有7億用户。但是Koun宣佈的里程碑似的9億用户的榮耀是屬於WhatsApp的,而不是作為一個Facebook生產線上的一個產品。
WhatsApp的有趣之處在於它實現了小團隊打造大型服務。當它被Facebook收購時,它是一個擁有35名工程師和4.5億用户的軟件。如今,當它已經把這個用户數翻倍,它也只擁有50名工程師而已,並且這個小團隊幾乎全部在依靠自己的力量來運作這個產品。當下,有很多互聯網服務都在快速地向百萬用户目標進發,WhatsApp至少從某種程度上向它們展示了一種方法。
WhatsApp從不在技術和其他運營工作上發表太多言論,但是昨天,在加利福尼亞州聖何塞的一個會上,WhatsApp的軟件工程師上台對公司的一些非同尋常的理念做了簡短的討論。其中一個就説公司使用的編程語言是Erlang。雖然Erlang在編程界並不是很受歡迎,但它擅長處理海量用户之間通訊任務,並且它允許工程師快速配置新代碼。但是Mahdavi説,和技術同樣重要的還有態度。
Mahdavi兩年前加入WhatsApp,那時作為初創企業的WhatsApp已經處於穩定的運營狀態,Mahdavi發現他們使用的工程方法是他從未見過的。因為他們在使用Erlang作為編程語言,並使用一款名為FreeBSD的操作系統,這使他們的系統變得很簡單。 “這是一個完全不同的搭建大規模基礎架構的方法,”他在週一時候説。 “能夠了解到有這樣的簡單方法來解決問題真是大開眼界。”
並行性編程語言的利用
WhatsApp使用Erlang只是推動此類並行性(同時跑多個程序)編程語言前進的一個側面。因為互聯網服務涉及得人越多越需要多任務處理,這時這類編程語言就顯得格外具有吸引力了。
Facebook一直在使用一種叫Haskell的編程語言搭建反垃圾郵件系統。Haskell最早形成於80年代晚期的一個學術實驗室,但到如今仍未流行起來。Facebook選擇它來阻截垃圾郵件是因為它很擅長於並行任務處理,也因為它可以讓程序員對任務進行快速處理。同時,Google和Mozilla——火狐瀏覽器製造商正在合力開發一種擁有類似功能的語言,為名Go and Rust。
正如Haskell一樣,Erlang也是一個80年代的產物。Erlang是愛立信公司的工程師們為了搭建高速電話網絡時而創建的語言。 “Erlang是為了解決一個特定問題才發明的語言,而不是為了發明而發明,之後才發現了它的用途,”Erlang的專家Francesco Cesarini説。 “當時那個特定的問題就是需要強大的可拓展性和可靠性。電話網絡是當時唯一能夠展現這些屬性的系統。”
Erlang一直都被編程領域邊緣化,但是在WhatsApp和其他互聯網公司,包括微信和Whisper,它成功找到了像之前電話網絡時期一樣的存在感。實際上,WhatsApp就是手機短信的替代服務。它也對 “可擴展性和可靠性”有着極高要求。
另外,Erlang還讓程序員辦公更高效,這也是現代軟件開發必不可少的部分。它提供了一種方法,可以在程序還在運行的情況下,快速編入新的代碼。在這個時刻變化的時代,這個特性是無比有用的。
保持簡單,保持聰明
這個語言也有它的缺點。只有相對較少的程序員了解Erlang,它也不會百分百與如今互聯網公司的代碼相匹配。Facebook用Erlang語言開發了他們自己的聊天app,但最終他們還是重新用其他語言進行再次開發,以適配其他基礎架構。 “Erlang是我們擁有的一座島的話,我們很難建造出足夠多的船可以停靠到島上。”Facebook工程副總裁Jay Parikh説。
當然,WhatsApp並不一定要用這種方法與已有基礎架構進行整合。Mahdavi相信這些問題對於Erlang的程序員來説並不是問題。“我們的招聘戰略是去找最好最聰明的工程師。我們並沒有對Erlang有特別要求,因為工程師都知道Erlang,”Mahdavi在週一時候説。“我們希望工程師加入我們之後,用最初的一週去熟悉這種語言,並學習使用操作環境。如果你僱了聰明的人,他們自然會勝任的。”
從某種程度上來説,公司能夠成功也因為僱傭了這些適應力強的工程師。在被問到公司成功的祕訣是,Mahdavi如此簡潔地回答。但這的確是關鍵。“最重要的是要非常專注到你需要去做的事情上,”他説,“不被其他的事情和其他的技術分心,即使是辦公的會議也不行。”
在WhatsApp,工程師基本從來不參加會議。是的,他們就只有幾十人,但這就是關鍵之所在。
資料來源:虎嗅網