6月27日晚间,范冰冰李晨宣布分手,瞬间亿级的访问量,让微博再一次“崩溃”:范冰冰账号评论区无法加载,搜索“范冰冰李晨”显示失败。
微博曾经夸下海口,支持8个明星并发出轨,再一次打脸了,微博技术同学要好好反省、认真反省。
话又说回来,为什么微博总是宕机?从技术上来说,什么样的架构能够应对瞬间亿级访问量?真的能支持8个明星、80个明星的瞬间亿级流量?
01:衡量明星火不火,就看他是否搞宕过微博
不得不承认,明星的内容与流量支撑起了微博的大半江山。每次明星爆出热点事件,观众都会第一时间奔向微博吃瓜,瞬间涌入的流量也直接导致了微博宕机。
2015年6月1日,在李晨和范冰冰承认两人正在热恋中的两天后,李晨又深夜发长文证实张馨予出轨导致分手并称珍惜范冰冰。微博瞬间陷入崩溃,十几分钟后才恢复正常。
2016年8月14日,王宝强深夜发布离婚声明称妻子马蓉与经纪人存在婚外不正当两性关系。微博瞬间爆掉,仅五秒内该条微博的评论数就已过万。紧接着微博服务器崩溃,无法刷出新内容。
微博修复好后,几条相关微博的点赞数和评论数都超过了100万,有网友表示,凌晨两点,微博很多内容还是加载不出来。第二天一早,不仅微博热搜无法进入,部分地区微博的评论点赞提示功能更是失灵,用户关注页面出现bug,feed流出现问题,最新内容无法刷出。
2017年10月8日下午,国庆节假期的最后一天,演员鹿晗和关晓彤公开恋情。随后微博出现了无法正常刷新、评论等多个页面无法正常显示的问题。此次两人的恋情公布,微博数据也达到了巅峰,两人互动数(转评赞)合计1380万。
微博客服证实客户端出现了无法正常刷新、评论等多个页面无法正常显示的问题,并表示工程师已在排查。
这次瘫痪堪称微博史上最严重的一次,持续了1.5个小时,王高飞也在微博上表示,紧急租了1000台服务器才解决问题。
发生了几次宕机事件后,吃瓜群众们对此表示已经习惯,甚至很多人认为,如果明星突然宣布结婚或分手微博还没宕机,只能证明该明星还不够火。
今年的两次宕机,发生在“志玲姐姐”结婚和“范爷”分手上。
6月6日,林志玲结婚喜讯宣布后,在微博搜索上林志玲的名字显示搜索失败,请重试。
6月27日,范冰冰李晨宣布分手,范冰冰账号评论区无法加载,搜索“范冰冰李晨”显示失败。
02:成本和宕机之间,微博选择前者
都9012年了,微博为何还在不断宕机?
据业内技术人员介绍,服务器集群都会按照平时流量预估的峰值来设置。这几次宕机事件都是由于突发热点事件造成的瞬间流量过大,导致服务器压力承受不住客户请求而崩溃。
微博技术专家演讲截图
据微博技术专家在演讲时引用的数据图显示,鹿晗关晓彤宣布恋情的瞬间,搜索流量激增3倍有余。
为了成本考虑,目前微博都是在热点事件爆发后才会去阿里云紧急扩容。
微博CEO王高飞微博截图
几年前,微博建设了一套全自动化运维平台,新浪微博技术专家介绍,微博的自动化运维平台是借助公有云弹性计算资源平台应对爆发式峰值流量,基于Docker、Swarm等容器云技术体系实现分钟级千台规模机器创建及服务部署自动化运维体系。
架构内部主要采用私有云,早期采用物理机部署,通过化零为整建立冗余池;此外通过OpenStack+KVM的虚拟化方式进行资源整合,建立VM池。在公有云方面,通过采用阿里云等设施进行多云对接。
微博遇到的流量挑战是瞬间峰值高但持续时间短,当流量激增形成脉冲计算时,保证系统稳定性的唯一办法就是快速扩容甚至是实时扩容,通过引入阿里云的弹性计算资源来应对流量短时高峰的情况。目前微博混合云DCP平台,具备15分钟内扩容1000+服务器的能力。
这为微博省去了大量的成本,毕竟平时如果征用这么多服务器,也都基本处于闲置状态,实在过于浪费。阿里云官微曾表示,一台机器租用1小时只要1.86元,但事实上这只是华北3区一台低配版机器的价格。就按这个低配价来算,每天使用1台机器将产生45元钱左右的费用,1000台就要45000元,一月就是135万元,一年将近为微博带来1620万元的成本。粗略算来,动态扩容一年或许可以为微博省下超过1000万的费用。
微博技术专家胡忠想也曾在微博上吐过苦水:扩容少了没扛住,挂了;扩容多了没流量,亏了。
微博技术专家胡忠想微博截图
面对这种“里外不是人”的两难状态,热点发生时再动态扩容来应对,或许才是微博最佳的选择,毕竟谁也无法预估当天会有哪对明星情侣宣布分手。
如果发生宕机,阿里云目前技术可以做到在1分半钟内解决。在2018杭州云栖大会主论坛上,阿里云测试混合云容灾方案,在服务器宕机、业务中断的几秒后,监控系统探测到服务不可连接,在1分半钟之内,业务在云上恢复了运行。
除了扩容外,“降级”也是一种合理的控制手段。将应用服务器进行业务拆分,每个业务应用负责相对独立的业务运作,业务之间通过同享数据库来实现。当服务器负载过重时,平台可以做降级策略,保证核心业务顺畅运行。比如当微博的热搜榜瘫痪时,评论、转发等功能还可以正常使用。
微博技术专家此前表示,在应对流量峰值时,除了弹性伸缩系统,还需要统一的监控平台、核心链路服务自动伸缩、预案&干预手段相互配合,以保障峰值服务正常运行。
03:热点无法预测,“边缘计算”或将解决宕机难题
其实,出现宕机也不全是微博的错,毕竟热点无法预测。一般像双十一、春节这种大型流量节点,各家都会提前做好充足的准备工作。
百度为了今年春晚红包战事提前准备一个月,增加了3万台服务器,投入了大几亿的成本。
为了迎接2018年双十一,阿里云新增了近千万的弹性计算能力,相当于10座大型的数据中心,创造了“脉冲计算”的新纪录。但扛住了千亿级访问量,维持交易正常进行,却没想到大量用户提交退款,退款页面瞬时崩溃。
再充足的准备,也难以抵挡瞬间巨大的流量涌入。今年春节零点后,微信红包显示无法发送,直到半个小时以后才逐渐恢复。
在通信博士张峻恺看来,现在服务器的所有数据都放在单点云上,这种情况无论如何扩容,都会有瓶颈。他认为,未来“边缘计算”的成熟可以解决这一问题。
边缘计算是一种分布式计算,将数据资料的处理、应用程序的运行和功能服务的实现,由网络中心下放到网络边缘的节点上。这样就可以把云打散,就近接入不同节点,提供最近端服务。
全国网民在同时访问微博时,可以就近访问不同的节点。各个节点之间有一定的处理能力,处理完再上报给集中节点,这就大大减少了数据的汇聚和传输量,同时就近节点的访问延迟也会缩短。
此外,边缘计算支持数据本地处理,大流量业务本地卸载可以减轻回传压力,有效降低成本。
预计到2020年,每人每天平均将产生1.5GB的数据量。5G时代以后,微博、抖音等APP数据量会呈几何性增长,带宽的扩张却是线性增长,所以必须利用“边缘计算”调整网络结构,让带宽增长的速度赶上数据增长的速度。
目前,“边缘计算”还在发展阶段,张峻恺认为,未来5年内将会完成布点建设。
作者 | 张蓝予
编辑 | 苏琦
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/53849.html