<返回更多

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因

2023-10-12  51CTO  
加入收藏
这篇文章概述了 WhatsApp 联合创始人 Jan Koum 的令人难以置信的创业故事、以及用于扩展 WhatsApp 的工程技术。想要研究其可扩展性模式的朋友不妨分享这篇文章。

2008 年 1 月,美国加利福尼亚州。一位名为 Jan Koum 的雅虎工程师,在申请 Facebook 职位时被拒了。

这当然不是故事的终点——他第二年入手了一部 iphone,并立即认识到新 App Store 的巨大潜力。因此,他决定与雅虎的一些前同事一起开发一款即时通讯工具,并将其命名为 WhatsApp,据称这个名字是他在朋友家的厨房讨论了几个小时就确定的。WhatsApp 背后的愿景是取代昂贵的短信。

WhatsApp 每天有 100 万人注册,其增长速度简直令人难以置信。但更为人难以想象的是:WhatsApp 每天需要支持来自 4.5 亿日活跃用户的500 亿条消息,他们却只用了32 名工程师就做到了。

尽管产品爆炸性增长是一个好现象,但 Jan Koum 和 WhatsApp 团队必须采用最佳工程实践来克服挑战。

WhatsApp 满足极端可扩展性的工程实践的 8 点原则如下。

1、单一职责原则

他们只将产品的重点放在核心功能上——消息传递,并且没有费心建立广告网络或社交媒体平台。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因单一责任原则

他们还不惜一切代价消除了功能蔓延。当你向产品添加过多的功能时,就会发生功能蠕变。并使其难以使用。此外,他们更注重 WhatsApp 的可靠性。

2、技术栈

他们使用 Erlang 构建 WhatsApp 服务器的核心功能。因为它:

线程是 Erlang 的原生特性。但在JAVA或C++中,线程属于操作系统。所以Erlang中没有必要保存整个CPU状态。这使得上下文切换更便宜。

热加载可以更轻松地部署代码更改,而无需重新启动服务器;或者流量重定向。简而言之,热加载提供了高可用性。

3、为什么要重新发明轮子?

不要重新发明轮子- 要么使用开源,要么购买商业解决方案。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因不要重新发明轮子

Ejabberd 是一个用 Erlang 编写的开源实时消息服务器。

他们在 ejabberd 之上构建了 WhatsApp 。他们还重写了一些 ejabberd 核心组件来满足他们的需求。此外,WhatsApp 利用 google Push 等第三方服务来提供推送通知。

4、跨领域的关注

他们非常重视跨领域的关注,以提高产品质量。横切关注点是影响产品许多部分的事情。并且很难分开。例如,监视和警报服务的运行状况。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因跨领域关注点

他们通过持续集成和持续交付改进了软件开发流程;持续集成是将代码更改定期合并到中央存储库的过程;持续交付是将代码部署到测试或生产环境的过程。

5、可扩展性

WhatsApp使用对角缩放来降低成本和操作复杂性;水平扩展是增加资源池中机器数量的过程;垂直扩展是增加现有机器容量(例如 CPU 或内存)的过程;对角线缩放是水平和垂直缩放的混合。计算资源可以垂直和水平添加。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因可扩展性

他们在 FreeBSD 操作系统上运行 WhatsApp 服务器。因为他们之前在 Yahoo 工作时就有过使用 FreeBSD 的经验。此外,FreeBSD 还提供了可靠的网络堆栈。

他们还对 FreeBSD 进行了微调,以容纳每台服务器超过 200 万个连接。并修改了文件、套接字等内核参数。

他们过度配置服务器来处理突发的流量峰值并为故障留出空间。例如,网络分区或硬件故障等故障。

6、飞轮效应

他们测量了 CPU、上下文切换和系统调用等指标。然后找出并消除瓶颈。_ 他们定期这样做。持续的反馈周期极大地提高了 WhatsApp 的性能。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因持续反馈循环

7、质量测试

WhatsApp 团队使用负载测试来识别单点故障。负载测试是测量系统在预期负载下性能的过程。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因负载测试

他们使用人工生产流量和 DNS 配置更改来进行负载测试。

8、团队规模保持克制

随着团队规模的扩大,工程师之间的沟通路径呈二次方增长。这是生产力下降的一个原因。

WhatsApp 仅用 32 名工程师就能支持每天 500 亿条消息的八个原因工程师之间的沟通路径

 

因此他们保持了较小的团队规模——32名工程师。

——后记——

WhatsApp被收购

WhatsApp 是市场上最成功的即时通讯工具之一。2014 年 2 月,拒绝给 Jan Koum 发放 Offer 的 Facebook ,最终以高达 190 亿美元的价格收购了 WhatsApp。

据福布斯报道,到 2023 年,Jan Koum 的净资产将达到 140 亿美元。

原文链接:https://newsletter.systemdesign.one/p/whatsapp-engineering?actinotallow=share

关键词:WhatsApp      点击(15)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多WhatsApp相关>>>