首页 » 软件优化 » 揭秘:腾讯会议从 DAU 5 万到用户数破亿背后的技术实践(腾讯会议扩容系统疫情)

揭秘:腾讯会议从 DAU 5 万到用户数破亿背后的技术实践(腾讯会议扩容系统疫情)

落叶飘零 2024-12-07 03:35:58 0

扫一扫用手机浏览

文章目录 [+]

而一年前,腾讯会议才刚刚亮相,显得平淡无奇。

2019 年 12 月 25 日,腾讯云发布一款云视频会议产品,即腾讯会议,它致力于提升跨企业、跨区域沟通和协作效率,帮助企业节省人力、时间等成本。
用户可以直接通过手机、电脑、小程序等入口打开即用,一键入会。

产品发布后不久,疫情的到来促使企业和个人对远程会议的需求增长,腾讯会议步入高速发展阶段,驶入一条快车道。
扛过疫情后,腾讯会议又不断推出新功能,持续进行架构优化,提升服务质量。

揭秘:腾讯会议从 DAU 5 万到用户数破亿背后的技术实践(腾讯会议扩容系统疫情) 软件优化
(图片来自网络侵删)

回顾过去这一年,腾讯云副总裁、腾讯会议负责人吴祖榕把腾讯会议最大的特点概括为“生于云、长于云”。
某种意义上,“生于云、长于云”不仅让腾讯会议有了一个坚实的技术底座,而且经受住疫情的考验,甚至为其整个发展奠定了基础。

一个 DAU 5 万的小目标

腾讯会议最早可追溯至 2018 年 7 月,此时,这个项目正式启动,前途未知。

“那时,我们要把最小的功能单元做出来,最大的压力是团队规模小,整个腾讯会议的开发团队只有 7.5 个人。
”吴祖榕在接受采访时说。

2019 年 5 月,腾讯会议发布了 0.94 内测版本,总共使用了 10.5 个人,其中前端 8 个人、后端 1.5 个人、产品 1 个人。
当时,腾讯云投入 1.5 个后台开发人员,花了两个月时间搭建起整个腾讯会议的后台体系,核心技术则来自腾讯云原生的一系列技术组件。
据悉,在基础设施层,腾讯会议使用了腾讯云的云服务器(CVM)和容器服务(TKE);在存储层,用了腾讯云的数据持久化(TDSQL);在逻辑层,使用了状态数据缓存(REDIS)、日志服务(CLS);在接入层,用上了腾讯云的接入域名(DNSPOD)和负载均衡(CLB in TKE)。

吴祖榕表示,这极大降低了后端的开销,让后台开发人员只需关注业务逻辑,保障整个业务的推出。
“所有的技术组件都是由(腾讯云)云原生提供的,使得我们开发资源就像搭积木一样。
”他说。

并且,正是因为腾讯会议在早期充分使用了一系列的云原生组件,也为其后续扩容提供了极大便利。

2019 年 12 月 25 日,腾讯会议正式对外发布,团队当时定了一个小目标:希望在 2020 年底,腾讯会议的 DAU(日活跃用户)可以达到 5 万。
如果在 2020 年底实现 5 万 DAU 的目标,“我们觉得这就是我们今年最好的成绩”。

上线两个月,DAU 破 1000 万

世事难料,在腾讯会议发布近 1 个月后,武汉封城,疫情形势日益严峻。
在武汉封城第二天,腾讯会议发布公告,面向用户免费开放 100 人不限时会议功能。
此后,继续扩容,免费开放增加至 300 人。
与此同时,大量用户开始陆续涌入平台,而腾讯会议在短时间内迎来海量用户的快速增长。

2 月初,腾讯会议迎来巨大考验。
它的系统最初是为 5 万 DAU 目标设计的,但是,在不到两个月的时间,腾讯会议的 DAU 突然翻了几百倍。

腾讯会议后端技术总监王彬在接受 InfoQ 采访时说:“前期,我们系统投入的人力并不多,包括从产品到研发。
此时,突然有上百倍的增长,这对我们的系统有很大的压力。
”随着用户量的不断飙升,系统能否撑住变得至关重要。
“2 月份,团队停掉所有新的开发任务,唯一的要求是稳定“。

吴祖榕称,稳定是最重要的。

