X

20 万台 QQ 服务器全面上云

关于QQ上云

CSDN:QQ本身有二十多年历史,它是有一定历史技术包袱的,技术架构和云架构的适配难度也更大。那么,QQ上云的过程中,遇到最大的困难是什么?腾讯云云服务器副总经理李力:遇到的问题主要是,QQ对性能和成本的要求,在某些场景下对云会有一个冲击。QQ业务的特点,在于它是海量用户互相访问的过程,这个过程既不可预测,很难做一个良好规划。CSDN:那么是怎么克服困难的?腾讯云云服务器副总经理李力:回到云本身的基础架构来说,如果要简单区隔云和物理机房,就得尽可能通过软件定义,这样才能让云具备更好的灵活性。

在具体内网的通过性上面,我们对所有的网络流量和网络关系,进行了软件建模。所以我们给QQ的每一个连接和每一个包,都做了软件层面的转发。

这种情况下,虽然UDP(用户数据报协议,User Datagram Protocol)没有连接,但是在软件定义里面,有一个虚拟连接。并且,我们也会把建立连接的过程变成可控的,建立好之后,数据包就会不断发送从而形成数据。

早期我们更倾向优化数据的性能,因为大部分情况下,都是数据包建立好之后,工程师们再去进行数据传输。但在QQ里面,并不完全是这样。

由于QQ通讯里面,会建立大量临时的UDP访问,而这也变成QQ上云之后的性能瓶颈。而这个非常小的性能瓶颈,可能会导致成本急剧增加。

那么,如何解决?在早期面对QQ场景时,我们会先把资源做补充,但是这样就会失去成本优势。后来,我们的研发团队和虚拟化团队花了很长时间,在具体细节方面做了很多工作,最后终于以一个非常合理的资源和成本,满足了QQ群的业务要求。

以应对依赖和容灾问题为例,大家都知道,上云需要进行灰度迁移,而迁移时不可避免地会造成自研机房和云机房的带宽穿越,为此,工程师们需要提前评估自研机房到云机房所需的带宽。

假如使用城市方案,专线带宽应该跟现有的三地部署方案对齐(CSDN注:QQ服务器分布在天津、上海和深圳三地)。那么,QQ核心系统大概需要几十G的带宽。

假如采用IDC(Internet Data Center,互联网数据中心)方案,QQ里面有很多业务,使用的是有状态的寻址方式,因此得把同城内的机房全部打散访问(类似一致性哈希)。

为此,工程师们评估了自研到云机房的带宽,评估之后发现支持QQ几大核心系统(接入、消息、状态、资料、关系链、登录)所需要的带宽为N。

而所有QQ基础功能都迁移到云上,则至少需要2N的带宽。考虑到容灾问题,工程师们实际上拉了两条专线互备(防止专线被挖断形成孤岛),即为QQ上云专门搭建了4N的带宽专线。

采访手记

伟人曾言:“不破不立。”

2018年腾讯“930调整”,曾在业界引起巨大反响。如今回头来看,改革的结果非常成功。

如果说这次调整,有哪些代表作,QQ上云一定是其中之一。

今天的你我,都在享受QQ上云后的好处,它或许不像点击一个App按钮那样直接,但是正如西方经典所讲:“所见的是暂时的,所不见的是永远的。”

芸芸众生里,一个工程师名字和容貌,很难被记住。

但他们的产品,能被很多人使用,也是一种记住。