写点什么

从 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:003530
用户头像
万佳 前InfoQ编辑

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

关注

评论 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
回复
没有更多了
发现更多内容

web技术分享| 快速实现一个呼叫邀请 SDK

anyRTC开发者

前端 Web 语音通话 视频通话 呼叫邀请

天翼云云硬盘的磁盘模式及共享盘

天翼云开发者社区

云存储 云硬盘

初创企业CRM系统解决方案

低代码小观

初创公司 企业微信 企业管理系统 CRM系统 客户关系管理系统

如何搭建B端产品帮助中心

小炮

帮助中心 B端用户

Spark启动及提交流程内部核心原理剖析

编程江湖

易观分析:开源是隐私计算技术应用和生态构建的关键

易观分析

隐私计算 开源社区 开源技术

Web 键盘输入法应用开发指南(10)—— 性能与原理

天择

JavaScript 浏览器 键盘 输入法 3月月更

2022年网络运维必备软件和工具推荐

行云管家

运维 网络运维 IT运维 云管理

天翼云RDS数据库如何修改数据库参数

天翼云开发者社区

数据库 RDS

中国科协发布 2021 开源创新榜,阿里巴巴 2 大开源社区、5 大开源项目上榜

阿里巴巴云原生

【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发

华为云开发者联盟

测试 OpenHarmony XTS 应用兼容性测试

Node.js-COMMONJS 规范

编程江湖

天翼云虚拟IP地址及其在高可用集群中的应用

天翼云开发者社区

虚拟机

java编程开发多线程锁的8个问题分析

编程江湖

深度解密|基于 eBPF 的 Kubernetes 问题排查全景图发布

阿里巴巴云原生

大数据培训hive和mapreduce的区别

@零度

mapreduce hive 大数据开发

grpc双向流究竟是什么情况?2段代码告诉你

华为云开发者联盟

gRPC RPC 消息 grpc双向流 消息序列

艾瑞:技术驱动、生态助力,移动应用行业展望“黄金十年”

Geek_2d6073

物理裸机配置如何转换为天翼云云主机配置

天翼云开发者社区

云主机

架构实战营-模块一作业

凯博无线

预约下载 | 《Serverless 开发速查手册》全新上线

阿里巴巴云原生

8家正规云南等保测评机构名单看这里!

行云管家

等保 等保测评 等保2.0 云南

如何选择天翼云云硬盘

天翼云开发者社区

云硬盘

想让DBA瞬间崩溃,那就让他去做SQL性能优化

华为云开发者联盟

数据库 sql 遍历 存储 优化SQL

高性能的连接管理和数据路由组件,OceanBase 生态工具 ODP 详解

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

您有多点会员吗?——数据库渐进式创新助力多点推进经营大脑实践

PingCAP

安全大讲堂 | 陈屹力:未来云原生安全能力建设将强调体系化的安全防护

腾讯安全云鼎实验室

云原生 安全大讲堂 云原生安全

OpenHarmony 3.1 Beta版本关键特性解析——HiStreamer轻量级可定制的媒体管线框架大揭秘

OpenHarmony开发者

OpenHarmony HiStreamer 媒体管线框架

华为云发布实时音视频行业加速器,为企业解决技术与商业双重难题

华为云开发者联盟

音视频 RTC 华为云 华为云实时音视频 DevRun

CSDN 数据库Meetup|OceanBase 技术专家讲述 SQL 的一生

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版 OceanBase社区

不仅仅是一把瑞士军刀 —— Apifox的野望和不足

Liam

Java 程序员 Jmeter Postman swagger

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