ip在线代理服务器
通过阅读本文,您将了解到B站直播团队在S14赛事保障中的创新实践,包括如何有效地梳理业务场景、精准地进行资源预估、提高故障演练和压测的效率,以及如何通过工具和平台的优化,实现大型活动保障的降本增效。这些经验和方法对任何需要应对高并发、大流量挑战的技术团队都具有参考价值。
S赛期间也是B站直播流量最高的时段,在本次S14中,最高同时在线人数 近千万 ,大幅超过去年同期。如何应对这流量洪峰,也给我们带来了巨大的挑战。为了保障赛事直播功能的稳定和正常运行,我们是如何做到的呢?本文将会为你一一揭秘。
今年是B站直播S赛的第7年。在过去的赛事保障实践中,有一个问题一直困扰着直播团队:赛事前用于保障的研发耗时过高。S赛开赛前通常需要提前两个月进行活动保障的准备,赛事也会持续一个多月,期间会有数十到上百位研发同学共同参与保障工作。而第三季度也是直播业务的冲刺季,保障工作对研发的负担较重,这几个月时间里业务需求的交付能力会有比较明显的降低。为此,本次赛事保障由业务架构团队主导,助力研发同学提升保障效率。
通过场景信息,让我们对技术治理和保障工作更加有针对性,避免胡子眉毛一把抓。场景梳理的难点在于如何尽可能自动化地梳理链路、降低人工梳理的成本,并保障数据链路准确,不缺不漏。
对于客户端接口:在去年S13,我们获取接口信息的方式是触发场景后利用客户端HTTP请求库的hook能力实现数据记录,但存在很多问题。对于非标准的客户端请求库以及gRPC协议的接口无法获取数据。在本次S14中,我们进行了升级迭代,在客户端网络层采用搭建虚拟专用网的方式来记录包括UDP、TCP以及上层HTTP、gRPC、WebSocket等所有的数据流量,有效的解决了数据不完整的问题。
对于后端链路:在客户端触发场景后,我们会记录本次请求路径下的后端链路情况。而在现有的数据量级下,数据全采样的成本过高,当前采样率小于1%。而为了尽可能真实完整地分析链路,我们选择在生产环境进行分析,因此需要能指定全采样的能力。为此,我们也联合基础架构部门,制定了一套特定请求全采样的方式,通过设置特定的请求信息来调整采样策略。如果单个请求不足以完整表现链路依赖,如命中缓存、则不回源存储,会导致链路不够完整,因此我们也提供了多次采样、智能聚合的能力。
通过以上措施,我们提升了链路信息的准确性,降低了梳理成本ip在线代理服务器,这也为后续的保障打下了坚实的基础。
本次S14,有70+场景共300+接口需要预估,我们针对S赛事的流量特性使用了新的预估模式,对于S赛来说,分入围赛、小组赛、淘汰赛、半决赛、决赛等多个赛程,流量也是由少到多逐步递增的,因此这给我们提供了天然的预估方向,我们会记录历史每场比赛的赛中情况,分析PCU与各个技术指标的对应关系,利用小赛程的数据来预估大赛程的数据,从而得出更加真实准确的预估数据。
以如图应用为例,每增加1万 PCU,应用CPU则增加xx C,从而得出在预期PCU下需要消耗多少CPU资源。
在赛事开始前,研发后端通常需要提交资源申请进行采购扩容。往常我们采用的方法是沟通上下游数百研发,各自根据PCU去计算需要扩充的资源,再一一汇总计算,耗时耗力,沟通协调的成本巨大。本次赛事,我们基于基于资源预估的能力直接计算得出需要使用的资源总量,再减去当前业务的现有存量直接就能得出需要申请的资源总和。以此为模板,再由有特殊需求的业务方进行微调就可以完成资源申请的计算,这也大大节省了我们的梳理成本。
在过去,接口故障的模拟需要去故障注入平台操作,选择应用、增加对应故障点,进行错误注入。每个接口需要耗时十多分钟才能完成一次演练。本次我们通过流量代理的能力,在保障平台上对接口直接进行拦截返回注入相关错误,并提供查看和管理故障表现的能力。通过一站式的平台集成,做到了30秒内即可完成一次演练。
通过这种方式,可以非常直观地看到链路中有哪些还未进行故障演练,便于了解进度。而且后续链路变更可以只针对新增的链路进行补充,有效解决了之前遇到的问题。
5.压测报告管理:我们支持了场景压测报告的录入和管理,便于收集和查看每个场景的压测报告信息。
S赛保障是一个横跨整个公司多个部门的大型工程,良好的协调、沟通也是必不可少的。我们采用的方式如下:
在赛事期间,为了防止非预期的变更导致线上问题,我们会开启变更管控,前置阻断发布流程,严格控制生产环境变更。
本次保障我们也新实现了基于场景查看变更时间线的能力,在发生线上环境问题后,能更及时地感知到相关场景的变更内容,及时操作回滚止损。
根据场景元信息相关的数据,我们与基架共同制定了赛事保障大盘,大盘包括核心指标PCU、容量情况、核心基础资源、核心场景以及相关依赖错误率与饱和度等信息,及时感知异常情况。
除此以外,收益与场景链路平台化,我们也实现了系统容量的自动化巡检能力。在每场比赛期间,平台会自动分析计算每个场景相关应用的容量情况, 提升了保障范围的完整度,避免遗漏应用。
通过上述各项优化,本次赛事保障直播组只用了去年的30%-40%的人员投入,扛住了比去年决赛更高的流量。赛事前后正常业务需求迭代也几乎未受到影响,为这次保障画上了圆满的句号。在此也特别感谢基础架构、测试团队、流媒体等团队的支持以及参与保障的每一位同学,S14保障能顺利进行依赖于大家的共同努力。今后我们我们也将持续提升保障的自动化程度,让直播业务走得更快更稳!