热搜
您的位置:首页 >> 法律

1亿在线背后的技术挑战腾讯大讲堂超给力讲

2019年05月14日 栏目:法律

早年业界一直盛传腾讯内部的大讲堂课程含金量极高,在今年腾讯开放大战略下,这有口皆碑的内部高端分享课程终于走出深圳,走向业界。腾讯大讲堂首站来

早年业界一直盛传腾讯内部的大讲堂课程含金量极高,在今年腾讯开放大战略下,这有口皆碑的内部高端分享课程终于走出深圳,走向业界。腾讯大讲堂首站来到北京航空航天大学,首次活动现场极为火爆,超过700人到场旁听,把全部会场挤得水泄不通。

本次活动由CSDN、《程序员》和腾讯共同举办,暨TUP第十六期:智慧腾讯,梦想互联1亿背后的技术挑战,约请到了腾讯即通平台部高级技术总监、T4级技术专家、腾讯软件开发通道分会会长庄泗华,下面为讲座内容整理回顾,让我们一起提高、学习。

庄泗华 腾讯即通平台部高级技术总监、腾讯T4级技术专家、腾讯软件开发通道分会会长。中科院计算技术研究所硕士,2004年毕业加入腾讯,是腾讯培养出的位T4专家级毕业生。一直致力于 IM后台海量服务系统的研发和运营工作。负责过群聊系统、接入与基础通讯服务系统等后台系统的研发和运营,见证了从800万到1.4亿的整个过程。

演讲视频观看

演讲PPT下载:

刻薄的数字考验,近乎百分百的要求

众所周知,海量互联服务能力是世界公认的技术难题。经过10多年的发展,腾讯在海量互联服务方面已有不少技术积累。演讲以 IM后台服务为例,重现了用户从百万级到亿级的整个过程中遇到的技术挑战,分享众多在海量互联后台服务研发运营方面不为人知的秘密。现在面临7亿活动账户,逐日1.4亿用户同时。过万台IM服务器和百亿级的关系链对数每天接受千亿级的服务要求考验。在这些刻薄的数字面前,腾讯要保证99.99%这1近乎百分百的可用性。从10万到1.4亿,整个过程经历过很多波折,吸取了很多教训,因此腾讯对海量服务的理解是长期积累的结果。

从十万级到百万级,代架构难支持

在早期1.0时期,由于用户量较少,十万级,并且业务功能非常简单,例如登陆、添加好友、状态获得等,因此架构非常简单,由客户端+接入服务器+存储服务器组成。随后随着业务的拓展,需要支持支持视频、语音、传文件等实时宽带业务,以及更多类型的用户资料,我们增加了长连接服务器,为没法直连的客户端进行实时宽带数据中转,还对存储服务器进行轻重分离,使核心服务器保证稳定,利用扩大服务器快速支持新增业务,这就是以后的1.5版本。但是我们发现无论是1.0还是1.5,我们发现都难以支持百万级别。由于一百万的时候,各方面都会遇到很大的瓶颈。以接入服务器的内存为例,单个用户的存储量约为2KB,索引和状态50字节,好友表400个好友* 5字节/好友=2000字节,这样算来2G内存只能支持一百万用户,因此代架构肯定没有办法继续下去,我们必须要升级。

2.0的主要改进在于单台服务器扩展成集群,增加状态同步服务器。在接入服务器之间同步状态,如下图所示。

这次升级帮助在2001年顺利突破100万用户数。随后为了支持群,又将2.0升级到2.5,增加了群服务器和群贴图服务器。

在从十万到百万的进程中,有两个重要的经验,1是后台架构的高性能,主要通过六个方面实现:不用企业级解决方案,逻辑层多进程,万有1失的无锁设计,用户态IPC,MySQL分库分表,好友表自写文件存储。二是7乘24小时连续服务,主要通过以下方法实现的:大系统小做,平滑重构,核心数据放入同享内存,接入层与逻辑层分离,命令分发动态配置化。

千万级的考验,第二代架构难维系

2005年同时迅速增长到千万级,于是之前的架构再次面临挑战,突出的问题主要体现在,同步流量太大,状态同步服务器遇到单机瓶颈;所有用户的状态信息量太大,单台接入服务器存不下;单台状态同步服务器支持不下所有用户;单台接入服务器支持不下所有用户的状态信息。没有办法,只得进行再次升级,3.0时代到来。

