拥有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