见闻您现在的位置是:首页 > 风向标 > 见闻

WhatsApp 如何在只有 50 名工程师的情况下扩展到 10 亿用户

<a href='mailto:'>微wx笑</a>的头像微wx笑 2021-11-28见闻 9 0关键字: WhatsApp  

2016 年,WhatsApp 的用户超过 10 亿,并有以下负载统计数据每天发送 420 亿条消息每天发送 16 亿张图片每天发送 2.5 亿个视频他们仅用 50 名工程师就设法达到了这种规模。这是

2016 年,WhatsApp 的用户超过 10 亿,并有以下负载统计数据xjF无知

  • 每天发送 420 亿条消息xjF无知

  • 每天发送 16 亿张图片xjF无知

  • 每天发送 2.5 亿个视频xjF无知

他们仅用 50 名工程师就设法达到了这种规模。xjF无知

这是对使这成为可能的工程文化和技术堆栈的深入了解。xjF无知

工程文化

WhatsApp 的工程文化包含 3 个主要原则xjF无知

  1. 保持小事xjF无知

  2. 保持简单xjF无知

  3. 一心一意专注于使命xjF无知

保持小事xjF无知

WhatsApp 有意识地将工程人员减少到只有大约 50 名工程师。xjF无知

单个工程团队也很小,由 1 到 3 名工程师组成,每个团队都有很大的自主权。xjF无知

在服务器方面,WhatsApp 更喜欢使用较少数量的服务器,并在最大程度上垂直扩展每个服务器。xjF无知

他们之前的目标是让每台服务器拥有 100 万用户(但随着他们向应用程序添加更多功能以及用户在每个用户的基础上产生更多活动,这变得更加困难)。xjF无知

拥有更少数量的服务器意味着更少的事情发生,这使得团队更容易处理。xjF无知

软件方面也是如此,他们限制了生产中系统和组件的总数。xjF无知

这意味着需要开发、部署和支持的系统更少。xjF无知

没有多少系统/组件被开发出来然后进入维护模式(最终成为孤儿,直到出现问题)。xjF无知

保持简单xjF无知

WhatsApp 使用了Just Enough Engineering的口号xjF无知

他们避免对系统和组件进行过度投资。xjF无知

相反,他们专注于构建足够的可扩展性、安全性和可靠性。xjF无知

他们做出技术选择的关键因素之一是“最简单的方法是什么?”xjF无知

此外,除非完全有必要,否则他们会避免投资于自动化。xjF无知

一心一意专注于使命xjF无知

WhatsApp 的产品设计非常专注。xjF无知

它致力于提供具有出色 UI 的核心通信应用程序xjF无知

他们避免了额外的花里胡哨,并且不实施并非专门针对核心通信的功能xjF无知

更简单的产品使其更易于维护和扩展。xjF无知

技术栈

技术栈围绕着 3 个核心组件:Erlang、FreeBSD 和 SoftLayer。xjF无知

二郎xjF无知

Erlang 是 WhatsApp 后端系统的首选编程语言。xjF无知

Erlang 从一开始就是为并发设计的,容错是该语言的一流特性。xjF无知

您可以在此处阅读有关 Erlang 容错的更多信息xjF无知

Erlang 的开发人员生产力也非常高。但是,它是一种函数式语言,因此如果您不熟悉范式,则需要一点时间来适应。xjF无知

该语言非常简洁,只需很少的代码行就可以轻松完成任务。xjF无知

OTP(开放电信平台)是开源中间件,库和工具Erlang的集合。xjF无知

WhatsApp 尽量避免依赖,但他们确实使用了 Mnesia,这是一个分布式数据库,它是 OTP 的一部分。xjF无知

Erlang 还带来了热插拔代码的能力。您可以获取新的应用程序代码并将其加载到正在运行的应用程序中,而无需重新启动应用程序。xjF无知

这使得迭代周期非常快,并允许 WhatsApp 发布快速修复程序并为其服务提供极长的正常运行时间。xjF无知

要确切了解 WhatsApp 的后端是如何使用 Erlang 构建的,您可以从 2018 年开始观看此演讲xjF无知

FreeBSDxjF无知

FreeBSD 是 WhatsApp 用于其服务器的操作系统。xjF无知

使用 FreeBSD 的决定是由 WhatsApp 的创始人根据他们之前在 Yahoo! 的经验做出的。xjF无知

创始人(以及许多早期团队)都曾经是 Yahoo! 的一部分,在那里广泛使用 FreeBSD。xjF无知


xjF无知


xjF无知

要确切了解 WhatsApp 如何使用 FreeBSD,您可以观看此演讲xjF无知

请注意,谈话是从 2014 年开始的,所以现在有些东西可能已经过时了。xjF无知

软层xjF无知

SoftLayer 是 WhatsApp 在 2016 年使用的托管平台。xjF无知

他们选择 SoftLayer 有两个主要原因xjF无知

  1. FreeBSD 作为一流操作系统的可用性。xjF无知

  2. 订购和操作裸机服务器的能力。xjF无知

但是,SoftLayer 归 IBM(IBM 公共云的一部分)所有,WhatsApp 已从 SoftLayer 移出,转而使用 Facebook 的基础架构。xjF无知

他们在2017 年进行了转型xjF无知

用于提高可扩展性的工具和技术


xjF无知

您可以在此处查看有关 WhatsApp 工程的完整演讲xjF无知

从这篇关于 WhatsApp 工程的高可扩展性帖子中获取更多具体细节xjF无知


xjF无知

转自:https://www.quastor.org/p/how-whatsapp-scaled-to-1-billion xjF无知


xjF无知

本文为转载文章,版权归原作者所有,不代表本站立场和观点。

很赞哦! () 有话说 ()

相关文章