《Gtest_【安全与压测专场】-《去哪儿网故障演练平台建设》去哪儿网吴凡.pdf》由会员分享,可在线阅读,更多相关《Gtest_【安全与压测专场】-《去哪儿网故障演练平台建设》去哪儿网吴凡.pdf(42页珍藏版)》请在三个皮匠报告上搜索。
1、测无止境 数智共进2024全球软件测试技术峰会北京 12月去哪儿网故障演练平台落地实践演讲人:吴凡2024年12月6日个人形象照片姓名:吴凡去哪儿网测试技术专家,主要负责故障演练平台的建设并参与自动化测试平台和压测平台的维护。未来规划平台介绍应用场景CONTENTS PAGE目录页背景介绍背景介绍1 1传统的测试手段有哪些功能测试目标:验证软件功能需求的实现 模拟用户操作 检查系统的输入、处理和输出方法:关注点:确保每个功能模块按预期工作性能测试目标:评估软件在特定负载下的性能表现 负载测试 压力测试 容量测试方法:关注点:发现性能瓶颈,确保满足用户需求要为用户持续提供可靠的服务,以上测试手段
2、还有哪些欠缺如何测试基础设施异常 中间件挂掉 磁盘、CPU、内存打满 机房网络抖动如何测试依赖异常 接口超时 接口异常如何测试故障定位、恢复能力 监控有效性 预案有效性 研发人员故障排查、定位能力上述场景,属于可靠性测试的范畴可靠性测试目标:验证软件的稳定性和架构设计的可靠性模拟各种基础设施异常评估强弱依赖,降低强依赖比例,做好强依赖保障故障攻防演练、预案演练方法:基础设施出现问题时提供服务的能力架构合理性和抗风险能力故障定位恢复能力关注点:可靠性测试在去哪儿网内部落地为故障演练平台不可靠基础设施复杂的依赖链路故障定位恢复间长基础设施演练强弱依赖演练攻防、预案演练平台介绍2 2故障演练平台架构
3、图 基础能力 控制面 应用场景故障模拟-基于ChaosBlade 多维度故障策略 云原生支持 多语言支持 易于扩展故障模拟-ChaosBlade原理OS层故障注入:CPU、内存、磁盘 I/O 等资源压力:通过调用系统命令或使用工具(如 stress、dd),模拟高负载场景,测试系统在资源紧张情况下的表现。网络延迟、丢包、抖动、断连:使用 tc(Traffic Control)等网络管理工具,控制网络包的传输,模拟各种网络异常。DNS 劫持、端口阻塞:修改网络配置或使用防火墙规则,模拟网络服务异常。应用层面的故障注入:Java 应用:使用 Java Agent 技术,通过字节码插桩,在运行时修改
4、方法的行为,例如抛出异常、延迟方法执行、修改返回值等。故障模拟-自研缺失的故障策略开源策略虽丰富,但仍有缺失,这部分我们进行了自研。通用策略HTTP超时日志拥堵FullGC内部策略应用下线QMQ异常QREDIS爆炸半径控制故障演练的核心是怎么避免因为演练本身造成预期之外的线上问题,核心就是控制好影响范围,也就是所谓的爆炸半径。在演练的每个阶段,我们都有多种安全控制的手段。精准故障注入 接入压测流量 改造开源工具使故障只针对染色流量生效 借助trace进行压测流量染色控制面-流程图 依赖多个内部系统 核心模块流程引擎、计算引擎控制面-演练范围范围选择演练对象3应用、机器、接口1演练环境beta、
5、线上流量来源2人工、压测4演练策略停服、cpu占用率、jvm内存溢出、接口异常、超时控制面-演练编排恢复策略强弱依赖判断条件顺序编排断言串并行熔断控制面-过程可视化演练基础信息进度查看命中结果控制面-演练报告团队维度应用维度应用场景3 3各场景落地情况演练场景成熟度基础设施演练小规模使用强弱依赖演练全司大规模使用攻防演练小规模使用预案演练小规模使用基础设施演练-演练流程演练目的:验证架构韧性,验证突发故障发生时系统容错能力核心动作:研发人员梳理、确认演练对象高可用创建演练场景故障注入(粒度从小到大,机器-机房)稳定性观察(是否正常服务、是否自动扩容等);故障恢复复盘总结演练流程:强弱依赖演练-
6、强弱依赖定义强依赖:对系统核心功能至关重要。失效会导致系统不可用,可能引发 P1/P2 级别故障。示例:订单中心异常,导致订单业务不可用。弱依赖:对系统整体运行影响较小。即使失效,核心功 能仍能正常运作,仅影响非核心功能或用户体验。示例:广告位异常,不应影响订单业务强弱依赖演练-演练流程演练目的:梳理依赖级别,治理不合理依赖,减少依赖不合理导致的故障核心动作:现状盘点:人工标注强弱依赖业务线基于演练平台进行强弱依赖演练验证;开发进行架构调整,改造不合理依赖;再次演练验证;建立