7月13日夜间,包括微博、朋友圈等社交平台都在热议一个话题——B站怎么崩了?“B站崩了”话题一度在微博热搜第一名上呈现“爆了”的状态。
14日凌晨,B站通过其官方微博就“部分服务器机房发生故障造成无法访问”致歉,称:“昨晚,B站的部分服务器机房发生故障,造成无法访问。技术团队随即进行了问题排查和修复,现在服务已经陆续恢复正常。耽误大家看视频了,对不起。”但至于服务器机房发生故障的具体原因,B站并未进一步详细说明。
具体宕机原因不明
“互联网一线大厂标准— — 崩了后立刻热搜;再加一个,互联网顶流大厂标准— — 崩了后用户能把其他网站也挤崩”——“B站崩了”引发热议后,其背后原因也引发多方猜测。当晚,上海消防第一时间回应称,“经了解,位于上海市政立路485号国正中心内的哔哩哔哩弹幕网B站(总部)未出现火情,未接到相关报警。 ”
此前,B站技术总监毛剑在公开分享中表示,在应对连锁故障时,要做到——尽可能避免过载;通过一些手段去做限流,以及在无法正常服务时,通过有损服务牺牲掉一些非核心服务去保证关键服务做到优雅降级;重试策略上,在微服务内尽可能做退避,尽可能考虑到重试放大的流量倍数对下游的冲击;考虑在移动端用户无法使用某个功能的情况下,通常频繁刷新页面产生流量冲击,在移动端进行配合来做流控等方式。
但是在现实案例里,B站对突发事件的应对显然不如段子手们迅速,有网友在分享帖子下评论称“三个多小时才陆续恢复,这次绝对是一级事故。”
更多猜测聚焦在技术层面,多位接受第一财经记者采访的技术人员表示,B站采用混合云模式,CDN也是采用的腾讯云而非自建,因此目前从B站自身角度来考虑的话,更大可能是物理层面的问题,如网络问题、数据中心光纤被挖断、光缆被损害等。
腾讯云在官网客户案例中介绍称,B站采用腾讯云自研 GSLB 调度体系,结合全网实时监控数据,将用户请求精准调度至最优接入节点,最大程度降低用户访问时延和减少视频卡顿,最终用户用相同的带宽可以流畅对的观看更高清的直播视频,提升用户体验,建立平台品牌形象。
遇到网络事故的也不只B站,2019年6月1日,亚马逊旗下云服务商AWS中国区的许多互联网公司发生宕机,受影响的包括亚马逊中国官网、VIPKID、流利说、三星应用商店等。后根据AWS的官方调查,AWS北京区域一处道路施工中有几处光缆被切断,导致可用区无法链接网络,进而引发所有可用区中新的实例无法启动的故障。行业人士认为,AWS因光缆被切断便导致近12小时大面积服务瘫痪,是因为没有做好网络冗余设计,即为确保业务正常运转,除配置主线路外,同时做好第二种、第三种线路的部署。
2020年,AWS宕机仍旧存在,彼时12月25日,AWS出现大范围宕机,影响Adobe、Roku等服务。AWS称,由于处理大量串流数据的Kinesis服务遭遇问题,导致好几个网站错误率提高,并影响更新网站页面的能力,已着手紧急修复。
2020年2月,微盟收到系统监控警报,经排查后获悉是微盟研发中心运维部核心运维人员贺某通过个人VPN登入公司内网跳板机,对微盟线上生产环境进行了恶意的破坏,随后,微盟诸多客户的小程序电商商城均处于宕机状态,当时恰逢线上购物高峰期,宕机与数据丢失对微盟及其合作商家产生了极为负面的影响。
警醒容灾准备必要性
不论是AWS还是B站、微盟,宕机事故所带来的负面影响均需引发警惕。另外,目前企业数字化转型渐成大趋势,5G、物联网、工业互联网、云计算、人工智能等新技术在各行各业中的应用越来越多,所产生的海量数据正成指数级增长。一旦发生数据丢失与网站崩溃,对业务极有可能产生致命性危机。
对于每家公司的运维团队来说,降低容灾TCO、简化容灾方案、业务快速恢复,都是极大挑战。万博智云CTO孙琦对第一财经记者表示,虽然互联网应用架构已经从应用层实现了高可靠和冗余的特性,但是面对物理层面或应用逻辑的异常时,也无法全身而退。近几年,云上构建的应用架构的最佳实践已经非常完善,多可用区、弹性可扩展的方式为应用构建提供了便捷。
除了阿里云、腾讯云,主流云服务厂商均提供各种灾备方案。
中国电信天翼云的方案为“2+31+X”资源部署,以内蒙、贵州两大数据中心为核心,定位为冷数据存储、海量密集计算、远程灾备基地;在全国31个省进行一省一池的核心部署,定位为温数据存储、属地集中计算、专属云等业务;X指下沉到地市甚至区县的边缘节点,定位为热数据高速缓存,边缘计算等业务,承载属地化要求极高的业务。
UCloud优刻得的容灾解决方案显示,在国内,该公司以北京、上海、广州为中心节点,中心之间的网络实现双环、异路、全互联,每个中心下会分布多个可用区、可用区下又有多个数据中心,可以实现同城多活,异地容灾。
此前,UCloud创始人兼CEO季昕华表示:“云计算公司有四大谎言,分别是云计算先服务于内部客户,再服务于外部客户;云计算能保证100%的安全;云计算消耗大量资金;云计算是不盈利的。”季昕华称:“云计算虽然比本地研发更安全,但不可能是100%。就算微软、亚马逊、谷歌、阿里、腾讯一样都会出问题。所以用户更愿意使用多家云来服务,多云战略是未来的重要方向。”
在具体容灾落地过程中,腾讯云技术运营服务工程师康开元在腾讯大讲堂上表示,做容灾首先要梳理当前系统“灾”主要有哪些痛点,并对其优先级排序。如单点隐患、难扩展性、运维成本高等现状。而异地容灾的核心特征在于——范围上地域粒度的容灾;流量分布上单地域承载100%业务流量;数据存储方面在数据库及存储均在异地做冷备,数据单向同步;常见使用场景主要在数据层安全级别容灾,业务层较少异地部署。
另外,康开元表示,设计当前系统“容”,需要对当前系统潜在灾难逃生通道进行冗余设计——当灾难真正发生,预计多长时间能恢复,或者业务稳定性SLA(service level agreement服务等级协议)的恢复程度。其次,基于容灾范围和目标,需要考虑人力、时间以及资金等成本问题,可用性需要考虑引入方案对现有系统增加哪些不确定因素,评估这些不确定对稳定性影响,扩展性方面主要为后续业务容灾平滑演进。
孙琦告诉第一财经,面对极端情况,如果云上的应用没有合理规划灾备,也一定会造成业务中断,甚至数据丢失,造成更大的损失。所以,云上的应用架构除了利用云原生的服务能力为应用创造更快的迭代速度,还要考虑云原生服务在单元多区域,甚至多云多区域之间的灾备,才能实现最高级别的业务连续性。对于传统的互联网企业尚且有大量的技术团队进行支撑,对于传统企业就需要基于云原生的灾备手段构建自己的备份和容灾站点,保障业务的数据安全性和业务连续性。