B站S11破亿直播在线稳定性保障秘籍——直播Q&A

Q1: 压测环境怎么保证和线上一样呢?

A:此次直播压测,我们主要是在线上进行压测,线上压测是最接近实际情况的,同时直播的很多核心场景,多是读的接口,可以方便的在线上进行压测。也有一部分写的接口,我们也是通过线上的压测账号进行线上压测,压测完毕清理数据即可。同时对一些可能会产生脏数据的写接口,我们做了一些代码改动,以避免污染线上数据。此时已经覆盖了绝大多数场景。对于极少数写接口,改动代码比较麻烦,无法进行线上压测,我们尽量保障这些接口所涉及的资源足够。

Q2:压测几次是怎么确定的?

A:是这样的,我们一共进行了三轮压测,每轮有多次。为什么要进行三轮压测,这里我可以说一下:

第一轮压测的目标是:压出系统的极限,找出瓶颈和优化点

第二轮:等系统优化和业务需求做完,扩容后,按照S11预计流量压测

第三轮:验证,回归,查漏补缺

Q3:B站的场景链路梳理都是人工完成的吗?

A:我们确实是通过人工完成的,花了比较大的精力完成了直播方向的所有场景梳理,很难说通过一个自动化或者机器怎么样的一个手段去做这个事情,即使使用工具进行梳理也还是需要进行人工check的。而且核心场景不会大变,所以一次梳理后续还是可以继续使用的。

Q4:核心链路监控现在是如何实施落地的?

A:B站对于核心链路的监控都是通过Prometheus打点、Grafana展示来实现的,也就是我们会在核心链路进行埋点动作。

Q5:埋点会影响性能测试吗?

A:埋点不会影响到系统性能的,不会有性能上的损耗的。

Q6:稳定性不同阶段重点是什么?初期是提高监控主动发现率(发现问题),中期可观测性(定位问题),后期是混沌、预案(解决问题)?

A:这位同学自己总结的很好,我这边再补充1点,前面有提到B站其实在做另外一个事情,就是从大的架构层面去做多机房的部署、多元化、多活等,可以从更大的层面去保障稳定性。比如说多机房部署,当这个机房出现问题时,我们就切到另一个机房,避免对用户造成严重影响。

Q7:贵公司多大比例的事件和故障可以做到“一五十”呢?

没有具体统计过,目前我们有一些故障其实解决效率很高,都用不了10分钟就立马解决了,但故障具有不可预知性,所以我们一直才持续朝着这个方向去努力。

Q8:针对链路和场景梳理出来了,那如果业务和系统架构有变更,调用链路变了呢?怎么防腐化?

防腐化这个问题很好,也确实是一个难点,因为业务的东西总是在不断地变化,但目前B站的核心场景变化并不多,我们主要是保障核心,花20%的精力解决80%主干的问题就可以了。腐化难以避免,但我们可以在需要迭代的时候主动考虑一下这部分的问题,尽量做到业务上的隔离,不影响原本的核心链路。

Q9:B站在进行场景梳理时是怎么进行场景分级的?具体依据是什么?

A:我们场景一共分了四个级别,P0,P1,P2,P3,主要就是根据重要性来分级的。

本文来自投稿,不代表TakinTalks稳定性技术交流平台立场,如若转载,请联系原作者。

(0)
上一篇 2022年4月22日 下午2:44
下一篇 2022年5月18日 下午3:17

相关推荐

发表评论

邮箱地址不会被公开。

评论列表(2条)