本文根据高效运维专家群友文章整理并发布。欢迎关注“高效运维”公众号,以抢先赏阅诚意满满的各种原创文章。 作者介绍
全网大调度8月12日23点30分,天津市滨海新区货柜码头发生集装箱连串爆炸。 占地8万平方米,服务器超过20万台的腾讯天津数据中心是腾讯在亚洲最大的数据中心,危险品仓库爆炸时,数据中心距离爆炸点仅仅1.5公里。 情况十分危急!数据中心随时有可能被迫停止运营!
2亿QQ用户可能深受影响!这甚至影响很多公司的业务,因为QQ早已不是简单的聊天工具,而是商务洽谈之必备! 天津数据中心内含腾讯社交核心业务,包括QQ、空间、相册及音乐等业务。社交核心业务主要按深圳、天津和上海三地来分布部署,各支撑中国三大区域的用户访问。 其中天津数据中心是核心机房之一,承载我国北方所有用户流量,高峰期在线用户超过1亿。如果天津数据中心停运,将有30%以上的QQ用户服务受到影响。 所幸的事,类似于谷歌拥有的全球业务调配能力,腾讯社交网络经过长期的建设积累,具备了数据和业务在全国范围的云数据中心中转换迁移的能力。 经过24小时的技术应急大调度,QQ用户服务最终无感知地在线迁移到深圳和上海,完成中国互联网史上最大规模的用户调度。 在如此严峻的情况下,QQ运营继续保持全年4个9的可持续服务能力。 下面先简单介绍一下调度过程。 1、启动社交核心业务的三地部署各具有一定的容量冗余,能保证一地灾难性故障时其他二地能支撑所有用户。 事件发生后,社交运营团队立即启动重大故障处理流程,成立突发事件应急团队,启用调度应急预案,做好天津用户调度回深圳和上海的准备:
2、调度13日团队开始以每千万为粒度将在线用户调度回深圳。 晚上22时是QQ在线用户峰值时间段,深圳一些服务模块的容量上涨到80%的水位,应急团队利用资源池里的服务器资源,边调度边扩容模块容量,把水位下调到可控范围之内。 对于没有资源扩容的模块,团队采用服务柔性的方式顺利过渡。如QQ采取的柔性为取消一些非关键服务:
通过在线扩容、服务柔性等策略,在线高峰期间用户访问核心服务顺畅,顺利地度过了流量洪峰,用户无感知。 下图为手机QQ天津地区在线用户曲线图: 上图可以观察到从13号晚上到14号凌晨,天津在线用户降到0的曲线下降趋势;以及14号下午回迁60%天津用户后的曲线上升。 整个过程不是仅仅从天津迁出到回迁这么简单,具体是这样的:
调度的几点挑战QQ 2亿多在线峰值用户要实时全网调度,所面临的挑战是非常大的,主要有:
以上任何一个挑战解决不了的话,都必将影响调度的实现。 在下篇将讲述,我们是如何应对这些挑战的。本次亿级用户迁移背后的技术架构和运营,其中用到的核心技术是SET,本文先和大家做个预热。 关于 SETSET,就像标准化的集装箱,是一个标准化的服务模块集群。它把原错综复杂的服务器内连接关系和功能耦合模糊掉,变成运营层面看到的一个个业务部署模块。 腾讯社交业务以SET的方式部署服务,每个SET集合了一个或一组服务模块,通过接口对外提供调用服务。SET对外输出二种容量:
SET间是无状态的,通过SET可以实现横向扩容能力。也就是说这些业务都支持部署最小化,当有需要时,可以不断增加SET数量来支持业务的流量,且SET之间无差异。 欲知后续如何,且听下文分解~~ 好消息!我将于GOPS 2016 深圳大会就此主题,做精彩演讲,如下为本次大会详情。 GOPS 2016 全球运维大会深圳站 欢迎您是的!2016年第一场技术盛宴,就在深圳。超豪华阵容!四大运维体系在引爆上海之后,携手20多位顶级运维专家,和您相聚深圳,共同期待和规划运维之春。 |