蚂蚁集团混沌工程技术理论与实践

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 蚂蚁集团混沌工程技术理论与实践 部门:蚂蚁集团-技术风险部-技术蓝军 演讲人:张皓 2023.11
2. 目录 01 02 蚂蚁集团技术 风险概述 蚂蚁集团混沌工 程发展历程 03 04 蚂蚁集团混沌工程 业务和技术实践 蚂蚁集团混沌工程 开源介绍
3. 蚂蚁集团技术风险概述
4. 技术风险整体打法和组织架构 故 障 趋 势 • 历年P级故障数 1000 0 FY18 FY19 FY20 CY20 SRE 整体打法 CY21 Ø 以故障为核心业务指标,驱动体系建设 Ø 技术和运营双体系结合,持续迭代 Ø 数字化免疫体系:高可用 + 资金安全 故障为核心业务指标,驱动技术架构和运营体系建设 Ø 支付宝SRE Ø 消费信贷SRE Ø 财富保险SRE Ø 网商银行SRE Ø …… 平台工程 Ø Ø Ø Ø 运 营 体 系 技 术 架 构 红蓝攻防牵引体系建设 风险架构演进构筑防线 * 仅限内部交流使用,如果需要公开,请联系文档作者 强文化宣导,建心智 重制度建设,审计常态化 监控平台 变更平台 容量平台 演练平台 Ø 应急平台 Ø 风险智能 Ø 技术蓝军
5. 02蚂蚁集团混沌工程发展历程
6. 第一代混沌工程(2015-2017) • 527 光缆事件 --> 蚂蚁集团正式成立技术风险部 Ø 容灾演练常态化进行 • 1218 重大资损故障 --> 资金安全防控成为技术风险部的核心业务之一 Ø 大面积上线资金核对能力,T0/TM/TH/T1核对 Ø 混沌工程团队(技术蓝军)正式成立,以资金安全领域的攻防演练为主要业务 * 仅限内部交流使用,如果需要公开,请联系文档作者
7. 第二代混沌工程(2018-2020) • • • 混沌工程业务持续扩展,组织持续扩大 Ø 资金安全 – 技术蓝军 Ø 高可用&变更 – 技术蓝军 Ø 大数据 – 数据蓝军 Ø 前端/客户端 – 端蓝军 混沌工程技术快速演进 Ø JAVA任意代码注入技术 Ø 日志注入技术 Ø 监控注入技术 Ø 资金表无损注入技术 面向全公司的红蓝攻防活动 Ø 527 & 1218 * 仅限内部交流使用,如果需要公开,请联系文档作者 527 对于每个蚂蚁技术人来说都是一个非常特殊的日 子。2015年5月27日,光纤挖断导致故障的黑天鹅事 件让支付宝成为热搜,这也敲响了我们“敬畏风险” 的警钟,集团把这一天作为纪念日、技术日和创新 日。我们相信可以用技术的力量为客户带来有价值的 改变。 1218 的资金安全故障,警醒着我们要时刻敬畏风 险,保持初心,坚守“客户第一”的理念,不断提升 “客户体验”。同时也促使我们思考如何让风险的不 确定性在持续的优化升级中变得可预知、可预测。因 此我们用技术创新构建风险免疫系统,让每笔业务精 准可靠,让每次体验丝般顺滑!
8. 第三代混沌工程(2021-2023) • 技术风险服务托管 Ø 变更无人值守,容量扩缩容托管,资金核对托管 Ø 混沌工程:演练托管(大规模常态化演练自动化) • 技术风险智能化 Ø 智能监控,智能核对,opsgpt Ø 混沌工程:代码变异 • 故障发生少,但发生多为重大,且存在新故障形态 Ø 混沌工程更加重视云原生基础设施 Ø 内容展示型的故障演练(例如产品页面乱码) Ø 多媒体业务混沌工程(直播等) * 仅限内部交流使用,如果需要公开,请联系文档作者
9. 03蚂蚁集团混沌工程业务和技术实践
10. 资金安全 蚂蚁集团业务稳定性的核心挑战:金融级的稳+互联网的快 交易系统 (服务A) 数据落库 业务流 资金安全 万亿资金 秒级实现核对“账、证、实” 花呗支付系统 (服务B) trade_order trade_amount = 10 资金上下游一致性核对 数据落库 payment_ order pay_amount = 10 ✅ pay_amount = 11 ❌ • 资金表上下游一致性故障 • 资金服务/消息逻辑异常故障(参数,返回值,业务流) * 仅限内部交流使用,如果需要公开,请联系文档作者
11. 资金安全 资金表注入 为什么引入无损注入? • 数据篡改:金额/状态/账号/币种/费率 • 面向生产环境的混沌工程 • 有损注入 & 无损注入 • 控制注入影响,降低恢复 有损注入 成本 交易系统 资金核对系统 Java Agent 无损注入 • 大规模常态化攻防演练 有损和无损各有适用场景 注入: 核对消费数据篡改 注入: 写DB篡改 演练 核对数据采集系统 binlog异步复制 交易DB * 仅限内部交流使用,如果需要公开,请联系文档作者 • 无损:大规模高频率的常态化 注入二方包 • 有损:真实性强,主要用在月 度突袭,527&1218大型活动
12. 资金安全 资金服务注入 • 服务参数,返回值篡改 • 服务代码逻辑篡改(运行时任意代码替换) 混沌工程与大模型的结合: • 业务代码 -> 注入代码 • 主要用于服务参数/返回值的 代码逻辑 注入逻辑1 * 仅限内部交流使用,如果需要公开,请联系文档作者 篡改场景的生成 注入逻辑2
13. 资金安全 “弱点”是指业务风险点的集合,弱点挖掘是用技术手段识别出业务风险点 主要弱点类型 • 资金表 • 资金服务 • 资金消息 关键技术 * 仅限内部交流使用,如果需要公开,请联系文档作者 • JAVA字节码技术 • 程序分析(污点分析) • 模糊测试(fuzzing)
14. 高可用&变更 高可用混沌工程 变更混沌工程 • 机房级容灾演练(同城&异地) • 业务可用性演练(降级,切流,预案等) • 云原生攻防演练(基础资源,K8S组件等) • 技术风险红线:变更三板斧(可监控,可灰 度,可回滚) • 高可用注入技术 变更防御:统一变更核心(收敛所有变更) • 前置防御:什么变更不能做(饭点禁止变 更) 交易系统 日志 下游调用注入 写日志注入 Monitor Agent • 日志 采集 监控数据注入 后置防御:变更后是否有问题(核心业务和 系统指标监控) 监控注入接口 Java Agent • • • 监控系统 变更攻击: • 前置攻击:mock非法变更(时间非法/参 数非法) • 后置攻击:mock正常变更+相关业务/系 统指标异常 * 仅限内部交流使用,如果需要公开,请联系文档作者
15. 04蚂蚁集团混沌工程开源介绍
16. Chaosmeta 系统资源 • CPU,内存,网络,文件,磁盘,进程等 内核资源 • 文件描述符 fd,nproc 等 JVM • JAVA 方法调用延时,抛异常,篡改参数 和返回值 容器 • 容器内系统资源异常,容器状态异常等 Kubernetes • pod/node 的单机故障注入 云原生 • 集群资源异常:Pending Pod 堆积, Completed Job 堆积等 • 云原生资源实例异常:Deployment 实例 副本扩缩容,Pod 实例 Finalizer 注入等 * 仅限内部交流使用,如果需要公开,请联系文档作者
17. THE END THANK YOU!

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-17 14:27
浙ICP备14020137号-1 $Map of visitor$