您的位置:首页 >> 正文
WhatsApp拥有9亿用户,为何只需要50名工程师?
2016年08月29日
来源: 财经综合报道
【字号: 】【打印

    2015年,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选择它来阻截垃圾邮件是因为它很擅长于并行任务处理,也因为它可以让程序员对任务进行快速处理。同时,谷歌和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,工程师基本从来不参加会议。是的,他们就只有几十人,但这就是关键之所在。

【字号: 】【打印】【关闭
010070160030000000000000011100001120048839