昨晚10:30左右,B站的部分服务器机房发生故障造成无法访问。个人猜测11点多左右应该系统应该已经恢复了,但是因为视频行业强依赖CDN 云厂商 DNS 运营商 用户本身等原因拖到12点左右恢复80-90%吧,整体业务大概2点多,以上时间均为用户感知和猜测。自己本着做过全球化 多数据中心 多节点的视频业务出发,想讲讲明天这个国民APP反应速度及技术处理的难点。
多一点技术故事 ,少一点盲目吃瓜。
— 1 —
用户访问业务逻辑
按照 B站大佬分享的业务架构逻辑来看 ,主要多个SLB入口访问进行业务分流的情况。但是昨天大面积的故障来看,应该是前面的SLB是也全部不行 或者说大面积应该都不行了(至少 接入层是故障应该是有问题)。
但是如果只是仅仅只是接入层和后端应用侧的问题,个人觉得这个速度恢复速度 我觉得的业界10分钟左右 应该是全部能恢复了。
这里接入层的主要困难点
1、有状态的部署迁移问题
2、资源调配情况
3、简单排查和重新部署的时间
但从恢复速度情况来看,真个持续时间大概 > 30min----2h < 或者更多,个人感觉应该涉及更多的是对象存储和CDN了 导致这个时间周期的拉长。
(当然个人觉得另一个技术佐证。页面已经恢复了,但是视频还不能播放!!!)
— 2 —
用户请求CDN访问逻辑
因为涉及到CDN 静态资源(视频和图片)请求了,我必须给大家讲一下,做为一个用户是如何访问一个静态资源的。
大概分为五个层次
第一层:用户根据自身的dns 和 运营商的dns 解析拿到IP和域名去访问资源数据((视频或者图片))
第二层:拿到IP和域名之后 就近的边缘节点去拿资源 这个时间(cdn 会做高可用),但是如何高可用 边缘节点 一般都是CDN 厂商的事情,bilibili这种公司肯定会选多家厂商,当是也会all in一家主链路 (这个点影响面一般还好)
第三层:如何边缘节点拿不到用户请求的数据,他就会回核心的CDN中心拿数据 ,称为一级回源 或者说 向L1中心回源。一般CDN厂商要收费 (这个影响面也还好 但是会产生很多费用 )
第四层:当中心节点拿不到资源的时候,中心节点就会向对象存储拿数据,如何拿不到数据 那真的的只能返回空了。这一层如果出问题 或者地址发生变化了,上面几层也要全变,因为缓存数据是有时间的,一旦缓存失效,所有请求都要重新请求资源,业界在key /value 业务场景为了防止所以缓存KEY同一时间失效 常常会在这个KEY过期时间里面加个随机值。
第五层:存储静态资源目录位置 及状态 生命周期,一般用来屏蔽控制资源资源的访问情况。
— 3 —
高可用及cdn费用
CDN 的带宽历来是研发成本的大头,尤其国民APP bilibili (体量等于业界腾讯视频 爱奇艺 优酷总和)他在视频和直播风口上,大量的视频和直播成本,研发团队都在绞尽脑汁地减少 CDN 的成本。但是CDN 是整体系统至关重要的组成部分,而它作为一种特殊的缓存,其命中率和可用性也是我们服务端开发人员需要重点关注的指标。
按照静态请求层次,每个层次的影响面
如果3-5层做地址切换或者 业务容灾问题切换,切换成功率受限于受限于1-2层,但是1-2层上面有很多因素影响 。比如
1、运营商不生效(如:杭州电信会缓存DNS解析,指向是老的地址 这个时候业务就是还存在的故障)
2、本地野生DNS不生效
3、本地有缓存等等因素
所以因素都能导致bili业务已经恢复了,但是因为用户本身的问题 访问导致业务不能正常使用!需要长期的dns. ttl时间
个人大胆猜测从昨天的表现来看,明显有些系统OK但是视频还是不行 明显这个环节 大概率里做了cdn 指向切换的。
— 4 —
宽容及认知差异
外行吃瓜群众说上海X几家互联网业务挂了,要运维祭旗,打3.25 年终奖没了,都是吃瓜不嫌事大的人。内行的人我觉得应该关注人家恢复时间 这个阶段他们做了哪些预案,自己业务架构是否也会出现类似问题!如果你是运维 或者sre 光吃瓜 我觉得做为技术人还没有入门。最后送一句某位运维大哥说的.互联网公司软件业务迭代过程中,故障是常态 非故障是非常态.合理降低影响面 快速恢复业务 才是我辈运维(sre)才该努力进步的方向。写给运维路上的你...当然后续关注人家的复盘 有一手资料 欢迎分享!!
就光从目前来看 dns切换刷新 回源仍然视频行业的主旋律 用户—本地野生dns——运营商dns——云服务商cdn 回源解析命中 层层叠加恢复时间本身就不光光只是bili公司自己,结合三方云CDN 云对象和ISP(网络服务提供商之外)
mttr 30分钟修复页面来看 手工点赞 b站作为是一个国民app 恢复如此之快 已经很了不起了
另外其实昨天我挺不鄙视那些技术菜逼 因为很多研发都在吃(技术菜 或者不明技术原因的情况) 运维岗位方向的瓜,谁都不容易,这种事情万一是你写的bug呢 谁遇到谁糟心?请你善良一点 在努力一点 那样才是成为技术大神该走的路???你说呢?
这真的是成本费用 和 修复时间的较量 至少个人是这样觉得的?期待后期B站复盘