亿级用户对QQ后台团队的挑战

个人简介 韦彬,腾讯通信平台中心副总监,专家工程师,06年浙江大学计算机专业硕士毕业,后加入腾讯QQ server团队,7年来一直致力于QQ通信后台的建设,主要参与了QQ Hummer重构、通信平台2.0改造、手机QQ消息重构等关键项目,见证了QQ从千万在线到亿级在线,从PC时代到移动时代的演进,在海量分布式后台架构、通信系统设计、linux内核等方面积累了多年经验。

   

1. 大家好,我是InfoQ的主持人,今天很高兴在腾讯大讲堂的帮助下邀请到韦彬来接受我们的采访。首先韦彬请您先做一下自我介绍吧。

韦彬:好。我是06年硕士毕业就加入了腾讯,加入腾讯以后一直是在QQ的后台团队,一直是在做后台的开发运营方面的相关工作。我们这个团队其实简单来说,就是负责整个QQ基础的一些后台服务,像登陆、消息、状态、基础通讯能力,这么一个团队。我目前在团队里面主要是做一些基础的团队的管理,也会做一部分架构师的工作。

   

2. 我们都知道QQ现在用户量非常大,这也跟移动互联网脱不了关系的。能否简单描述一下从2008年到现在,从你们运维的数据观测来看,移动互联网对QQ用户这块的影响有没有什么有意思的趋势?

韦彬:可以看到,移动互联网从08年开始,到了09、10年,快速的增长,一直到现在的一个完全的颠覆,可以说,我们是真的是看到了这么一个惊心动魄的过程。

在用户的使用场景上面,其实我们也看到,其实这两个终端是有非常多的不同的,那也给我们的以往的一些产品的设计、架构的设计提出了很多新的挑战。就举几个例子,就比如说在手机上,用户使用手机的场景跟PC的场景是完全不同的,我们看在线的曲线,很容易看出来,PC的高峰在线,如果平时的话,有可能在中午,晚上和中午是非常接近的;那对于手机终端,它的在线高峰一般都出现在晚上10点钟左右,就是大家都要睡觉的时候,这个时候是大家用手机用的最多的时候。再比如说,在以往,我们的QQ在线,他在到过年春节期间的时候,是会有一个下降的,因为人们都回家过年了,身边也没有电脑,这是一年当中用户在线数最低的时候;但是到了移动时代以后,我们发现,其实到春节以后,用户量并没有明显下降,反而在有些时候会更高,这说明了手机其实让大家通讯更容易了。

那手机也有一些比较有趣的特点,就比如说很多用户还是非常在意它的流量的,那我们从曲线里面也能看到一个很有趣的现象是说,我们手机的活跃情况,以及在线情况,它是随着这个月的维度去波动的,在月末的时候,手机在线往往掉到最低点,因为很多时候大家流量都用光了,不敢去开手机了;但是到了月初的时候,大家马上复活,在线量会有一个突增。这也是从侧面看到手机终端一个很大的不同。

   

3. 接下来的问题是有关QQ的Hummer核心这一块的,你在这方面也是做了很多的工作。QQ在2009年做Hummer核心,当时主要想解决的最大的问题是什么?现在让你评价,你会怎么评价Hummer?

韦彬:应该说Hummer这个项目的话,其实它是代表了QQ当时06年到08年、09年左右,那么一个时间段,它所面临的很多挑战和问题,所提出来的解决方案之一。当时的QQ已经到了一个高速增长的阶段,可能每年都会增长几千万的最高在线,那它已经成为了整个腾讯的根基业务,一个平台性的业务,很多其他的增值类的服务、其他各类服务都是要基于QQ这个平台去做的,所以说QQ当时也面临了非常多的挑战。

一个挑战来自于整个用户量、整个承载量的快速的增长,还有整个上层业务发展快节奏的需求,这是当时的面临的很大的问题。就Hummer这个项目来说,由于当时QQ客户端经过了很多年的发展,其实它的一些架构,整个客户端的一些设计方式,已经不能满足这种快速发展的需求了。举个例子来说,就比如说他当时的一些模块划分、层次划分,其实做得不是很好,导致没有办法很快的去支持各种上层业务、模块去快速的迭代,快速的发展,以及比如说当时如果我们要去支持多语言版本,除了中文以外的其他的版本,其实当时架构是很难去支持的。所以就有了当时的Hummer的项目。

Hummer项目其实是从底层架构改造的方式,来去解决了这个当时业务发展中遇到的一些问题,我觉得这个是Hummer项目它的首先的一个价值,就是解决了当时QQ发展的一个问题。几年以后,从现在这个时间点再回头看的话,我觉得可能Hummer这个项目的意义可能不仅仅是当时的一个纯粹的解决当时的问题。那由于QQ是腾讯的第一个产品,其实腾讯在整个海量互联网上所面临的很多问题,往往都是QQ第一个去面临,第一个去解决的,所以说在这个过程中,我们所解决的一些问题的一些方法、一些思路,其实后来对其他的公司内的其他的产品,都是有非常多的借鉴意义。可能Hummer项目就是一个典型的代表。