2 月 3 日,即春节后开工第一天,随着海量用户的涌入,各大办公软件陆续“崩了”,腾讯会议也没扛住。
稳定是第一要务已经不言而喻。
如何保证稳定,关键是扩容。
2 月 10 日正式复工,这意味着腾讯会议只有 8 天的扩容时间。
“复工复学第一天,我们就开始了夜以继日的扩容”。

以前,腾讯谈海量服务是“先扛住,再优化,周期往往是一个月或两个月。
吴祖榕表示,”到了疫情期间,这个周期缩短到 24 小时:白天,我们做大量的扩容,保障带宽资源、服务器资源等;夜里,我们针对产品性能等问题做大量的开发、部署;凌晨,我们再对当天的所有变更、代码优化做压力测试”。

白天扩容,晚上优化,这 8 天是所有人压力最大的时候。

8 天后,扩容 10 万台云主机,累计有超百万核的计算资源投入。

不过,对王彬他们而言,事情远未结束。
“我们的设备跟进了,但我的管理能力是跟不上的”。
他打了一个比方,一个饭店以前一天接待 100 人,突然有一天,要接待 10000 人。

设备虽然得到扩容,但并不是事情就完成了,业务层面还有大量的细节需要优化和解决。
扩容前,业务层只是一个几十台设备的集群系统,系统的管理和调度系统都比较简单。
扩容后,突然变成一个多地域,设备数达 10 万级的集群,原有的调度和管理系统完全无法支撑这么大的规模,需要快速优化和局部重构。

因此,这就需要他们做很多事,比如入口路径规划等等。
具体说来,集群化管理上,完成 4 个普通 Set 和 2 个 BGP Set 的建设,这样可根据业务发展情况,灵活调度和扩容。
在接入和加速优化层面,利用腾讯云在全球的 IDC 机房、数据节点和加速节点,腾讯会议完成了全球部署和接入,确保全球用户的使用体验。

除调度系统的优化外,还要梳理所有模块的调用关系,明确系统的核心路径,尽量简化核心路径,减少和取消核心路径的外部依赖。

对于存储层,王彬介绍,由于访问量突增,同时需要确保低延迟的接口响应,将核心模块的存储从 MySQL 迁移到腾讯云 redis,确保在高并发下系统的稳定性。
为了发现系统瓶颈,他们也建立了一套分布式的压测系统,每天凌晨进行压力测试,从压测中发现系统的瓶颈点,再快速的优化和改进。
通过每日压测,系统的同时在线服务能力逐渐从 100 多万上升到 500 万、800 万在线。

在人力方面,他们同样“压力山大”,因为整个人力非常短缺。
据王彬介绍,在腾讯会议 1.0 版本发布时,它的后台开发只有几个人。
在疫情期间,虽然扩容了 10 万台云主机,但是系统要调整,架构要优化,这也意味着需要有更多的开发人员。

人手不够怎么办?他们一方面紧急招募新人和一些志愿者;另一方面,向腾讯云求助,腾讯云兄弟部门则派了四五个团队过来协助。

事实证明,腾讯会议的成功扩容和后续优化,不仅让它扛住了复工后汹涌而来的巨大流量,而且经受住疫情的巨大考验。

吴祖榕说:“你要能在 8 天扩容 100 万核,你不长在云上,做不了这件事情。
如果是传统的做法,完全没办法在这么短时间里调集这么多服务器资源、带宽资源、技术资源等。
这就是‘生于云、长于云’背后最核心的东西。

245 天,注册用户破 1 亿

在疫情得到控制后,腾讯会议的第一要务从稳定变成了功能和服务质量。
与此同时,它也从爆发期迈入稳定期。

这时,腾讯会议在技术上主要是持续打造自己的核心能力。
首先,在音视频的核心体验上,“多方通信是一个带约束条件的技术问题”,端到端通信需要在 400 毫秒内完成。
如果时间小于 200 毫秒,效果会更好。

吴祖榕表示,“这个过程中,每增加一个新技术,就会带来延迟,因为要运算、要处理,处理完之后再交给下一个环节。
这一块越长,链条越复杂”。

虽然约束条件是 400 毫秒,但是团队在内部定的目标是在 200 毫秒内完成端到端通信。
在这个过程中,他们做了许多事情。
比如,语音方面,团队专门采集很多噪声,甚至还花费很多力气去采集雨点打到玻璃窗上的声音。

