解密腾讯亿级产品背后的网络架构故事
核心提示: 我觉得作为一个做云的从业者来讲,首先我在过去几年是一个IDC或者云的用户,今天在这里首先跟大家分享我自己在构建服务的时候,作为IDC对于云使用的一些心得。
中国IDC圈1月10日报道,1月8日,第九届中国IDC产业年度大会在北京国家会议中心开幕, 腾讯公司副总裁邱跃鹏在大会上发表了《打造最值得信赖的云》的主题演讲,并获得"2014年互联网风云人物奖-最具影响力CTO奖".邱跃鹏曾负责QQ、 QQ空间、QQ秀、QQ会员等业务的整体技术工作,是腾讯海量服务架构的重要设计者之一,现在全面负责腾讯云的管理工作。
在此次大会的主题演讲中,邱跃鹏对外披露了QQ、QQ空间等多个腾讯王牌产品支撑亿级用户优质体验背后的网络技术架构。他指出,腾讯云现在在做的事情,正是通过云服务将这些多年来积累的海量技术能力开放出去。邱跃鹏精彩的讲述和干货的分享引得满堂喝彩。
此外,邱跃鹏在演讲中还透露,打造最值得信赖的云,腾讯云将重点发力服务市场(Marketplace)建设。他表示,目前已经有超过1万家客户在使用腾讯云的API,每天的调动次数已经超过100万次。
如下为邱跃鹏演讲全文,小标题是编辑所加:
尊敬的各位领导各位来宾大家上午好。非常高兴在这里跟大家交流,谈一谈对于中国云计算发展的看法。今天我是一个云的从业者,而我在过去几年是一个IDC或者云的用户。所以我首先想跟大家分享我自己在构建服务的时候,作为IDC对于云使用的一些心得。
QQ:同时在线用户突破两亿
第一个主题是构建亿级服务的时候,我们做了哪些东西?大家都知道,QQ是超过两亿在线用户的服务。通过QQ在线用户的密度图,我们看到在华东、华 南、华北,这是三个非常密集的人口区,QQ在线用户也是这里最高,所以我们在这三个地方部署了非常大规模的服务器去支撑两亿的在线用户。
能力一:三地容错,千万在线用户秒级自动切换迁移
我们拥有非常大规模的机房,这样的机房非常稳定。但是对于任何一个IDC来讲都不可能百分百的可用,如何让一个拥有两亿在线的产品,可以在出现任何 问题的时候都不发生波动?我相信大家使用QQ的过程中也会感觉到,很少会见到QQ掉线,或者大规模QQ掉线的事情发生,我们在这背后是如何做到的?
首先,我们看到三个地区支持着两亿在线用户,平均每个地方六千万用户。当有一个地方出现问题,我们如何让六千万的用户在几秒钟内切换到另外两个机房 去?对于CS结构的机房来说,我们每次让用户连接的时候,已经告诉他如果你连接到这个机房出了问题的时候,你下一步应该去哪个机房,在多长时间内去到。如 果我五千万的用户出问题,我们可能在十秒钟之内完成切换,也就是每秒钟实现大概五百万用户的切换,整个切换是一个平滑的过程。
能力二:大数据分析预测连接质量,秒级提升90%用户体验
对于两亿用户,要连接到我们的三个机房,那么对于每个用户来讲,他应该连接到哪个机房,才可以获得在中国网络情况下最优的体验?在这背后,我们有一个非常实时的大数据处理平台,不停地分析每个用户的连接质量。
我们还在做一件事情,就是做预测。因为大家知道中国整个网络情况是非常复杂的,用户可能白天用3G上网,晚上用Wifi上网,到公司是用公司的 Wifi,用户每天上网行为在不停变化。对于每个人来讲,我用的联通号码,但是公司是用电信,切换网络的时候,可能连接到任何一个机房,这个服务的质量是 不一样的。
因此,我们做了一套预测算法,对每个用户每一天的上网可能产生的切换进行预测,用户每天登陆的时候我们对他的上网行为和不同行为连接哪个机房,做了一个路由计划表,推送到客户终端上。当用户的网络发生切换,我们就知道这个网络情况下他应该连到哪里最快。
QQ空间:图片日上传峰值达5.1亿张
第二个想讲的服务就是QQ空间。不知道在座有多少人在用QQ空间相册服务。这样的服务,我们最高的峰值大概是在2014年五一的时候,1天内上传的 图片达到5.1亿张,整个腾讯每个月上传的图片超过两百亿张,大部分的上传是来自移动互联网的上传,来自终端的上传。如何实现在这样一个移动互联网的情况 下,让每次上传非常快,用户每次看图片的时候可以非常的流畅呢?
能力一:全网分布,70+上传加速节点,多端口多连接的上传加速
从我自己的感觉,我发现用腾讯的朋友圈或者QQ空间的相册的时候我们可以很快打开图片,但是很多应用没有办法让你获得很好的图片体验。我们对用户上 网行为作分析,看到4G确实是一个非常好的东西,4G网络的情况下用户的带宽延迟都是非常低的,甚至其实比我们大量的Wifi的速度都要更好。但是在3G 情况下,我们看到整个延迟和成功率,延迟升高成功率在下降。
但是我们看到2015年的最新数据,对比2014年,在3G的情况下,质量也是有了很大的提升。这是怎么实现的?图片是对于网络要求非常高的服务, 任何的延迟任何的丢包或者是网络的拥塞都会对它产生非常高的影响,为了让两百亿的图片上传,我们在全国部署了超过70个上传加速节点,让每个用户都会选择 他最近的上传节点上传他的图片。同时有启用多端口、多连接的上传加速能力,可以尽可能的用尽网络资源,而不是说在一个连接上不停的等待数据包的重传等各方 面的东西。
能力二:场景优化,图片转码、渐进传输、预加载、多终端适配
我们现在大概有几百P的存储,去存储中国网民产生的照片。在朋友圈里,我很多朋友经常是九图连发,每个人的带宽都是有限的,怎么让大家获得又高的质量又获得更好的下载速度?
我们今年对于图片进行了转码。对于非设计专业的人来讲,大部分人不太能感知图片质量的差异。今年我们也研究了新的编码格式,看看图片是不是可以在同 等质量情况下再下降30%.现在也在应用一些渐进式的传输技术,你会首先看到模糊的图,一会儿清晰的图就会出现。预加载也是非常重要的提升体验的技术,尤 其是用户在Wifi情况下,可以把可能看的图片下载下来,让用户获得更好的体验。
这里讲很多都是网络上的技术,其实真正在多终端的情况下我们真正做好一个产品的服务,并不是说把所有的网络拥塞都处理好,就可以解决好问题。我们会 发现智能机的普及是从五百到七千多,是一个非常多样化的终端时代。屏幕分辨率,可能现在好一点,其实可能一千块钱的手机,可以做到720P,但是好的手机 2K屏已经开始出现。
不同终端情况下,你展示什么样的图片质量,其实对于用户来讲,如果把一个高清图展示再一个只有720P的屏幕上,占据了它中间三分之一的屏幕,对于 用户来讲下载20K的图和2兆的图,在那个情况下没有差异。我们对不同终端不同设备的情况下,下不同图片,用户同样感受但是帮助用户节省流量,帮助他提升 体验速度。
刚才我们讲了3G比4G、Wifi慢很多,但是其实中国还有大量网民是用2G,这个是一个,从我们的研究分析来看,这样的一个网络下,基本下载图片 很困难。我们做了非常多的努力帮助用户,但是发现很困难,最后只能选择一条更平衡的路,就是降低图片质量,让他可以看到他想看的图,而不是看不见的裂图。
如果大家去用的话,你上传一张有人脸的图我们有一个提示,这个是不是你的朋友?可以去提升社交化的体验。人脸识别的技术,也是在微众银行也做了一些尝鲜性的实验,把这些技术应用在社交之外,甚至到金融,甚至到未来的证券上,都有非常多的使用场景。
开放腾讯基础架构并云化,打造最值得信赖的云
我刚才讲了一个QQ,一个QQ空间的照片,如何构建这样的服务架构?虽然我们用了大量IDC,但是构建这样的服务非常困难。腾讯云正在做的事情就 是,帮助我们的用户真正在中国的这样一个互联网环境下可以把自己的服务,更简单的构建出来,让他们可以更高的提升自己的开发效率,真正把自己核心的能力, 放在去构筑自己的产品。
实例一:全网调度,让用户不再为运营商网络故障买单
我们的腾讯云正在把整个腾讯十多年在互联网领域积累的基础能力开放出来。刚才我在讲,QQ可以在十秒钟之内将我们几千万户的户进行切换,这样一个切换动作对于每个开发者来说非常困难,我们不可能要求每个人使用多机房部署多机房切换的能力。
但是,今天腾讯云做到了,我们将自己的云机房做到了容灾切换。在2014年11月,从业者应该知道电信的骨干网发生了中断,大概中断了330分钟, 我们发现这样的中断之后,我们做切换,将流量从华南出口切换到华东出口,这样的中断时间只有5分钟,之后我们做了更优的切换,我们希望这样的事情发生之 后,我们将用户从1秒钟之内从华东切到华南,或者从华南切到华东。
实例二:弹性服务,打破制约用户发展的基础资源瓶颈
对于很多企业来讲,要获得几百台、上千台的资源是非常漫长的过程。我们通过腾讯云弹性服务,帮助打破制约用户发展的基础资源瓶颈。我们有一个客户做 云渲染,因为他是几千台的分布式计算,前一阵我们跟他做了这样的合作,在一个小时之内他获得2400台的机器,我们开放API给他使用,让他使用起来就像 使用自己的IDC一样没有任何差异。其实这个用户已经在想,未来他可能不再希望自己建设自己的渲染云,更多用公有云这种弹性资源,可以把自己的服务构建的 更加迅速、简单成本更低。
实例三:腾讯云安全,保护用户免受DDOS攻击困扰
今年还有一个很重要的话题就是安全,去年苹果和索尼出了信息安全的事情。其实安全领域也有,就是DDoS攻击,我们看到前一阵中国互联网上,号称最高的攻击大概是400G.
那么为了去应对整个DDoS,我们现在购买100G的攻击流量已经非常便宜,为了服务我们的客户,尤其是游戏电商,像P2P的服务,他们经常受到攻 击。我们构建一个高防机房,可以在单点提供超过500G的网络防护能力。对于愿意使用分布式防御的客户来讲,我们给客户可以提供高达两个T的防御带宽。最 后,其实腾讯能够提供的,可能更多是以后海量服务方面积累的能力,我们在全国积累的IDC的能力都可以开放出来。
2015年重点建设服务市场
最后,谈一谈我们服务市场(Marketplace)。我们希望跟更多合作伙伴一起,把整个云市场上的服务构建出来,让每个使用云计算的客户,他们真正关心是我在这里能够获得的资源,获得的价值,获得的服务,获得对他公司真正一个商业发展带来的这种推动。
所以我们看到,其实在过去一个月,当我们开放API和我们合作伙伴一起支持我们的客户,我们使用API的客户增长非常快,因为这可以让他们构建服务和自己的工作流紧密的整合起来,我们有超过1万家客户使用我们的API,每天的调动次数已经超过100万。
时间关系,今天的分享就到这里,希望未来可以跟在座的IDC从业者一起推动整个云计算的发展,谢谢!
来自:http://news.idcquan.com/news/66660.shtml