王宝强离婚事件的洪荒之力,新浪微博怎样靠技术支撑?
《王宝强离婚事件的洪荒之力,新浪微博怎样靠技术支撑?》要点: 在刚过去的8月,奥运会、王宝强事件交织发酵下,新浪微博流量大增,甚至部分服务被短暂打死.这股网民合聚的洪荒之力下,新浪微博是怎样用技术支撑起业务的? 老司机简介 之前微博曾披露过他们已经迁移到基于Docker容器的混合云平台DCP,那对于这样的突发热点,DCP是如何应对的?Docker容器可以进行秒级扩容,那为什么还会有短暂的服务被打死情况发生?DCP整个的弹性伸缩流程是怎么样的?带着这些问题,InfoQ记者采访了微博Container平台弹性伸缩负责人王关胜. 奥运期间热点事件对微博服务的冲击 奥运期间因为王宝强的离婚事件,让微博的流量大增,甚至部分服务被短暂打死.详细情况是怎样的? 王关胜:自16年里约奥运会开幕式开始,微博整体流量增幅明显,相较于往常增长数倍,造成了白天跟日常晚高峰一样的持续峰值场景.更甚的是,奥运期间还有赛事的热点及明星事件的冲击,给微博平台的服务带来数倍于日常峰值的流量请求. 其中在孙杨PK霍顿、奥运网红傅园慧的“洪荒之力”、王宝强事件、女排夺冠等热点中,尤以宝强事件的影响最为巨大.大家可以去看一下宝强发布离婚声明的微博互动数据,非常惊人;再来看看流量数据: 图1:微博,评论及Feed业务量 图2:话题业务量 可以看到,这次事件对微博的核心服务如Feed、评论、话题等带来的压力都是成倍的,已经超过16年春晚,为历史新高点.仔细分析一下,可以发现这种事件基本可以分为:发生期、发酵期、暴涨期、缓解期. 而暴涨期一般都是内部运营部门的push引来爆点,此时对于服务的容量冗余要求极高,虽然DCP已经弹性扩容了大批Container,但Java的服务初启动,会有线程池及连接资源预热的过程,此时会有一点慢的现象,也可以理解为瞬时流量短暂打死. 微博目前用户基数庞大,DAU和MAU均为数亿.从整个技术体系来看,微博核心总体分为端和后端平台,端上主要是PC端,移动端,开放平台以及企业开放平台.后端平台主要是Java编写的各种接口层、服务层、中间件层及存储层.除此之外,微博搜索、推荐、广告、大数据平台也是非常核心的产品.从业务角度看,整体架构图如下: 我们团队主要负责的微博平台的业务与保障,平台在2015年的部署架构如下: 就平台前端来说,每日超过千亿次的API调用、超过万亿的RPC调用,产生的日志就达百T+.对于这么大体量的业务系统,对于运维的要求也很严格;就接口层来说,SLA必须达到4个9,且接口平均响应时间不能高于50ms.因此我们会面临各种各样的挑战. 当时面对这样的突发情况,新浪微博是如何应对的?有哪些是没有考虑的的情况? 王关胜:微博对于服务的稳定性要求很高,在奥运开始前,微博平台已经启动了线上服务保障相关的准备工作,也建立了奥运期间的早晚班值班机制,以防止突发情况出现.在日常的峰值场景中,微博的混合云DCP平台可以做到无人值守的进行服务的弹性伸缩. 从热点事件的业务流量图可以看出:到达爆点之前一般会有发酵期,而我们的容量决策系统会实时的监测业务量变化,根据服务冗余情况决定是否自动伸缩,再根据一定的配比去弹性扩容, 缩容.当宝强事件爆点出来时,DCP已经提前扩容了一批业务container,但是让我们没想到的是业务量来的是如此之快,如此之高,加上瞬间的流量请求对于后端资源的预热,需要一点时间,部分服务出现短暂的超时,我们迅速对于非核心功能启动了无损降级,服务很快恢复. 当然,在应对这种热点事件时,我们已经很娴熟了,都会准备很多的预案,比如降级、限流、切流量等干预手段. 王关胜:微博平台大概14年开始研究Docker,14年底就Docker化了一些服务,并基于内部的基础设施上线了第一版的Docker工具平台,在15年春晚也发挥了作用. 但是这版的工具平台有很大的限制:我们内网的物理机设备冗余比较少,自动扩容的能力有限.基于此,我们开始探索公有云,并于2015年基于公有云的弹性能力加上私有云一起构建混合云DCP.通过与阿里云的合作,微博实现了从提前部署扩容到实时扩容的升级,并能达到10分钟弹性扩容上千节点的能力. 如果要说DCP的优势的话,我觉得最核心的就两点: (编辑:ASP站长网) |