3.0改造的主要特点是全面的集群化,如下图所示。

但是事情并非我们想象的那样顺利,很快新问题产生了。

问题1:后台机器愈来愈多,单机死机/故障经常出现,IDC故障也很多,影响服务,也影响人员生活。经过分析我们决定加速容灾改造,存储集群建立半自动切换模式,业务集群、接入集群、同步集群建立自动切换模式,后台分布在两套IDC,并有指挥中心装备健康状态。

问题2:每周有新代码发布,BUG不断出现,严重影响服务。这个问题我们采用Code Review和灰度发布的方法,得到有效的解决。

问题三:监控机制原始、报警设置不全,失事了都不知道。这个促使我们完善监控和报警机制。

问题4:运维操作通过vim或者mysql进行,非常容易失误。我们通过运维操作Web化(半自动化)、自动化有效的解决了这个问题,并服务可用性终究提升到了行业先进水平。

通过解决以上问题,我们得到了3.5架构,如下图所示。

这一阶段,我们得到如下经验,架构必须对外提供高可用性的服务,对内提供高可运维性的系统。同时利用灰度发布,运营监控,容灾,运维自动化/半自动化等方法解决架构问题。

亿级的飞跃,新时代伴随着新烦恼

IM亿级存储系统架构

随着亿时代的到来,新的问题和烦恼也随之出现。首先是灵活性问题,比如说昵称长度增加一半需要两个月,增加故乡字段需要两个月,增加好友数从500变成1000需要三个月。其次,亿时期还需要具有一些重要的能力,比如原来有上万的好友;对隐私权的控制;PC 与别互踢;异地容灾,即一个城市出问题的时候,别的城市也能提供服务等等。但亿时期带来的的挑战是,原先IM后台从1.0到3.5都是在原有的基础上改造升级,IM后台1.0的代码在3.5的下面都能找到,但是这种持续打补丁的方式已难以支持上亿级的用户。所以除了底层的公共部份之外,IM后台4.0必须从零开始,重新设计实现。

IM后台4.0存储系统历时三年完成,支持千万级的好友,加强了隐私权限控置,可以灵活扩大字段,原来扩展一个字段需要两三个月,现在只需要一周,同时还具有高可运维性,高性能。

IM后台4.0通讯系统历时两年多,架构比原来的复杂很多,希望再过一年可以完成。到目前为止,已取得了一些成果:首先是多点登陆,可以管理不同的登陆终端;支持5至10亿个实例同时;方便接入等多种业务;实现区域自治。

在亿级时代,需要的关键技术首先是提供高灵活性的业务支持,传统IT行业可能半年到两年出一个新版本,而互联行业每个月就需要出一个新版本。同时还要保持高性能,高可用性,高可运维性。展望腾讯IM服务的未来之路,全球化散布、高效的研发、监控报警的智能化成为未来发展的战略。

4高准则,IM后台技术演化启示

在IM后台技术演化进程中,每一个级别要求的技术不一样,如十万级和百万级要求高性能、7*24小时连续服务;千万级要求高可用性和高可运维性。而到了亿级,就要求高性能、高可用性、高可运维性和高灵活性四高准则,每提升一个量级,相应的四个高都会有相应的要求,而且技术难度也会提升一个量级。

团队经历了从1.4万到千亿级奔腾的进程,免不了很多教训,正是因为有了这些技术积累,才换来今天这么大的范围。互联行业与传统IT行业不一样,有自己的技术规律,需要做自己的技术积累。

不仅IM业务,腾讯公司在很多不同业务上都走过一些弯路,积累了相应的经验,边重构边生活、大系统做小、先扛住再优化、干干净净......这些正是在不断的试错和总结中得出的理念和价值观,是在技术演变的过程中得出的启示。

小结

虽然这是腾讯大讲堂次走出去,但是参会人数超过六百人,会场爆满,场面热烈。内容全面、干货多是本次分享的一大特色,观众积极踊跃地发问互动,线上线下延续的交换和讨论,都给活动组织者增加了信心和经验。

北航之行虽然结束,但是腾讯大讲堂走出去之路才刚刚开始,我们将会约请更多公司的专家和媒体、高校合作者,共同参与到腾讯大讲堂分享的行列中。

白带多是什么原因
宫颈炎的治疗方法
女人为什么会经期延长
  • 友情链接
  • 合作媒体