Content 目录 01价值分析 02混沌工程平台 03自动化闭环演练 04攻防演练 01 价值分析 价值分析 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 复杂的系统群 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 机房问题:机房断电、网络不通、网络延迟 机器问题:load高、cpu满、磁盘满、IO满 中间件问题:zk集群故障、mq故障、数据库故障、缓存故障 应用问题:fullGC、服务下线日志拖慢、线程池满 故障类型 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 依赖问题:下游dubbo/http接口延迟、抛异常 混沌工程介绍 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 概念 Insoftwaredevelopment,agivensoftwaresystem'sabilitytotoleratefailureswhilestillensuringadequatequalityofservice—oftengeneralizedasresiliency—istypicallyspecifiedasarequirement.However,developmentteamsoftenfailtomeetthisrequirementduetofactorssuchasshortdeadlinesorlackofknowledgeofthefield.Chaosengineeringisatechniquetomeettheresiliencerequirement. 目标 •建立系统抵御生产环境中发生不可预知问题的信心。 •把不确定变确定。 01、人02、流程 用户:稳定的用户体验 测试:提前发现隐患并降低故障复发率 开发和运维:提升故障应急效率 03、系统 故障治理体系:完善故障治理体系,从被动发现转为主动发现 故障应急:验证报警有效性与及时性, 预案的可行性 混沌工程收益 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 韧性:提升系统容错、容灾能力 基础能力:可监控、可回滚可降级 02 混沌工程平台 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 应用层次架构 实践路径 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 01 关机演练 机房、中间件 实体机虚拟机 02 应用演练 服务依赖故障 03 攻防演练 常态化攻防 混沌文化 应用演练 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 技术选型 组件 支持平台 支持场景 开源 整体性 侵入型 特点 ChAP VM 丰富 否 好 高 实验参照对比 Chaosblade VM/K8S 丰富 是 差(当时只有agent) 低 简单易用、扩展性好、社区活跃 Chaos Mesh K8s 丰富 是 好 无 云原生、社区活跃 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 目标:弱依赖挂掉,主流程不受影响 依赖关系不健康导致的蝴蝶效应 强弱依赖超时是否合理、熔断是否符合预期、异常是否被处理等 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 强依赖太多,能否降级为弱依赖 关键点1:依赖关系收集 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 串行 出问题容易排查 并行 A B C 一次性注入多个故障,快速 手工控制 定制化、灵活 关键点2:故障注入编排 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 01 演练流程 1、服务治理依赖关系收集 2、用户标记依赖关系 3、进行强弱依赖演练 4、问题修复结果确认 02 演练收益 1、混沌平台基础能力建设 2、演练经验、流程沉淀 3、演练系统68个,工时 70PD,发现问题136个 4、认知统一,价值认可 03 问题 1、覆盖面低 2、人工成本高 3、会影响用户 03 自动化闭环演练 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 01 日常周期性 02 低成本 03 高覆盖 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 自动闭环演练-难点 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 如何保证对线上无损自动触发 如何自动断言结果 如何确保命中率 如何确保准确率 自动化测试平台 自动生成测试用例 混沌平台 对压测流量进行识别,只对压测流量注入故障,实现在线上无损 0102 演练03 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 压测标识流量,线上数据和日志能够识别压测标识,进行隔离 压测平台 断言维度 链路入口级别 断言标准 1、对于C端用户,功能有没有受到影响 2、核心数据有没有问题:金额、订单数据 断言方法 1、对入口的结果数据进行对比,核心业务字段对比产生断言结论 2、标记核心监控和核心指标,有问题及时熔断 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 命中概念:故障注入期间,压测流量打到当前依赖 1.0版本 随机case命中率45% 2.0版本 3.0版本 精准case命中率80% 增量演练命中率90% 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 配置关心忽略节点,进行强弱依赖断言 01 入口应用自动化平台获取初始关心忽略节点 02 根据演练结果diff �的差异点,补充 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 03 和开发确认 自动闭环演练-效果 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 覆盖21个核心入口,2800个依赖,不合理依赖96个,演练成本由260PD,降低到10PD 04 攻防演练 攻防演练 背景 •故障处理经验欠缺 01•故障持续时间长、恢复慢 •P1P2故障解决时长超时率62.5% 目标 02 •提升技术同学故障处理能力 •完善故障应急预案体系 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 攻防演练 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 攻击方注入攻击点,防守方排查出异常后上报给攻击方,攻击方确认攻击点是否正确 正确则得分 攻击点编 排 攻击点上 报 攻击终止 积分 复盘 •场景设计:历史高频故障 •防守方定位 排查后,上报给攻击方 •攻击方确认,正确则得分 •防守方定位成功 •超时自动终止 •根据定位时长 •根据故障难易程度 •排名、公示 •问题排查、修复 攻防演练 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 2023DevOps国际峰会暨BizDevOps企业峰会·北京站 Thanks DevOps时代社区荣誉出品