微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增
10月8日中午12点,鹿晗和关晓彤宣布恋情,年近30的我并不关心小鲜肉们的分分合合,但是作为壹佰案例这个软件研发行业自媒体的小编,我更关注因此引发的微博宕机事件。
鹿晗公布恋情的微博获得462884次转发,986409条评论,25666617个点赞,再加上一时间舆论四起,各个明星大号都动起来了,虽然还没有看到微博公布访问数据,但想想也是很可怕的一次服务器冲击,很不幸微博服务器宕机了,微博客户端无法正常刷新,评论多个页面无法正常显示……
但是,一个小时之后,一切恢复正常,微博昵称“来去之间”的用户发微博称,刚加了1千台服务器。
那么问题来了,为什么阿里双十一都不会宕机,微博会被一场恋情搞崩溃?出现问题之后又是如何在1小时内解决问题,增加了一千台服务器呢?
首先,微博为什么会宕机
事实上,鹿晗事件并不是微博第一次出问题,从很久以前文章马伊琍的周一见,再到后来出轨队、吸毒队,再到宝宝事件、郭敬明事件、薛之谦事件,每次出现大的热点,微博的服务器就会受到一些影响,随之,是微博股价的上涨。
那为什么微博就不能应对高并发呢?阿里双十一那么大流量,也没看见宕机呀!
阿里每年双十一的高并发是可预见性的,提前会进行购买带宽资源、增加服务器资源、进行异地容灾等等准备工作。
而微博不可能为了不可预见的热点事件来准备应对高并发的资源,毕竟带宽和服务器都意味着运维成本。平时增加了服务器资源而又用不上,导致机器空载,也是一种浪费。
实际上,经过这么多次热点事件,微博应对突然的高并发是有非常多的经验的,就像这次能够1个小时解决问题。
其次,微博如何能够在1个小时内增加一千台服务器?
要知道,鹿晗宣布恋爱的那天还处于假期,大多数工程师被堵在返程路上或者刚出完午饭,就算临时召回也并不那么顺利。
有一个段子说微博工程师当天结婚,丢下新娘跑去处理程序,直到岳父来喊喝酒。假期并不能保持随时的工作状态,而值班人员的应急处理能力真的要看运气。
那么,微博如何快速解决问题呢?
微博的技术团队在最近两年建设完成了一套基于Docker的全自动化运维平台,具备半小时扩容1000台公有云服务器的能力,并完成了微博主要业务的改造覆盖。
以2017年春晚为例,不到一天完成近5000台服务器的创新和部署上线。
第三,微博DCP自动化运维系统的保障思路
新浪微博技术专家,同时也是混合云DCP(Docker Cloud Platform)项目技术负责人付稳介绍,微博自动化运维平台是借助公有云弹性计算资源平台应对爆发式峰值流量,基于Docker、Swarm等容器云技术体系实现分钟级千台规模机器创建及服务部署自动化运维体系。
每年的元旦、春晚等节点都会给微博带来流量挑战,瞬间峰值高但是持续时间短,当流量激增形成脉冲计算时,保证系统稳定性的唯一办法就是快速扩容甚至是实时扩容,微博引入阿里云的弹性计算资源来应对流量短时高峰的情况。
DCP系统最核心的部分是弹性伸缩,架构内部主要采用私有云,早期采用物理机部署,通过化零为整建立余池。另外通过OpenStack+KVM的虚拟化方式进行资源整合,建立VM池,在公有云方面通过采用阿里云等设施进行多云对接。
第四,微博DCP自动化运维系统有哪些值得借鉴的地方
微博通过DCP运维系统,让日常运维资源更加合理化,降低运维成本,而出现流量爆发情况时可以快速应对,对很多大型平台的运维工作都有借鉴意义。
DCP平台设计理念、DCP系统架构以及弹性伸缩的应用思路等方面都值得运维平台学习,而微博技术专家、混合云DCP项目技术负责人付稳也将在2017年TOP100全球软件案例研究峰会上发表主题为“应对鹿晗恋情爆发,微博如何应对短时间亿级用户访问——微博OpenDCP混合云设计与实践”的课程分享。
TOP100全球软件案例研究峰会已举办六届,甄选全球软件研发优秀案例,每年参会者达上万人次。包含产品、团队、架构、运维、大数据、人工智能等多个技术专场,现场学习谷歌、微软、腾讯、阿里、百度等一线互联网企业的最新研发实践。
更多TOP100案例信息及日程请前往[官网]查阅。4天时间集中分享2017年最值得学习的100个研发案例实践。本平台共送出10张开幕式单天免费体验票,数量有限,先到先得。免费体验票申请入口。