《A2--杨杰 安思琪--B站端到端故障演练探索与实践.pdf》由会员分享,可在线阅读,更多相关《A2--杨杰 安思琪--B站端到端故障演练探索与实践.pdf(28页珍藏版)》请在三个皮匠报告上搜索。
1、B站端到端故障演练探索与实践安思琪哔哩哔哩 质量保障中心 资深测试开发工程师杨杰哔哩哔哩 质量保障中心 资深测试开发工程师安思琪目前主要负责C端流量&动态业务,推进业务稳定迭代、持续交付、质量提效等质量保障体系的建设。8年互联网测试开发经验,有丰富的业务质量保障、稳定性治理、测试效能平台工具开发经历。哔哩哔哩 质量保障中心 资深测试开发工程师目录CONTENTS故障演练背景01 故障演练实践02 故障演练效率提升03 展望跟后续规划04 01故障演练背景背景305 视频无法播放B站崩了为什么要做故障演练?l 突发事件l 仓促止损l 风险高l 客诉舆情l.l 增强抵御突发事件的能力和信心l 提升
2、系统容错性和可恢复性的能力l 有备无患l.被动挨打主动出击验证已知验证已知 防范未然防范未然02故障演练实践端到端故障演练的早期探索1.明确待演练业务核心场景2.抓包获取该业务下的所有接口3.每个接口的一级依赖设计故障场景稳定状态稳定状态强强or 弱?弱?故障类型:历时已知故障-相似链路-各种随机故障演练维度:单接口-单集群-单机房演练时间:工作日下午-晚上-随机时间演练环境:UAT-PRE-PRD确保演练可控观测系统表现客户端表现:业务功能是否符合预期空窗、兜底图异常toast服务端表现:关键节点的监控指标演练接口对应的responseDB、topic、broadcast错误日志信息.优化监
3、控告警监控告警监控告警是否配置告警阈值是否合理告警接受入是否有效故障通报故障通保是否及时故障模板内容是否符合规范故障处理是否及时记录演练结果终端表现服务表现强弱依赖故障注入1强依赖1演练10mins故障演练总结人工工程化演练效率低演练效率低、可复用性差可复用性差杨杰2021年加入哔哩哔哩,主要负责C端播放内核&创新业务,负责播放质量benchmark建设以及各类测试提效专项落地工作。有丰富的短视频和直播的业务质量保障经验。哔哩哔哩 质量保障中心 资深测试开发工程师03故障演练效率提升为什么要提效核心场景数业务接口数强弱依赖数人工执行耗时(分钟)故障演练基础故障配置:支持http,grpc,数据
4、库,缓存等故障类型配置故障编排:根据业务场景需要,支持串行或并行编排故障爆炸半径控制:支持基准环境,染色环境,头部信息,用户身份等多种隔离方式故障注入:通过平台实现故障一键注入l 接口自动化l 客户端UI自动化l 客户端识别l 服务端日志l 告警信息l 检测结果l 故障类型l 设备记录l 执行日志流量注入稳态检测演练记录提效手段流量注入接口脚本改造 在前置脚本中增加故障平台API调用逻辑 断言检测增加服务稳态检查接口场景整合单接口case依据业务场景要求,进行场景化整合场景中的每个case都有明确的验证点,方便出问题后快速定位流量注入接口常态化执行 接口场景case粒度接入流水线平台 代码合入
5、后,触发常态化接口故障演练 演练结果作为测试准入标准代码提交静态扫描构建部署故障注入接口自动化演练记录服务端日志检测告警信息监测执行成功提测执行失败停止合入流量注入客户端自动化改造:单case场景化集合 UI自动化代码中加入故障平台API调用逻辑 增加图像识别,录制等客户端稳态检测手段 通过平台手动触发执行故障配置故障编排云真机故障注入UI自动化图像识别操作视频服务端日志检测演练记录Bug单服务端稳态检测服务端日志基于日志系统API,根据关键字查询,判断日志输出是否符合预期告警信息基于告警平台API,根据已经配置对应的告警信息查询,判断故障是否正常触发预期告警演练记录检测结果执行日志故障类型设备记录快速定位现场回溯 客户端表现 服务端表现 客户端执行记录 设备型号 设备系统 设备硬件信息 故障类型 故障详情 故障节点 环境信息 过程信息 执行记录提效成果6009提效前提效后单位:秒可操作性演练耗时04展望与规划1.随机注入故障,结合现有的自动化能力以及故障编排和配置能力,能在每次自动化执行时,对故障类型机型随机组合并注入故障。2.全链路故障演练,不仅是根据业务场景划分的故障演练,而是对整个上下游链路任意一个或多个节点注入故障,进行一个全局的演练和观测展望与规划感谢聆听关注QECon公众号