“有一天,我们正在开会,而外边下起了大雨。
因此,会议另一边的人听着非常嘈杂,他们问发生了什么事情。
这时,我们意识到雨点噪声(对会议的影响)”。

除了雨点声,团队还采集了公交车开门的声音、餐桌上吃盒饭的声音、关门声、水杯放在桌子上的声音、咳嗽声、微信消息提示声和敲键盘的声音等等。
据了解,他们累计采集了上几百种的声音。
团队把采集下来的声音作为噪声,将经典信号处理与深度学习结合,通过 AI 训练来实现降噪,目的是在开会期间安静地把声音传输给对方,提升整体的沟通效率。

另一个深入音视频核心场景的技术实践与椅子有关。
当时,腾讯会议新出了一个功能,叫虚拟背景。
因为疫情期间,人们在家开会时会打开摄像头,但背后的画面有时并不适合出现在摄像头里,因此就有了这个功能。

但是,这个虚拟背景最大的问题是椅子的头枕,它会在后面凸出来,给人的体验很不好。
为解决这个问题,团队采集了近 6 万张带有头枕椅子的数据,给它们做标注,从而实现更好的虚拟背景效果。

“整个阶段,我们围绕‘听得清、看得清、听得真、看得真’做了大量的努力。
”吴祖榕说。
除了音视频层面,持续打造核心能力的第二点是后端技术。
据腾讯会议后端技术总监王彬介绍,第一,他们做了系统服务化拆分,把“会管会控”拆分成主控、媒体网关、安全、权限、数据网关、消息、应用。
“拆了以后,需求不用每次改个‘大胖子’,消息的改消息,安全的改安全,这对整个服务的质量提升是有帮助的”。

并且,这样做还可以降低维护成本和提升系统的运营质量,拆分出核心模块和非核心模块,则大大提升了核心模块的稳定性和容灾能力。

第二,在接入方面,他们建立分级的数据中心,完善后台管理体系和调度系统,调度用户就近接入和数据流闭环。
以前,他们接入的机房均位于北京、上海、深圳等地,但这些机房的成本很高。
那怎么办?于是,他们将全国数据中心划分为三级:第一级为 DC,在北京、上海等地;第二级是 EC,位于成都、重庆、武汉等地;第三级是 OC,比如兰州等地。
“像成都等这些地方不比一线城市,它的成本会低一点。
我成都的会就在成都开,接入成都的 IDC 机房”。

第三,在部署和运营上,他们从预发布、灰度 Set 到普通 Set 再到 VIP Set 形成一套完整的流程和体系。
新版本正式上线前会有预发布,通过自动化拨测检测系统的质量和可用性。
然后,进入灰度 Set 阶段,基于后台管理体系评估灰度版本的质量,减少系统发布异常的影响范围。
经过灰度 Set 验证的版本,在普通 Set 开始部署和放量。
最后是 VIP Set,在普通 Set 验证系统和功能的稳定性后,逐步部署到 VIP Set 中。

此外,他们还进行了流量优化、提升通信质量,等等。

现在,王彬他们正在做私有化系统建设。
基于腾讯云 TCS 平台,由 TCS 提供云基础设施、中间件、数据库等产品服务整合,涵盖应用自动化测试、部署、升级、运维等,打造将业务快速私有化和交付的能力。
同时,在功能上,支持超大型在线会议和更多的数据类型等。
“现在,我们的企业版支持 2000 人开会,后面会支持更多的人,比如支持 10000 人、20000 人开会。
”他说。

在腾讯会议正式发布 245 天后,其注册用户正式突破 1 亿。

写在最后:

虽然腾讯会议已经一岁,但是它未来的路还有很长。
正如吴祖榕在采访中所说:“至少在明年一年的时间里,我们在会议上要补充的东西依然有很多,我们的路还很长很长。
过去一年,你会发现腾讯会议的界面几乎没有变过,但是我们在每个版本上都迭代了非常多的细节,优化了产品。

延伸阅读:

服务治理最佳实践:如何快速依据请求参数值进行服务路由、鉴权、限流?-InfoQ

关注我并转发此篇文章,即可获得学习资料~若想了解更多,也可移步InfoQ官网,获取InfoQ最新资讯~

标签:

相关文章