@qinyun
2017-11-02T17:10:32.000000Z
字数 2696
阅读 1892
未分类
微博作为当今中文社交媒体的第一品牌,拥有超过3.6亿的月活用户,也是当前社会热点事件传播的最主要平台。而热点事件往往具有不可预测性和突发性,10分钟内可能带来流量的翻倍增长,甚至更大。如何快速应对突发流量的冲击,确保线上服务的稳定性,是一个非常巨大的挑战。
传统的人工值守,手工扩容的运维手段,显然无法满足这一需求。为此,我们的目标是做到系统的自动扩容,在流量增长达到系统的警戒水位线时自动扩容,以应对任意时刻可能爆发的流量增长,确保服务的高可用性。
为此,在即将到来的12月ArchSummit全球架构师峰会上,微博服务化项目架构师、技术负责人胡忠想老师将以《微博应对突发热点事件的弹性调度实践》为题发表演讲,届时,胡老师将从突发热点事件所带来的峰值挑战、微博Web系统弹性调度的演进、智能弹性调度平台的建设实践、全链路弹性调度挑战与应对这四个方面来为听众揭开微博应对突发热点背后的故事。而此次对胡忠想老师的采访作为演讲的一次预热。
胡忠想,微博服务化项目架构师、技术负责人,2012年加入微博工作至今,承担过微博计数器架构升级,春晚和奥运服务保障,以及微博feed业务架构升级等工作。目前,主要专注于服务化方向,工作内容包括:微服务治理,弹性调度以及自动化监控等。
InfoQ:首先,请胡老师简单向我们介绍一下你们团队目前的基本情况和主要分工吧。
胡忠想:我们团队是Feed研发部,隶属于微博研发中心。按具体职责和分工来讲,我们团队主要有三大方向:
1.业务方向,主要支撑公司首页信息流、评论赞、卡片、短链等核心业务的功能开发和服务保障。
2.混合云平台方向,主要负责支撑全公司各业务线的混合云平台DCP的建设和维护,以及开源OpenDCP的建设和推广。
3.服务化方向,主要负责支撑全公司跨部门的服务化体系的建设和推广,以及资源服务化和万亿级存储等。
InfoQ:在你们团队中,您认为哪些技术知识和品质是必备的或者说哪类人才是你们最需要的?
胡忠想:责任心和执行力是我们最为看重的能力。首先要具备责任心,这样对自己负责的业务或技术,就必然会用心思考。在代码开发阶段,会用心规划和设计,为后续的维护和升级打下良好的基础,而不是能上线即可。在服务保障方面,也会做出系统的应对,包括监控、报警、以及出现问题时的响应机制等。同时执行力也是我们非常看重的,具体表现在能在预期的时间内,把事情做好,甚至超出期望。
InfoQ:在面对一些流量暴增的突发事件,你们是怎样应对的?如果情况失控,你们一般会采取什么措施?
胡忠想:针对突发热点事件,我们主要通过以下几个方面的工作来保障。
1.全链路自动扩容能力。不仅是WEB前端机,核心服务链路上依赖的RPC服务、资源等均做要到弹性扩容。目前我们已经具备了WEB前端机的弹性扩容能力,RPC服务的弹性扩容能力也很快就要上线了,资源层的弹性扩容相对比较复杂,目前还在建设中。
2.维持系统的最低冗余度。因为突发热点事件的特点是来得急,涨的快。为了确保线上服务不受影响,保持服务池的冗余度始终在一个安全的水位线,不至于在洪峰到来前马上决堤,为弹性扩容提供一个缓存期。
3.共享弹性池解决前20分钟问题。微博不仅有大量服务器提供在线用户访问,还有相当数量的服务器在做离线计算。我们构建了一个共享弹性池,白天离线计算任务较少时,冗余的离线服务器可以释放到共享弹性池,到了后半夜,用户访问较低时,冗余的在线服务线可会释放到共享弹性池。这样在需要服务器的时候,可以立即从共享服务池中获取,效率要比从公有云中申请创建高,同时提高了在线和离线服务器的利用率,节省了服务器成本。
虽然,我们在热点事件上的保障日趋成熟,但不可避免地还是会遇到意外的情况,超出了系统设计的最大承载能力,此时我们主要通过流量切换和快速降级两个手段来解决。
流量切换主要用于应对单个服务池的承载能力无法满足,而整体冗余度仍然可以应对的情况。此时,通过将用户访问从有问题的服务池切换到正常的服务池,可以快速解决问题。
除此之外,如果弹性扩容和流量切换仍然不足以应对,还可以快速降级。我们的快速降级也是分级的,首先执行的是一级降级,这类降级对用户的访问体验没有影响,然后才是二级降级,这类降级会一定程度上损失部门用户访问体验,最后是三级降级,这类降级杀伤力巨大,对业务和功能体验都有严重的损害,只有在最后需要救命的时候才会执行,并且执行也需要经过上报批准。
InfoQ:对你们而言,明星出轨、公布恋情与其他社会热点的区别是什么?
胡忠想:可以用六个字来描述,“来得急涨的快”。
业界比较典型的峰值流量模型如12306火车票抢购、双11、过年抢红包、微博吐槽春晚等,这些事件都是可预知的,可以通过提前扩容服务器,安排现场服务保障等技术手段来专门应对。
而微博上的明星出轨、公布恋情等娱乐事件因为事发突然,不可预测。并且峰值流量来的快,短时间内快速发酵为全民热点,对微博各核心系统都有很大的流量冲击,而且访问模型不确定有时信息流有时评论等。所以,对系统的冗余度以及快速弹性扩容能力的要求更高。
InfoQ:微博目前仍存在的挑战是什么?为此,你们团队打算在未来怎么克服它?
胡忠想:目前最大的挑战主要有三个:
1.将弹性扩缩容能力推广到公司各业务线。虽然我们团队具备了弹性扩缩容的能力,但是微博的业务线众多,技术体系也各不相同。因此建设通用的弹性扩缩容系统,推广到公司各个业务线是个非常大的挑战。
2.全链路的自动扩缩容能力。仅仅做到业务层的弹性扩缩容还不够,核心业务链路上依赖的资源以及服务都必须做到弹性扩缩容,这也是个非常大的挑战。
3.库存保障能力。往往热点突发事件的发生,需要在短短10~20分钟租赁或者征集数千台服务器,单一渠道往往无法满足库存,因此需要立体多层次的方案,比如建立全公司级别的共享弹性服务池,以及多云对接等。
目前,我们团队也正在这几个方向上进行重点攻坚,也希望感兴趣的同学一块加入。
InfoQ:最后,在微博工作的这几年,您有什么收获和心得?
胡忠想:收获主要有两个方面。
一是技术能力上的提升,无论是之前负责业务线,对互联网业务的快速迭代以及服务保障积累了丰富的经验,还是现在负责技术线,在DevOPS、微服务化、万亿级存储等领域都对业界最前沿的技术和趋势有了充分的了解和实践经验。
二是职业技能的提升,在团队管理、重大项目推进以及跨业务部门的沟通合作上,都得到了极大的提升,为职业生涯的发展打下了坚实的基础。
回顾在微博工作的这五年多,最大的心得就是抓住机遇,努力奋斗,快速成长。