互联网时代,各类应用成为每个人生活的必需,从即时通讯到娱乐游戏,再到线上会议、办公协同,好用的产品会在短时间内会吸引海量用户。前台流畅、优质的用户体验,离不开后台稳定技术和架构支持。
12月20日,在2020 Techo Park开发者大会腾讯爆款产品分论坛上,腾讯云副总裁李郁韬指出,好的产品背后是技术的不断演进。腾讯公司成立22年,创造出一系列产品,积累了强大的技术能力,并将这些技术和能力标准化,开放给企业和开发者,让他们灵活地把这些技术整合到业务场景中。未来,腾讯云也将持续输出稳定、安全、可靠的产品,支持更多企业和开发者创造“伟大的产品”。
在当天的分论坛上,来自腾讯广告、腾讯游戏光子工作室、腾讯会议、腾讯文档的产品技术和运维负责人分享了这些爆款产品背后的技术实践。
请求量近千亿、技术模块超过1000个,腾讯广告如何上云?
腾讯生态覆盖超过12亿月活用户,在今天已成为品牌触达用户的重要媒介。腾讯广告目前的请求量接近千亿,其背后有广告投放、播放、发布、回流计费、日志处理、模型策略等六大核心系统,技术模块超过1000个。
如此庞大的业务系统,为何选择上云?腾讯广告运维负责人张志谭指出,互联网技术生态在云上发展已经成为大趋势,未来腾讯的业务都将跑在云上。与此同时,云上丰富的组件和专业的运维团队,可以大幅降低人力成本、加速技术迭代。于是,从2019年开始,腾讯广告业务开始上云。
上云分三步走:投放、发布、回流计费系统容器上云,DB、COS等组件适配云上组件,播放系统则使用CVM上云。
播放系统是腾讯广告最大的一个系统,其中腾讯广告检索是一个核心模块。这一模块借助腾讯云自研星星海SA2云服务器提供的稳定高性能算力,支撑每日多达数百亿次的广告检索计算任务,匹配一条广告的计算耗时相比采用传统服务器降低了25%。今年的618、双十一电商大促中,在广告数和请求量,都大幅增长情况下,SA2的稳定性和性能都得到了考验和验证。
张志谭称:“腾讯广告业务的特点是高流量大并发,对稳定性要求高、对时延超敏感型,计算密集、CPU内存交互频繁。经过一年多的云上实践,我们已经没有了上云的顾虑。”
腾讯广告的云上实践也获得了直接的收益:检索模块的性能提升了25%,网络调用时延部署之后下降了5到10毫秒,单机成本也下降了40%,机器交付速度提升10倍,各种组件开发维护的人力成本大幅下降80%,专业性大幅提升。
腾讯游戏构建一整套技术体系,支持超百款游戏稳定运行
腾讯游戏已经面向中国及海外市场推出了很多优质的产品,服务来自200多个国家和地区的超过8亿用户,包括《王者荣耀》、《PUBG Mobile》、《和平精英》等现象级游戏,这背后是腾讯游戏搭建起的一套稳定、可靠的技术架构评审体系。
腾讯游戏光子工作室技术运营负责人张廷进指出,“腾讯游戏数量非常多,超过 150款,包括代理和自研。这些游戏中,每一个游戏都有自己的一套架构,使用的开源组件千差万别。游戏场景中大量的物理计算、超大地图、海量资源都对容量规划提出了挑战。更为重要的是,游戏对于时延非常敏感、丢包容忍度低,为了提升玩家体验,腾讯游戏在就近接入、弱网优化等方面做了大量的探索。”
针对游戏技术运营的挑战,腾讯游戏已经构建了一套完整的流程,前期通过TDR(腾讯技术设计评审)评审体系来保障业务架构合理性,排除服务器、客户端、技术运营、反外挂等方面的风险点,为业务的稳定上线奠定基础;中期通过建设配套的支撑系统,提供与业务成长匹配的基础服务,持续提升业务架构健壮性,用以支撑外网的稳定运营;后期,除基础质量外,技术运营领域更多关注的是如何提升玩家的体验,例如通过预下载机制减少客户端更新时长、通过性能优化减少卡顿率等。
生于云、长于云,腾讯会议如何小步快跑、厚积薄发
腾讯会议上线于2019年12月25日。赶上疫情,在家办公需求暴涨,腾讯会议迅速从一个新产品成为爆款产品。截至目前,腾讯会议的注册用户数已经超过1亿。超高速增长背后是依靠腾讯云的平台支持能力和业务侧灵活、高可用的底层架构。
腾讯会议后端技术总监王彬介绍,腾讯会议后端技术发展经历了三个阶段,第一个是验证阶段,基于腾讯云的IaaS和PaaS平台,快速搭建原型系统,小步快跑、完善和打磨产品体验,主要实现了会议核心的音视频通信、IM和会议文档功能,并且实现系统上云。借助腾讯云的云服务器、云数据库、云加速、实时音视频(TRTC)等产品,腾讯会议用2-3个人就快速搭建起了后端架构。
第二个是爆发阶段,依托于腾讯云平台,快速扩容并补齐系统的短板,保证服务的可用性。疫情期间,腾讯会议日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入,创造了行业新的历史。同时,借助腾讯云遍布全球的IDC机房、数据节点和加速节点,腾讯会议快速完成了全球部署和接入,确保全球用户使用会议的良好体验。
同时,腾讯会议也在建立完整的压测系统。疫情期间,技术团队每天从凌晨开始做压测,从中发现系统的不足和瓶颈问题,并形成长期的流程和自动化压测机制。
第三个是提升阶段,提升系统的服务质量和架构上的扩展能力。主要的工作是系统服务化拆分,降低维护成本和提升系统的运营质量,拆分出核心模块和非核心模块,提升核心模块的稳定性和容灾能力。在接入和流量优化上,通过通信链路的优化,快速降低了单会议的平均内网转发流量和包量。在IDC优化上,建立分级的数据中心,调度用户就近接入和数据流闭环。
通过腾讯会议的实践,王彬指出,新的业务核心是快速开发、快发验证的能力。而借助云平台的技术力量,可以实现业务的快速上线和迭代,技术团队可以聚焦在功能的开发,整个团队可以保持速度优势,实现业务的突破和发展。
支持数百人在线协同编辑,腾讯文档背后是全生命周期的前端管理体系
腾讯文档是一款支持随时随地创建、编辑的多人协作在线文档工具。它的功能丰富,基本上是把office系列办公软件搬到了云上。
腾讯文档前端架构师张鹏介绍:“腾讯文档是超级大型的前端项目,其功能包含传统Office大部核心功能,支持数百人在线协同编辑。复杂的功能导致其代码量非常大,比如编辑单元格涉及函数计算、图表绘制、多人协的冲突处理。”
整体来看,腾讯文档的代码行数超过100万,模块超过1000个,单元测试超过4000个,伴随着功能不断迭代,系统也不断膨胀中。
针对这样一个超大前端项目,架构的基本要求就是要能管理大量模块复杂的依赖关系。而腾讯文档在不断的摸索中,实现了从基本的依赖管理,到复杂的异步依赖治理,到模块的分层单向依赖,再到模块全生命周期管理的优化。
架构的优化能带来性能的红利。张鹏举例,比如通过模块的生命周期管理做容器切换,相比较传统的方式,就能显著提升页面的打开速度,相应地提升用户体验。