美团数据库攻防演练建设实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 美团数据库攻防演练建设实践
王占全
2. 个人简介
• 曾就职于爱可生、360
• 2021年加入美团,负责金融业务RDS运维,
数据库故障演练平台开发和运营推广
2
3. 大纲
• 01 背景
• 02 建设实践
• 03 落地情况
• 04 未来展望
3
4. 01 背景
4
5. 背景-初识混沌工程
• 混沌工程是在系统上进行实验的学科,目
的是建立对系统抵御生产环境中失控条件
的能力以及信心
• 发展历程:国外先行,国内繁荣
2010
Netflix内部开发
了首个混沌实验
工具Chaos
Monkey
Simian Army成
为首个开源的混
沌工程工具集
2012
2014
混沌工程和故障
注入概念被正式
提出
为复杂系统保驾护航
系统角度 人员角度
提升架构的容错能力与韧性 加深架构理解验证容错能力
降低故障发生率与复发率 提升故障应急效率
提升用户使用体验 主动探究系统潜在问题
Netflix正式提出
“混沌工程理念”
2015
2016
首个混沌工程商
业公司Gremlin成
立
阿里云推出开源工
具Chaos Blade
2019
2020
PingCAP正式开源
Chaos Mesh
5
6. 背景-现状
集群规模线性增长
故障复盘
故障预防
集群访问量增加
稳定性建设
故障种类繁多
单位时间故障影响越来越大
故障恢复
故障发现
故障分析
小概率事件成为可能
6
7. 背景-痛点&作用
主要作用
人工演练痛点
• 爆炸半径控制
复杂
• 遇到问题不能
快速止损
• 无法进行大规
模演练
• 切换能力无法
有效验证
影响范 演练场
围 景
演练规 演练覆
模 盖率
• 演练场景少
• 复杂度高
预知故障对 验证组件防
业务的影响 守能力
验证故障预
• 无法覆盖大
多数集群
• 无法保证常
态化演练
案有效性 验证容灾能
(业务、 力
DBA)
7
8. 02 建设实践
8
9. 建设实践-体系架构
数据库故障演练平台
权限管理
演练评估
故障注入
指标观测
终止注入
智能分析
运营管理
通用故障注入平台
Agent Agent Agent
MySQL MySQL MySQL
9
10. 建设实践-能力全景
图例
成熟
待规划
第三方
进攻方式
场景管理
专项演练
发展
Set化演练
DBA触发
机房演练
RD自助触发
随机演练
周期性演练
故障注入类型/演练经验库
主机故障
链路故障
配置下发失败
CMDB连接异常
网络故障
实例故障
配置下发延迟 服务器宕机 内存故障 主/从宕机 主从延迟
DNS修改超时 CPU故障 磁盘故障 活跃连接多 磁盘打满
连接数打满 CPU负载高
主板故障
网络隔离 网络丢包
网络抖动 网络延迟
平台自身基础能力
风险控制
分析复盘
演练场景推荐
集群拓扑
风险评估
复盘分析
访问链路
故障注入 故障停止 指标观测 自建 人工停止 故障指标 集群编排
异常停止 监控指标 故障编排
正常停止 止损指标 链路编排
通用故障注
入平台
故障编排
依赖的防守能力
高可用
容灾管控
故障诊断
故障兜底
支持的数据库
MySQL
拓扑自愈
支持的数据库组件
数据访问中间件
数据传输
高可用
Binlog Server
10
11. 建设实践-故障注入能力
故障场景
主库宕机
从库宕机
主从延迟
故障编排
并行故障
主库IO夯
从库活跃
连接多
串行故障
并发能力
1min 5000+
中间件HA
11
12. 建设实践-演练流程
演练前:
1 针对演练集群进行风险评估;
2 多级审批,知晓演练风险;
3 演练前创建群,周知演练内容。
扩充风险项
完善风险
(演练后)
演练复盘
演练中:
1 故障注入前集群拓扑复核;
2 高频失败自动熔断后续演练。
风险评估
(演练前)
风险复核
(演练中)
演练后:
1 进行故障清理(如果必要)
2 进行演练复盘,完善风险管控
平台支持
运营数据
一键终止
(演练中)
执行预案
数据库故障演练平台
12
13. 建设实践-爆炸半径控制
半径越大,影响越
大,暴露问题更多
半径越小,影响越小,
暴露问题有限
物理隔离:
场景维度隔离:同一个时间点,单个数据库
集群只能注入单一类型的故障
机器维度隔离:单个集群的故障注入只能选
定一个机器。
流量控制:
中间件按权重下发少部分流量到演练节点
演练前 演练中
•风险检查 •故障终止
•多级审批
演练后
•故障清理
•拓扑恢复
13
14. 建设实践-演练复盘
• 提供故障演练的复盘报告,为 RD/DBA 人工判断演练是否符合预期提供数据支撑
• 演练不符合预期的场景下(包括 RD/DBA 人工反馈和系统自动依赖稳态判定不符合 SLA ),打通 故障演
练平台 和 故障复盘两大产品,自动生成时间线用于人工复盘演练的结果
RD/DBA主动反馈
演练完成
待确认
RD/DBA未反馈
不符合预期
生成复盘信息
稳态校验不通过
稳态校验
稳态校验通过
不符合预期
生成复盘信息
符合预期
14
15. 建设实践-演练复盘
15
16. 建设实践-随机、无通知演练
添加演练计划:
1 集群、场景筛选、演练时间添加;
2 按集群、场景维度检查风险;
3 多级审批,知晓相关人风险。
演练计划
添加
演练任务
生成
演练任务
执行
演练任务生成:
1 按演练计划随机生成演练任务;
故障演练
2 周知相关人(演练时间?No)
演练执行:
数据库故障演练平台
1 复用故障演练流程;
2 演练前可取消,演练中可终止,
演练后自动恢复。
16
17. 建设实践-演练模式对比
演练类型 演练目的性 有人值守 事先周知
常规故障演练 强,验证已知的问题场
景是否会再次造成事故 是 是,明确知道演练时间
及相关风险
随机、无通知演练 中,已知故障场景在有
限集群范围内,是否会
产生问题 否 中,有限集群、场景范
围内,不确定具体演练
时间及相关风险
混沌工程 弱,检验未知的故障场
景是否会造成事故 否 否,完全无周知
17
18. 建设实践-演练运营体系
•接口成功率 •演练集群数 & 次数
•接口耗时 •集群覆盖率 & 达标率
•场景覆盖率 & 达标率
平台能力 演练核心
指标 指标
业务接入
指标
•反馈率
大规模演
练核心指
标
• 核心业务接入情况 •演练规模
•DBA推广情况 •故障注入成功率
•故障注入耗时分布
18
19. 03 落地情况
19
20. 落地情况-演练推广
故障驱动
主动演练
• 特定故障发生导致业务损失,故
障容忍能力建设、验证
• 通过学习故障案例,验证相关故
障场景是否对自己的业务有影响
• 联合所有业务线进行大规模演练,
验证特定场景下的业务容错能力
DBA组织
是否符合预期
20
21. 落地情况-实验环境
风险更高、更贴近生产故障
线上真实环境
线上演练环境
线下环境
线下测试环境,主要
用来发现问题后进行
线上业务集群环境,
结合具体业务进行的
线上演练环境,主要
用来进行大规模容灾 故障演练,更加真实、
全面的验证故障影响
演练,验证防守组件
综合能力 及预案有效性
相关预案建设、验证
21
22. 落地情况-演练规模
规模越大,影响范围越大
单集群演练,主要
验证故障影响及预
案有效性
小、中规模集群演
练,规模化验证特
定故障场景对业务
的影响
大规模演练集群演
练,验证容灾能力,
相关防守组件的防
守能力
22
23. 落地情况-场景 & 等级
风险更高、收益更大
高等级集群
低等级集群
高等级集群演练,
使故障演练发挥更
故障影响更高(无损->有损)
主库宕机
主从延迟
从库宕机
验证业务影响,
验证业务影响,
验证预案有效性
从重要程度较低的
重要的作用
集群开始,建立故
障演练的信心
验证业务影响,
切换的RPO及
RTO是否符合预
期
高可用的RTO
是否符合预期
23
24. 落地情况-演练运营数据
常规故障演练
随机无通知演练
24
25. 落地情况-演练运营数据
大规模故障演练
25
26. 落地情况-防守体系能力验证
有助于发现防守组件问题,辅助修复验证
周期性、大规模的故障演练,整体提升防守能力
防守
组件
核心指标
高可用
RTO、RPO
弹性伸缩
切换能力
弹性扩容
决策能力
并发能力
观测
及时性
准确性
26
27. 落地情况-业务演练收益
一、主从延迟预案
验 二、主从延迟,业
务出现死锁
•预案建设:核心业务 •发现问题:对于实时
通过线上主从延迟演 性要求高的请求,未
练,建设针对主从延 兼容主从延迟
迟的预案并验证
三、主库宕机,高
可用服务生效、业 四、主库宕机,新
主库机房选举策略 五、大规模从库宕
机,数据库底层服
务未恢复 不符合预期 务未能全量观测和
•发现问题:连接保活, •发现问题:选举策略
实时处理
你还在使用 受AZ优先策略影响, •发现问题:大规模故
autoReconnect? 未选择最合适的新主 障场景下,底层服务
库 处理的性能存在瓶颈
27
28. 04 未来展望
28
29. 混沌工程成熟度模型
差
一般
良好
优秀
卓越
对比
来源:混沌工程成熟度模型(CEEM)标准解读-信通院
29
30. 混沌工程成熟度等级
开展程度
• 已经在一些核心部门开展了故
障演练
落地收获
• 验证故障影响
• 提升故障容忍度
• 其他稳定性建设的评估
评级
• 基础级
来源:混沌工程成熟度模型(CEEM)标准解读-信通院
30
31. 具体规划
多样性
完善故障演练体系,
降低故障演练成
本
智能化
• 引入更多观测指
• 丰富演练场景
标
建设稳态系统
• 链路故障注入能
故障自动终止能力
力建设
低成本
实现线上业务集群
可观测
建设演练推荐能力
演练的高覆盖率,
发现更多隐患
常态化
31
32. Q&A
32
33. 更多技术干货
微信扫码了解美团招聘岗位
欢迎关注 “ 美团技术团队 ”