Zoom的49天奇迹:从1000万到3亿用户的疯狂扩容

2020年3月,Zoom日活用户从1000万暴涨到3亿,服务器濒临崩溃。工程师们在49天里完成了一次不可能的技术救赎,背后是一次深夜的豪赌和一行改变命运的代码。

Zoom的49天奇迹:从1000万到3亿用户的疯狂扩容

Zoom的49天奇迹:从1000万到3亿用户的疯狂扩容

那个疯狂的3月

2020年3月12日凌晨3点,Zoom的运维监控中心警报声此起彼伏。

“又崩了,欧洲区服务器负载120%。“值班工程师Tom看着屏幕,声音有些发抖。

过去7天,Zoom的日活用户从1000万飙升到6000万。这个数字还在以每天数百万的速度增长。没有人知道上限在哪里。

CTO Kelly Steckelberg被紧急叫醒。她盯着仪表盘上那条垂直上升的用户曲线,做出了一个决定:“立即启动’无限扩容’计划,不惜一切代价。”

这个计划的成本是每天烧掉200万美元。

一切来得太突然

故事要从两个月前说起。

2020年1月,Zoom还是一家普通的SaaS公司,日活用户稳定在1000万左右。他们主要服务企业和学校,增长平稳但可控。

然后,COVID-19来了。

1月底,中国开始封锁。Zoom注意到来自中国的流量异常增长,但当时没人意识到这意味着什么。

2月,意大利封城。Zoom的欧洲服务器开始报警。

3月初,美国宣布进入紧急状态。Zoom的下载量开始指数级增长。

3月12日那天,Zoom的iOS应用在App Store免费榜上从第100名开外冲到了第1名。

袁征后来在采访中回忆:“那天早上我打开手机,看到排名的时候,手在抖。我知道,要么我们接住这波流量,要么公司死掉。“

服务器不够了

Zoom的基础设施当时能支撑的最大并发是1500万用户。

而3月12日那天的峰值已经达到了6000万。

更可怕的是预测:如果按这个速度增长,一周后可能达到2亿。

“我们的数据中心供应商说,交付新服务器需要6周。“基础设施负责人Alex在紧急会议上说,“我们等不了6周,我们可能连6天都没有。”

Zoom做了一个疯狂的决定:全面转向公有云。

那个深夜的电话

3月13日凌晨,袁征亲自给AWS、Azure和GCP的高管打电话。

“我们需要你们能提供的所有算力,立刻。“袁征对AWS的负责人说,“钱不是问题,时间才是。”

AWS的回应是:“我们可以给你预留实例,但大规模扩容需要48小时。”

“48小时太长了。“袁征说,“24小时内,我们需要能支撑5000万并发用户的基础设施。”

电话那头沉默了很久。

“我们会想办法。“AWS最终答复。

接下来的48小时,Zoom的工程师们和云厂商的工程师们连轴转。他们在AWS、Azure和GCP之间动态分配流量,把视频流、音频流、数据流拆分到不同的云上。

“那段时间,我们的架构图看起来像一碗意大利面。“一位工程师后来开玩笑说。

一行代码的救赎

真正的危机出现在3月15日。

尽管增加了大量服务器,Zoom的服务还是开始不稳定。视频卡顿、音频延迟、会议掉线——用户投诉如雪片般飞来。

问题出在视频编码上。

Zoom的核心技术之一是自适应视频编码,根据用户的网络状况动态调整视频质量。但这个算法是为稳定的企业网络设计的,面对家庭WiFi的波动,它崩溃了。

“我们需要一个更激进的降级策略。“视频团队负责人David说,“当网络不稳定时,宁可降低画质,也不能让会议中断。”

但问题是:怎么判断”网络不稳定”?

3月15日晚上,一位名叫Lisa的工程师提交了一行代码:

if packet_loss_rate > 0.05 or latency > 300ms:
    downgrade_video_quality()

这行代码的意思是:如果丢包率超过5%或者延迟超过300毫秒,立即降低视频质量。

这个阈值比原来的设置激进得多。原来的策略是等到网络严重恶化才降级,而Lisa的建议是提前降级,预防性地保护用户体验。

“这会让很多用户的视频质量变差。“有人质疑。

“但至少会议不会断。“Lisa回答。

袁征拍板:“上线。”

就是这行代码,拯救了Zoom。

新的策略上线后,会议中断率下降了70%。用户开始发现,即使在网络状况不佳的情况下,Zoom依然能用。这个口碑在社交媒体上迅速传播,反过来推动了更多用户下载。

49天的奇迹

从3月12日到4月30日,整整49天。

Zoom的工程师团队完成了以下不可能的任务:

  • 日活用户从1000万增长到3亿,翻了30倍
  • 服务器容量从支持1500万并发扩展到支持3亿并发
  • 新增了17个数据中心,覆盖全球
  • 重构了核心视频编码算法,适应家庭网络环境
  • 招聘了200多名新员工,其中大部分是工程师

“那49天,我每天只睡3-4个小时。“Kelly Steckelberg后来回忆,“但你知道最神奇的是什么吗?整个团队没有人抱怨,没有人退缩。每个人都知道,我们在做一件前所未有的事情。“

意外的副作用

这次危机也暴露了一些问题。

Zoom的快速扩张带来了安全隐患。由于急于上线新功能,一些安全设置被默认关闭,导致了后来的”Zoom轰炸”事件——陌生人闯入私人会议。

4月初,Zoom的加密方式被质疑不够安全。袁征不得不公开道歉,并承诺投入资源修复安全问题。

“我们为了速度牺牲了一些东西,这是事实。“袁征在一次全员大会上说,“但现在我们有时间了,我们要把欠的技术债还清。“

写在最后

2020年5月,Zoom的日活用户稳定在3亿以上。袁征在一次采访中总结:

“那49天教会了我们一件事:极限情况下,人的潜能是无限的。我们的工程师证明了,当使命足够清晰、当团队足够团结,没有什么是不可能的。”

Zoom的故事不是一个关于技术的故事,而是一个关于人的故事。

是关于一群工程师在压力下爆发出的创造力,是关于一个公司在生死存亡之际做出的决断,是关于技术在正确的时间被正确使用所产生的奇迹。

“不要问你的团队能不能做到,要问他们需要什么才能做到。当你给了他们需要的资源和支持,你会惊讶于他们能创造出什么。” —— 袁征