从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!
原文发布时间为:2014年02月28日
本文作者:Todd Hoff
本文来自合作伙伴至顶网,了解相关信息可以关注至顶网。