写点什么

从 DAU 5 万到用户数破亿,揭秘腾讯会议增长背后的技术实践

  • 2021-01-12
  • 本文字数:4292 字

    阅读完需:约 14 分钟

从 DAU 5 万到用户数破亿,揭秘腾讯会议增长背后的技术实践

10.5 个人开发的一款产品 ,在正式上线两个月后,其日活用户就超过 1000 万。不到一年,它的注册用户就突破 1 亿。并且,其国际版在全球超 100 个国家和地区上线。过去一年,它支撑了 3 亿场会议。这是腾讯会议正式发布一年来取得的成绩。


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


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


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


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

一个 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 亿。

写在最后:


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

2021-01-12 08:003589
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 359.5 次阅读, 收获喜欢 1801 次。

关注

评论 4 条评论

发布
用户头像
这不就是腾讯云的软文么
2021-01-13 10:35
回复
该评论已删除
2021-01-13 10:37
回复
“欲加之罪,何患无辞”
2021-01-13 10:49
回复
用户头像
这样的项目,技术人梦寐以求的,羡慕下
2021-01-13 09:45
回复
需要机遇和舞台
2021-01-13 10:05
回复
没有更多了
发现更多内容

MySQL派生表合并优化的原理和实现

华为云开发者联盟

MySQL 数据库 华为云 华为云开发者联盟 企业号2024年7月PK榜

本周六!上海场新能源汽车数据基础设施专场 Meetup 来了

Greptime 格睿科技

数据库 大数据 开源 汽车 新能源

看完这篇,你的服务设计能力将再次进化!

京东零售技术

后端 企业号2024年7月PK榜

特权账号管不好,“删库跑路”防不住

芯盾时代

iam 删库保护 特权账号管理

中国在GenAI应用方面位列全球第一!马斯克取消100亿美元Oracle服务器交易,准备自己整活!|AI日报

可信AI进展

人工智能

小间距LED显示屏:安防监控的未来趋势

Dylan

科技 LED LED display LED显示屏 市场

揭秘”大模型加速器”如何助力大模型应用

袁袁袁袁满

人工智能

优秀的程序员都有的十条特征,你中了几条?

禅道项目管理

项目管理 程序员 软件开发 项目管理软件

基于Rspack实现大仓应用构建提效实践|得物技术

得物技术

最佳实践 企业号2024年7月PK榜 Rspack 前端大仓

文献解读-多组学-第十八期|《整合 WES 和 RNA-Seq 数据以进行短变异发现》

INSVAST

基因数据分析 生信服务

1688跨境寻源通系统案例:rakumart日本市场1688代采集运系统搭建

tbapi

1688代采系统 1688代采 1688代购系统 1688寻源通 1688寻源通系统

Sentieon Arm版本:进一步降低基因组计算成本

INSVAST

基因数据分析 生信服务

十大 Feature:腾讯云数据仓库TCHouse-D 2.0内核引擎全新升级

腾讯云大数据

TCHouse

Easysearch 数据可视化和管理平台:INFINI Console 使用介绍

极限实验室

console easysearch 极限科技

“离职员工”试图打包资料带走,如何防止敏感数据外泄?

极盾科技

数据安全

公共安全和应急管理系统:提升社区韧性与危机应对能力

天津汇柏科技有限公司

安全 应急响应

fm足球经理Football Manager 2022 for mac 下载安装包

你的猪会飞吗

Mac游戏下载

探索大模型:袋鼠云在 Text To SQL 上的实践与优化

袋鼠云数栈

sql 大数据 数据中台 AI 大模型

京东.Vision首登苹果Vision Pro 背后的技术探索

京东零售技术

Vision pro 企业号2024年7月PK榜

火山引擎×威科:拥抱大模型,法律行业信息库建设再提效

新消费日报

深入解析 MS404:基于 ERC404 标准的独特原生资产

NFT Research

NFT ERC404

华为云IoT端到端灰度发布,如何实现海量用户业务平稳过渡升级

华为云开发者联盟

微服务 物联网 华为云 华为云开发者联盟 企业号2024年7月PK榜

携手并进 共创未来丨东软睿驰与中国移动上海产业研究院达成战略合作

科技热闻

彻底解决网络哈希冲突,百度百舸的高性能网络 HPN 落地实践

百度Geek说

网络 哈希 企业号2024年7月PK榜

乘用车1-5月销量同比增长7%,火山引擎数据飞轮能帮车企盘活下半年增长吗?

字节跳动数据平台

大数据 数字化转型 云服务 火山引擎 数据飞轮

如何高效使用YashanDB PL语言?这5点建议值得收藏

YashanDB

数据库 数据库系统 yashandb 崖山数据库

观测云产品更新 | 视图变量、仪表板、监控通知对象、日志索引等

观测云

监控 日志

好玩的卡牌游戏推荐:堆叠大陆 Stacklands(Win/Mac)中文版

你的猪会飞吗

Mac游戏推荐 Mac游戏分享

HBase 在统一内容平台业务的优化实践

vivo互联网技术

HBase 连接池预热 compact优化

阿里云人工智能平台PAI论文入选OSDI '24

阿里云大数据AI技术

人工智能 论文 大模型 大语言模型 OSDI

从 DAU 5 万到用户数破亿,揭秘腾讯会议增长背后的技术实践_文化 & 方法_万佳_InfoQ精选文章