除了Hummer以外,其实也有很多类似的项目,比如说我们QQ的后台,当时面临着很多可用性的挑战,用户对整个服务的稳定性、可用性,其实有更高的要求。我们整个后台也做了很多容灾的架构改造,这个比如说用户对QQ的后台,它所能承载的用户资料的丰富程度,一些数据量也有了很多的新需求,这也让我们在当时做了很多类似于QQ后台的数据库、后台存储、分布式存储大的一些改造。这些项目也都是解决了当时的问题,同时也给我们积累了非常多的怎么样去做一个海量服务,怎么样去做海量的分布式系统的经验,那这个经验慢慢的后来也都沉淀成了整个腾讯的一个海量的价值观,海量的方法论,最终也都影响到了后面的很多项目。 所以说我觉得这个时期的很多项目,其实对后面的项目有非常多的指导意义。

   

4. 可以说当时还是比较关键的时间点。你做通讯平台的开发,都需要掌握哪方面的技能?

韦彬:通讯平台是一个海量的后台系统。首先它是一个海量的系统,海量系统就要求我们具备怎么样去设计一个可伸缩的、能够快速的平滑扩展的架构的能力,这个是首先是第一点。第二个是,海量的互联网后台是一个高性能、低成本的产品模型,在技术上就要求我们技术人员必须要能够开发出一个高性能的、尽可能的利用硬件资源的系统架构出来,那这进一步的就会要求我们能够深度的理解整个计算机系统,理解Linux内核,理解分布式系统一些设计的原理,这是我们做后台开发系统的要求。

那说到通讯系统,它又有一些跟其他的后台系统不同的地方,它本身的特点,首先是对可用性要求非常高,很多其他的后台系统可能对可用性的要求达到三个九就可以,但是通讯系统,我们是需要达到四个九的要求。所以说,通讯系统本身的话,其实又有很多在技术上的一些挑战,就比如说怎么样去做达到四个九的容错的架构,怎么样能够去快速应对通讯系统里面的一些故障,各类的硬件跟软件的故障,这都是非常有挑战的。

我们是一个海量的通讯系统,在大概10年3月份的时候,我们是突破一亿在线。当一个通讯系统达到一亿在线的规模的时候,其实它的挑战又增加了一个量级,那我们怎么样能够去应对一亿在线的分布,那当我们有这么多用户的时候,对我们硬件资源的挑战又会冒出来,比如说我们深圳,或者说某个城市,没有那么多的服务器资源和带宽的资源,我们怎么样让我们架构能够去扩展到其他的一些地区,做到一个多地理的分布,然后又保证这里面的容错,这里面都会增加我们对一些后台系统的挑战。

   

5. QQ通讯后台团队跟QQ数据挖掘的团队是一个什么样的合作关系?

韦彬:应该说两个团队一直以来是有着密切合作的关系的。技术团队更多的关心怎么样去做好服务的质量,怎么样支持好产品的需求。通讯平台每天产生数据,数据分析团队肯定会主要去负责,你这个平台里每天产生一些数据,怎么样把它们存储起来,直到去处理这个数据,得到一些有用的信息。

这两个团队可以说是都有各自发展的一些体系,一些成熟的方法论跟技术。就比如说,我们做架构的设计,或者说做一些产品决策的时候,我们往往需要通过一些历史上的用户相关数据来去做些验证,这个时候我们可能会需要数据团队这边的一些支持;那数据团队这边,他可能也会从用户的角度出发,从产品价值角度出发,去思考怎么样去把海量数据充分的利用起来,比如说我怎么样给用户推荐一个更合适的好友,怎么样让你能够看到一个更准确的好友的备注名字,或者说是我在一个群里边,我怎么样去能够帮助你找到更合适你一些群,这些都是数据分析团队他们会去思考的一些问题,他们可能又会提出来一些对数据的要求,这就需要平台开发的一些支持。这种合作贯穿于平时的工作中。

   

6. 您在QQ通讯后台做了7年时间,感觉最有成就感的一项工作是什么?

韦彬:可以说我这7年当中,可能我在前面的四五年,我觉得都是站在一个巨人的肩膀上面,去向他们去学习。这7年的时间也是QQ飞速发展的一个时间,前面几年,我认为我是从QQ的发展过程中学到了非常多的一些海量服务的设计、方法理念,那我觉得我个人现在到目前为止,可能做的最有意义的一件事情,是大概在10年左右的时候,由我去主导的一个通讯平台2.0版本的重构,这个重构当时解决了通讯平台所面临的怎么样支持一亿在线的问题,以及怎么样能够去让我们的架构做到多地的部署,以及怎么样能够同时支持好PC、手机这种多个终端、在线互通的能力。我认为这个项目可能是到目前为止做过的让我最有成就感的一个项目。由于现在移动终端的发展也非常快,其实我们现在工作的重心也都是在移动终端,而且在这个过程中我也遇到了非常多有趣的、有挑战的一些问题,我相信下一个让我觉得最有成就感的工作,可能会在移动互联网通讯架构上面,这里可能会有更多的一些有价值的事情。

   

7. 好的,感谢韦彬接受我们的采访。

韦彬:谢谢。

你可能感兴趣的:(亿级用户对QQ后台团队的挑战)