从2010年4月上线,到2012年,短短两年时间,腾讯微博已经拥有超过4亿用户,不少用户的听众都已经突破千万,面对快速的增长,腾讯微博在架构方面有哪些变化呢?8月10日下午,在全球架构师峰会上,腾讯微博事业部技术总监张松国对腾讯微博的架构成长做了详细的阐述。



腾讯微博事业部技术总监张松国分享腾讯微博架构变化

张松国表示,互联网系统如同生命体,随着发展不断的生长演进。腾讯微博两年四亿用户让架构受到了极大的挑战,并且随着移动终端的发展,对微博架构的要求也越来越高。面对这样的演进变化,张松国认为一定要控制好演进节奏。大节奏方面,版本演进时间长达数月,“先对外后对内,先抗住再优化”;小节奏方面,则要做到敏捷迭代,每周甚至每天都要有不同的版本更新上线。


上线阶段:保证基础功能


张松国介绍到,在腾讯微博上线之前,内部做了大量的测试工作,保证微博了的基础功能。而随着后PC时代来临,多终端成为发展趋势,同一功能要在不同终端上体现一致性,腾讯微博力图做到平台一致性,一个平台连接多个终端,使服务和数据平台化,使用统一的接口。


同时,腾讯微博上线采用了灰度发布的手段,在一个终端试用,然后再大面积推广,这样则保证了微博的基础功能不受影响。此外,腾讯微博还做了大量的数据统计,以满足运营需求。


优化阶段:响应速度是第一体验


从2010年5月开始,腾讯微博开始做性能优化。张松国说,在腾讯有一个非常重要的理念,即“响应速度是第一体验”。一个速度不好的应用会让用户有心理障碍,因此,性能优化技术,靠近用户的优化最关键。首先要确立优化目标和衡量标准,其次监控指标,包括区域和事件,最后进行优化。



腾讯微博事业部技术总监张松国分享腾讯微博架构变化


对于整个性能优化最核心的地方就是web优化,腾讯微博采取的方法为减少请求、异步加载、预加载、多域名、多IDC布署、内部代理等。其中最重要的是首屏优化,首屏作为用户第一眼看到的页面,直接决定了用户的粘性,因此腾讯微博的首屏要做单独优化,在测速之后决定是否减少首屏元素,右侧非关键元素延迟加载、JS拆分等,保证用户优先看到时间线。


张松国特别指出,腾讯微博对首屏优化是十分重视的。当用户浏览微博时,后台会自动加载大图,保证当用户点击缩略图时会立刻看到大图,如果用户使用的是无线网络,则会关闭预加载功能。


除了首屏优化之外,腾讯微博还进行了大量的后台优化,几乎在每一个层都使用了cache,大量使用简单未定的memcache平台,优化逻辑层和数据层。


对于数据存储,腾讯微博也进行了一定的优化,张松国表示,腾讯微博非常注重存储方式优化,使用索引存储,内存和SSD并行写,按照时间分区读写,聚合计算在内存中进行,SSD定期将离散数据整理成数据块,读写性能将提高20倍。


建设阶段:加强容灾系统建设


从2011年6月开始,腾讯微博频频出现问题,大家意识到微博应该加强容灾系统建设。张松国认为,故障不可避免,关键是如何减少故障的影响范围。根据腾讯微博的调查,产生故障的原因56%是因为程序更新,隐形bug只占到了11%。解决该问题最有效的手段就是灰度发布,通过分阶段的方式发布更新,每次只向少量用户发布,即使出现问题,也不会产生大面积的影响。



腾讯微博事业部技术总监张松国分享腾讯微博架构变化


张松国说,互联网是高可靠系统,有可能因为一行代码就毁掉一个系统。在腾讯微博早期时,一有错就显示空白页,造成大量用户投诉反馈,所以要进行有损服务,其核心功能就是强容错强容灾,如果某台索引损坏,就忽略掉该数据,只显示部分数据,这样的方式用户感知小,可以接受。


目前,腾讯微博的容灾系统分为三大部分,即核心服务、普通服务、外围服务。核心服务即为两地三IDC容灾,即便一个城市的网络崩溃,也不会对整个微博服务产生影响,进行多层次容灾建设,具有跨IDC容灾能力。在以前,web接入点只有电信和网通两个,如果一个点出问题,就会挂掉一大片,张松国认为解决这个问题,一定要增加IDC接入点。


未来阶段:打造开放平台


最后在谈到未来发展方向时,张松国认为平台化和开放平台是腾讯微博发展的主要方向,做到百花齐放。在数据分析和挖掘方面也要增加强度,通过信息筛选、关系链挖掘、内容分类和优质内容筛选,深度挖掘用户关系链和用户圈,更好的进行用户价值评估。

<