QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年

本文来自腾讯资深架构师杨志华的分享。


1、前言


也许没有多少人记得2004年发生的事情。但对于老腾讯来说,14年前的那个日子,2004年6月16日永远难以忘怀。这一天,QQ诞生5年后的腾讯在香港联交所主板上市,由此拉开了腾讯快速成长的序幕。


这14年间,腾讯的网络基础架构也伴随着各种业务的发展而发展,变迁而变迁。早年间网络经历的一切,不管是窘迫、重压,还是喜悦都渐渐消失在人们的记忆中,只能在泛黄的老照片,老员工零碎的讲述中寻觅。。。


学习交流:

- 即时通讯开发交流群:320837163[推荐]
- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》(
https://link.zhihu.com/?target=https%3A//link.jianshu.com/%3Ft%3Dhttp%3A//www.52im.net/thread-464-1-1.html


2、2004-2006:稚嫩中开始成长


2004年的腾讯所有服务器都在深圳赛格、枢纽、东门这些运营商IDC机房中,很多服务器的联系人当时还是腾讯现CTO张志东(腾讯人都亲切的称其为Tony)。全部腾讯网络,等于1张A4纸拓扑+1本技术书,只是2M DDN将几个机房互联而已。


这一年,QQ发生了一起无头公案,是历史上仅有的几次QQ大面积服务中断达12个小时的故障之一,整个公司震动,业务和网络也由此拉开了运营的序幕。这一年,网络也经历了更多的五花八门的故障,有运营商IDC骨干设备故障、升级失败、专线中断,也有机架掉电、机房掉电、空调只出热风,还有某商业负载均衡设备掉电后2个小时没有起来。但也是这一年,IDC出口的流量达到10G。



2005年和2006年是忙乱的年代。互联网公司的核心业务纷纷从无线SP转型为增值业务,而游戏是其中的重点。那个年代,游戏是联众、盛大、网易、九城、完美时空的天下,腾讯也从QQ游戏、凯旋、QQ堂、QQ幻想、QQ音速开始切入,开始加入IDC资源抢夺的战团。这两年间,腾讯的网络和业务如雨后春笋般发展。腾讯的服务器达到万台,IDC扩展到10多个城市甚至还建设到了美国,开始有了IDC网络和办公网络分离并且使用了10G,IDC有了内网、外网和管理网还有安全监管区,跨省专线从0变成几十条,开始使用VPN备份专线,运营上也开始有了IDC网络演习。


值得一提的是,这个时期出现了运营历史上第一次大红头文件,甚至连Tony都受过处罚。


3、2007-2009:躁动中血染的日子


这段岁月,大家印象最深刻的就数开心农场了。此前游戏业务不温不火,网络最大的挑战主要是大区的游戏分布导致集中数据库对专线可用性和带宽的强依赖,而农场的突然火爆把当时的小伙伴们打了个措手不及。


从09年3月开始的半年时间里,农场如现在的手游一样突然蹿红,注册用户数量过亿,同时在线人数超过千万,业务集群规模达2000台;公网出口的中央带宽从几百兆猛增到几G,CDN带宽则从几G飙升到几十G。


当时腾讯在深圳已经有了很多机房,农场和其它很多业务类似也散布在多个机房中,而连接深圳所有机房的杂乱无章的城域网在农场的冲击面前无比脆弱,总体带宽容量和冗余能力的不足导致城域网频频崩溃,大家每天神经绷的紧紧的,有什么意外就马上根据经验调整路由参数调流量。这是老腾讯们少有的几次刻骨铭心感受到海量业务挑战中的一次。


为了解决城域网的问题,据老腾讯回忆,至少用了150个凌晨变更,甚至有人因此工伤,有人因此离职。最终将城域网改造为部分网状互联且具备自愈能力、具有50%冗余的架构,紧接着又开始在4个城域网核心节点间建设了DWDM环解决光纤不足的问题,城域网这才安分下来。


这个时期业务提出了SET化的理念,即把承接一定数量用户的接入、逻辑和存储服务器打包部署建设,IDC网络架构也随之演进出V3.0的架构,可以为每500台服务器提供一个高性能SET区域,当时的一个机房最多可以有10多个这样的SET。SET化后,业务系统各层级之间的流量可以内部消化,也大大减轻了城域网和IDC网络的压力。


同时,IDC网络还陆续引入了负载均衡LVS区域、防DDOS攻击安全区域,更好的支持了业务的接入和安全防护。


4、2010-2013:逐步走向成熟


2010年无疑是QQ的天下。这一年QQ同时在线人数突破1亿,QQ空间广受欢迎,QQ空间的游戏异常火爆,如胡莱三国上线一个月注册用户就超过千万,2个月后的活跃度仍然保持在20%,与同期facebook的顶级游戏水准相当。业务的繁荣之下,服务器数量开始激增,而深圳已经无法供应足够的机房了,业务开始被迫走出深圳走向全国。


经历几年的努力后的2010年,腾讯历史上第一个大规模自建数据中心——天津数据备份中心也落成,其设计容量达数十万台而成为当时亚洲最大的数据中心。天津自建数据中心不仅让腾讯积累了丰富的从风火水电到机架到网络的大规模基础架构规划、建设和运营经验,尝试了多项新技术,而且还让腾讯网络在全国布局中非常重要的华北板块得到夯实,让业务走出深圳更有信心。


2010年对于腾讯数据中心网络来说是一个划时代的时刻,IDC网络架构升级成V3.5版本,不仅解决之前IDC二层网络稳定性差问题,而且将高性能SET区域的范围扩大到5000台,为之前的10倍,资源的调度和业务的部署更加高效。直到今天,现网中的V3.5及后续的优化版本仍然是支持各项业务发展的主力架构之一。


2010年发生的3Q大战震动业界,由此腾讯更加坚定加快脚步走向了开放之路。开放在腾讯内部给网络也带来了新的挑战,那就是基于虚拟化的开放平台业务所需的虚拟化数据中心网络支持。2011年,5000台一个高性能SET、完全扁平大二层的一个V3.5虚拟化子版本应运而生,开始支持基于QQ空间的开放平台,随后是游戏和内部云平台。然而由于没有意识到服务器内部虚拟网络管控的重要性,加之设备Bug、内核应用模块Bug,虚拟化网络发生了几次大故障,最长的一次故障排查达数小时导致业务严重受损。这促使大家一边加强虚拟网络监控并且增强大二层的健壮性,一边思考是否有更好的从根本上解决二层网络缺陷的架构设计。2011年流行的802.1Qbg、Qbh,还有Trill/SPB之争,终究是无声无息的过去了。2013年则开始研发基于Overlay的SDN虚拟化网络方案。


2011年腾讯网络还有一件重要的事情就是开始打造一张MPLS VPN/TE的数据中心互联DCI广域网,以解决专线利用率低、多业务承载、灵活流量调度等问题。在历时一年半的艰苦割接和建设后在2012年终于全网完成升级,不仅专线利用率大幅度提升,在这张DCI网络中实现了面向业务的端到端差异化QoS服务和带宽配额准实时管理,还可以将原来故障时流量调度时间从1个小时人工处理缩短到5分钟系统自动处理。而在这张网络中,也逐步实践了SDN的理念,成为全网最先落地SDN的部分。这张数百G专线带宽并持续高速增长的DCI网络,成为支撑腾讯数千种业务产品实时和非实时内部通信、全球业务分布的关键平台。在写下此文的时候,世界杯比赛正酣,而小伙伴们正在试图不影响世界杯相关业务的前提下更换升级骨干节点的整台设备,变更时间长达数小时,又一次实践“万米高空飞行的航班更换引擎”,再次验证这张智能的DCI网的给力和小伙伴们的专业。


2012年和2013年微信的迅猛发展,特别是在海外的扩张,给网络带来巨大的压力。海外运营商的游戏规则和环境与国内几大完全不同,微信全球用户覆盖的质量如何调优着实不是那么容易的一件事情。经过坚持不懈的努力,我们为微信等海外业务建立了全球覆盖模型并实践了多种分布加速解决方案。


这几年,时光同样见证了100G光传输与运营商的同期部署,高性能SET区域超过20000台服务器的IDC网络新架构等等。而公网传输设备等自研网络设备的批量上线,则让网络面对业务越来越多个性化服务需求时底气更加充足。


5、新梦想启航的时刻


每一年,当网络解决一个又一个问题后,新的挑战总是不期而至。


进入移动互联网最热的年份,公服务的特殊要求、此起彼伏的城域网热点让刚刚有点从容的网络再度面临压力,而SDN的不进则退让网络更没有后路必须大力开展前瞻性研究。微信O2O、互联网金融的新业务形态也给网络带来更多的思考。


未来的腾讯网络基础架构会收获什么?请你和我们一起期待,因为这是一个新的梦想启航的时刻。


附录:有关微信、QQ的文章汇总


[1] QQ、微信团队原创技术文章:

《腾讯技术分享:Android手Q的线程死锁监控系统技术实践》:

《微信团队原创分享:iOS版微信的内存监控系统技术实践》
《让互联网更快:新一代QUIC协议在腾讯的技术实践分享》
《iOS后台唤醒实战:微信收款到账语音提醒技术总结》
《腾讯技术分享:社交网络图片的带宽压缩技术演进之路》
《微信团队分享:视频图像的超分辨率技术原理和应用场景》
《微信团队分享:微信每日亿次实时音视频聊天背后的技术解密》
《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》
《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》
《腾讯团队分享:手机QQ中的人脸识别酷炫动画效果实现详解》
《腾讯团队分享 :一次手Q聊天界面中图片显示bug的追踪过程分享》
《微信团队分享:微信Android版小视频编码填过的那些坑》
《微信手机端的本地数据全文检索优化之路》
《企业微信客户端中组织架构数据的同步更新方案优化实战》
《微信团队披露:微信界面卡死超级bug“15。。。。”的来龙去脉》
《QQ 18年:解密8亿月活的QQ后台服务接口隔离技术》
《月活8.89亿的超级IM微信是如何进行Android端兼容测试的》
《以手机QQ为例探讨移动端IM中的“轻应用”》
《一篇文章get微信开源移动端数据库组件WCDB的一切!》
《微信客户端团队负责人技术访谈:如何着手客户端性能监控和优化》
《微信后台基于时间序的海量数据冷热分级架构设计实践》
《微信团队原创分享:Android版微信的臃肿之困与模块化实践之路》
《微信后台团队:微信后台异步消息队列的优化升级实践分享》
《微信团队原创分享:微信客户端SQLite数据库损坏修复实践》
《腾讯原创分享(一):如何大幅提升移动网络下手机QQ的图片传输速度和成功率》
《腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(下篇)》
《腾讯原创分享(二):如何大幅压缩移动网络下APP的流量消耗(上篇)》
《微信Mars:微信内部正在使用的网络层封装库,即将开源》
《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》
《开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石 [源码下载]》
《微信新一代通信安全解决方案:基于TLS1.3的MMTLS详解》
《微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)》
《微信团队原创分享:Android版微信后台保活实战分享(网络保活篇)》
《Android版微信从300KB到30MB的技术演进(PPT讲稿) [附件下载]》
《微信团队原创分享:Android版微信从300KB到30MB的技术演进》
《微信技术总监谈架构:微信之道——大道至简(演讲全文)》
《微信技术总监谈架构:微信之道——大道至简(PPT讲稿) [附件下载]》
《如何解读《微信技术总监谈架构:微信之道——大道至简》》
《微信海量用户背后的后台系统存储架构(视频+PPT) [附件下载]》
《微信异步化改造实践:8亿月活、单机千万连接背后的后台解决方案》
《微信朋友圈海量技术之道PPT [附件下载]》
《微信对网络影响的技术试验及分析(论文全文)》
《一份微信后台技术架构的总结性笔记》
《架构之道:3个程序员成就微信朋友圈日均10亿发布量[有视频]》
《快速裂变:见证微信强大后台架构从0到1的演进历程(一)》
《快速裂变:见证微信强大后台架构从0到1的演进历程(二)》
《微信团队原创分享:Android内存泄漏监控和优化技巧总结》
《全面总结iOS版微信升级iOS9遇到的各种“坑”》
《微信团队原创资源混淆工具:让你的APK立减1M》
《微信团队原创Android资源混淆工具:AndResGuard [有源码]》
《Android版微信安装包“减肥”实战记录》
《iOS版微信安装包“减肥”实战记录》
《移动端IM实践:iOS版微信界面卡顿监测方案》
《微信“红包照片”背后的技术难题》
《移动端IM实践:iOS版微信小视频功能技术方案实录》
《移动端IM实践:Android版微信如何大幅提升交互性能(一)》
《移动端IM实践:Android版微信如何大幅提升交互性能(二)》
《移动端IM实践:实现Android版微信的智能心跳机制》
《移动端IM实践:WhatsApp、Line、微信的心跳策略分析》
《移动端IM实践:谷歌消息推送服务(GCM)研究(来自微信)》
《移动端IM实践:iOS版微信的多设备字体适配方案探讨》
《信鸽团队原创:一起走过 iOS10 上消息推送(APNS)的坑》
《腾讯信鸽技术分享:百亿级实时消息推送的实战经验》
>> 更多同类文章 ……
http://www.52im.net/forum.php?mod=collection&action=view&ctid=12
[2] 有关QQ、微信的技术故事:
《QQ和微信凶猛成长的背后:腾讯网络基础架构的这些年》
《闲话即时通讯:腾讯的成长史本质就是一部QQ成长史》
《2017微信数据报告:日活跃用户达9亿、日发消息380亿条》
《腾讯开发微信花了多少钱?技术难度真这么大?难在哪?》
《技术往事:创业初期的腾讯——16年前的冬天,谁动了马化腾的代码》
《技术往事:史上最全QQ图标变迁过程,追寻IM巨人的演进历史》
《技术往事:“QQ群”和“微信红包”是怎么来的?》
《开发往事:深度讲述2010到2015,微信一路风雨的背后》
《开发往事:微信千年不变的那张闪屏图片的由来》
《开发往事:记录微信3.0版背后的故事(距微信1.0发布9个月时)》
《一个微信实习生自述:我眼中的微信开发团队》
《首次揭秘:QQ实时视频聊天背后的神秘组织》
>> 更多同类文章 ……(
http://www.52im.net/forum.php?mod=collection&action=view&ctid=14

上述文章具体链接,参见
:http://www.52im.net/thread-1448-1-1.htm


出处:https://zhuanlan.zhihu.com/p/34453273


版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。



架构文摘

ID:ArchDigest

互联网应用架构丨架构技术丨大型网站丨大数据丨机器学习

更多精彩文章,请点击下方:阅读原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。 Quartz的优势: 1、Quartz是一个任务调度框架(库),它几乎可以集成到任何应用系统中。 2、Quartz是非常灵活的,它让您能够以最“自然”的方式来编写您的项目的代码,实现您所期望的行为 3、Quartz是非常轻量级的,只需要非常少的配置 —— 它实际上可以被跳出框架来使用,如果你的需求是一些相对基本的简单的需求的话。 4、Quartz具有容错机制,并且可以在重启服务的时候持久化(”记忆”)你的定时任务,你的任务也不会丢失。 5、可以通过Quartz,封装成自己的分布式任务调度,实现强大的功能,成为自己的产品。6、有很多的互联网公司也都在使用Quartz。比如美团 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度。   课程说明:在我们的日常开发中,各种大型系统的开发少不了任务调度,简单的单机任务调度已经满足不了我们的系统需求,复杂的任务会让程序猿头疼, 所以急需一套专门的框架帮助我们去管理定时任务,并且可以在多台机器去执行我们的任务,还要可以管理我们的分布式定时任务。本课程从Quartz框架讲起,由浅到深,从使用到结构分析,再到源码分析,深入解析Quartz、Spring+Quartz,并且会讲解相关原理, 让大家充分的理解这个框架和框架的设计思想。由于互联网的复杂性,为了满足我们特定的需求,需要对Spring+Quartz进行二次开发,整个二次开发过程都会进行讲解。Spring被用在了越来越多的项目中, Quartz也被公认为是比较好用的定时器设置工具,学完这个课程后,不仅仅可以熟练掌握分布式定时任务,还可以深入理解大型框架的设计思想。
[入门数据分析的第一堂课]这是一门为数据分析小白量身打造的课程,你从网络或者公众号收集到很多关于数据分析的知识,但是它们零散不成体系,所以第一堂课首要目标是为你介绍:Ø  什么是数据分析-知其然才知其所以然Ø  为什么要学数据分析-有目标才有动力Ø  数据分析的学习路线-有方向走得更快Ø  数据分析的模型-分析之道,快速形成分析思路Ø  应用案例及场景-分析之术,掌握分析方法[哪些同学适合学习这门课程]想要转行做数据分析师的,零基础亦可工作中需要数据分析技能的,例如运营、产品等对数据分析感兴趣,想要更多了解的[你的收获]n  会为你介绍数据分析的基本情况,为你展现数据分析的全貌。让你清楚知道自己该如何在数据分析地图上行走n  会为你介绍数据分析的分析方法和模型。这部分是讲数据分析的道,只有学会底层逻辑,能够在面对问题时有自己的想法,才能够下一步采取行动n  会为你介绍数据分析的数据处理和常用分析方法。这篇是讲数据分析的术,先有道,后而用术来实现你的想法,得出最终的结论。n  会为你介绍数据分析的应用。学到这里,你对数据分析已经有了初步的认识,并通过一些案例为你展现真实的应用。[专享增值服务]1:一对一答疑         关于课程问题可以通过微信直接询问老师,获得老师的一对一答疑2:转行问题解答         在转行的过程中的相关问题都可以询问老师,可获得一对一咨询机会3:打包资料分享         15本数据分析相关的电子书,一次获得终身学习

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值