阿里云百万级容器服务线上红蓝对抗工具平台演进之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 阿里云百万级容器服务 线上红蓝对抗演进之路 郑妍
2. 讲师简介 • 2015加入阿里巴巴 请插入 您的照片 郑妍 测试开发专家 ee.msup.com.cn • 技术保障部门agent运维产品测试体系建 设 • 研发效能部门IP管理产品持续集成、压测、 容错 • 阿里云负责阿里云容器服务产品稳定性, 主攻红蓝演练,持续集成,混沌工程等 方向
3. 光缆被挖 删库跑路 不可抗力 机房断电 当我们在讨论故障时,我们在讨论什么 停服 ee.msup.com.cn 客户投诉 资损
4. 当我们想提前规避故障时,我们面临着… 历史故障影响大 影响面广 内部承载了电商、广告、高德、 饿了么阿里集团几乎全部在线 一旦出现故障,预案不完善, 无差别打击 业务、以及大数据离线业务的 运行资源 易出现雪崩效应 kubelet历史bug引起的大 上下文复杂 规模pod被误删 网络,存储,os/内核,ecs/物理机 管控组件历史故障引起的 大规模vip误删 技术架构迭代频繁 容器技术,云原生技术风起云涌,架构四世同堂 集团上云,影响上下游链路 ee.msup.com.cn
5. 整体保障思路 质量活动 代码门禁 安全生产 端到端 质量保障 测试左移: 全面发现问题,及早修复 ee.msup.com.cn 故障演练 生产巡检 测试右移: 真实场景,及时发现,降低影响
6. 实施策略 演练形式 演练能力 工具建设 基础能力 ee.msup.com.cn 常态化演练 混沌化故障注入 演练流程工具建设 演练场景模型建立 红蓝军演练 生产突袭演练 生产突袭隔离能力 监控告警能力建设 应急处理流程建设 演练基础环境建设
7. 环境建设 风险更高 规模更大 更接近生产故障 演练频次降低 生产环境 金丝雀环境 业务测试环境 线下测试 红蓝军演练 常态化演练 安全生产灰度环 真实突袭 境 控制爆炸半径 结合业务 更大规模 提前发现问题 至少区分生产环境和测试环境,环境建设考虑 隔离性、真实性 ee.msup.com.cn
8. 体系建设-演练场景模型 管控层组件 扩展组件 数据存储 节点层 整体集群 应用通用故障 应用通用故障 应用通用故障 容器故障 网络故障 Pod故障 Pod故障 kubelet故障 外部依赖故障 证书故障 机器故障 限流容灾 数据故障 重启,宕机,磁 盘,load高,内 核异常 进程挂 机器故障 磁盘故障 外部依赖故障 云盘 SLB ECS open API 依赖配置丢失 依赖配置错误 Vpc故障 Pod重启 Pod杀死 证书故障 证书过期 证书丢失 数据整体丢失 部分数据错乱  场景来源:历史故障,FEMA分析,社区经验  存量场景快速平铺,增量场景快速搭建 ee.msup.com.cn 批量误删,批量 重启,批量驱逐, 异常流量,集群 降级,集群误删
9. 体系建设-1-5-10快恢体系建设 监控覆盖 故障定位 应急快恢 定位能力 快恢能力 链路跟踪 应急预案 工单流转 日志采集 容灾 应急处理 指标大盘 限流回滚 应急处理 风险识别 故障场景 风险来源 故障场景 发现和应急能力 业务风险 故障分类 监控规范&指标定义 系统风险 故障等级 监控系统建设 资损风险 故障录入 预警系统建设 演练验收 场景定义-> 场景录入->演练1-5-10快恢->复盘优化 ee.msup.com.cn 系统能力度量 高可用能力 SLO达标情况
10. 体系建设-演练验收工具 恢复检测 环境重置 故障注入 start 告警检测 执行预案 监控平台 预案平台  告警收集:普罗米修斯监控,sls监控,云监控等  通用化插件:云助手,k8s,ecs,slb等故障注入能力,巡检检查能力  演练流程灵活配置能力,环境锁能力,模板化配置能力 ee.msup.com.cn end
11. 光缆被挖 删库跑路 不可抗力 机房断电 • 建设了应对断电、光缆被挖的切流能力,上个月演练还可用,这个月突然失效了 • 不可抗力、删库发生在半夜三更,由于无人响应导致业务长时间受损,资损严重 能力衰退 ee.msup.com.cn 响应应急
12. 实施策略 生产突袭 常态化演练 流程工具演 手工演练 练 发现问题 定期执行 高可用能力建 设 ee.msup.com.cn 无人值守 自动发现自动处理 发布卡点 真实演练 关注值班响应
13. 混沌工程 “在分布式系统上进行实验的学科,目的是建立对系统承受生产环境中湍 流条件能力的信心” WHAT & WHY 固定场景 固定时间 固定范围 场景随机 时间不定 范围不固定 无人值守 更接近真实故障发生情况 主动探寻系统问题 • 单个场景内部混沌:注入范围不固定 HOW • 场景之间混沌: • 发生时间随机 • 实验内容随机 • 实验对象随机 ee.msup.com.cn Result • 前后版本兼容性问题 • 偶发性系统问题 • 累积性系统问题
14. 常态化演练的落地 演练开关 演练空间白名单 演练时间范围 演练时间过滤,演练任务范围过滤,演练开关校验 定 时 调 度 单个演练任务内部状态机 currentTime>nextDrillTime 初始态 nextDrillTime=CalNextTime() 数据库 ee.msup.com.cn 监 控 系 统 运行态 isFinished=true 结束态 日志服务 预 案 系 统
15. 常态化演练实施成果 范围&过程 涵盖产品 核心云产品 200+场景 执行频次 1000+/月 问题发现 93个问题发 现 17个告警问题 解决 43个预案优 化 演练工具 自动获取告 警及恢复时 长 演练执行 混沌化 灵活适配 快速搭建 ee.msup.com.cn
16. 生产突袭-应急机制 • 监控告警系统 • 应急轮班人员 故障报警 • 系统日志 • 链路跟踪系统 • 指标大盘定位 告警 1min 定位 5min • 应急预案 • 限流扩容 • 回滚恢复 恢复 10min 生产实战是检验系统能力的验金石 ee.msup.com.cn
17. 生产突袭-突袭机制1 ee.msup.com.cn
18. 生产突袭-突袭机制2 演练策略 • 云原生BU红蓝对抗型演习,按照产品联合排名 • 聚焦高可用场景,不区分业务,演练题目来源历史故障和系统风险 • 演练包含有损和无损攻击场景,有损场景严格控制爆炸半径 演练目标 • 1-5-10目标持续牵引,主要衡量 发现时长 和 恢复时长 • 变更故障发现&防控能力检验,目标防御有效率90% 突袭演练新特点 • 演练力度升级:频率提升为每季度一次大型生产突袭,每次三轮 • 演练形式更接近生产:从已知场景已知时间触发->场景圈定大范围,随机时间触发 • 突袭范围扩大:爆炸半径扩大,产品范围扩大 ee.msup.com.cn
19. 生产突袭实施成果 范围&过程 问题发现 演练工具 ee.msup.com.cn 10+云产品 70+个场景 12轮生产突袭 30+问题发现 告警问题得以 优化 推动部分产 品建立轮班 制度 规避生产演 练溢出风险 层层圈定受 害内部预演 熔断 无预期外影 响
20. 常态化演练实施案例 常态化演练规则设置: • 场景集合选取节点、数据 层、服务层等核心场景 • 每个场景平均48h一次, 时间随机 • 场景执行顺序随机 触发条件 价值 复盘改进 ee.msup.com.cn 演练失败告警: 宕机重启后, 节点组件未重 新拉起 SRE等介入排查: 查看组件日志-> 内核相关报错-> 联系内核团队-> 确认为灰度版本问题 内核灰度版本机器,多次重启触发 触发条件具备一定门槛,需要常态化演练中的随机调 度选取机器,多次触发故障,非稳定复现问题 内核增加链路case; 灰度版本在演练环境灰度时间优化并卡点
21. 生产突袭演练实施案例1 演练场景 预期 演练问题 根因 复盘改进 ee.msup.com.cn 某controller所在ecs全部宕机 有告警发现,自愈迁移组件发现并标记,使得controller自动 迁移重建,恢复服务 无告警发现 告警问题: 监控组件在集群内部署,与controller同机,同时挂掉后,没 有兜底发现措施,导致监控告警完全失效 增加黑盒巡检,监控告警增加集群外探测
22. 生产突袭演练实施案例2 演练场景 某controller所在ecs全部宕机 演练问题 无法漂移自愈 根因 复盘改进 ee.msup.com.cn 资源水位问题 K8s集群addon资源池满,无法迁移 增加资源,增加资源池水位探测
23. 生产突袭演练实施案例3 演练场景 某controller所在ecs全部宕机 演练问题 无法漂移自愈 根因 复盘改进 ee.msup.com.cn 预案未覆盖边界情况 负责迁移自愈的 node life cycle组件与controller同机, 导致死锁,无法迁移 node life cycle组件多副本部署,增加探测,人工预案接入
24. 案例总结 • 常态化演练: • • • • 快速发现新增预案问题/告警失效 混沌化手段探索系统偶发问题/累积问题 高可用能力保鲜 结合发布卡点拦截问题上线 • 生产突袭: • • • • ee.msup.com.cn 环境更真实 锻炼系统负责人进行生产问题快速响应 锤炼故障定位诊断能力 增加用户信心,推动提升系统高可用
25. 整体总结 发现能力提升 告警未发现故障-> 能发现生产问题-> 分钟级发现-> 提前预警先于用户发现 快恢能力 无预案-> 人工预案-> 半自动化预案-> 系统化预案 ee.msup.com.cn 定位能力 生产问题难以定位-> 有日志收集供问题排查-> 链路追踪系统精准定位 体系建设  常态化演练:持续探索系统 问题,高可用能力保鲜  生产突袭:不断锤炼应急能 力,诊断能力
26. 下一步启示 • 容器服务安全生产白皮书 • 包含内部演练经验,高可用相关经验,筹备中 • 容器服务高可用演练工具包 • 在阿里云高可用产品ahas中提供,为云上用户提供专 家经验工具包,高可用推荐方案,结合产品能力提升 用云稳定性 ee.msup.com.cn
27. 线下交流钉钉群 ee.msup.com.cn
28. 关注msup公众号 获取更多工程效能实践案例

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-16 07:00
浙ICP备14020137号-1 $Carte des visiteurs$