盗梦未来,浙江移动线上混沌工程的实践之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 盗梦未来,浙江移动线上混沌工程的实践之路 浙江移动 史军艇
3. 目录 浙江移动 史军艇 • 浙江移动 SRE团队 • “盗梦”演练平台 负责人 • 专注稳定性体系建设 01 浙江移动在云原生架构下的稳 定性挑战 02 传统企业落地混沌工程的步骤 03 混沌平台产品化演进 04 落地场景及案例分享 05 持续演进及思考
4. 运营商系统的特点及挑战 用户规模 底层异构 • • • • 业务长尾 IOT拓展,使得用户规模指数增长 底层基础资源种类复杂,国产化硬件替代 业务架构复杂,存在长尾效应,垂直烟囱的紧耦合 秒杀、直播等新型营销模式的需求扩充 围绕技术架构演进和数字化转型,卸下传统企业繁重的历史包袱 新型需求
5. 浙江移动云原生演进历程 2013 2009 小型机下线,完成 100%去I 研究并试点AI技术 研究并推广DCOS技术 开始研究云计算技术 2016 2014 研究并推广数据库一 体机 2020 2017 研究并推广微服务架 构 2019 完成核心系统全面容器化 完全核心数据库去IE 完成核心系统全面微服务化 灰度发布 数据库去O ARM国产化
6. 为什么要使用混沌工程 云原生应用架构自变量 • • • • • • • • 基础设施出现问题对业务的影响 IAAS服务集群出问题对业务的影响 PAAS服务集群出问题对业务的影响 微服务组件出问题对业务的影响 多可用区部署、泳道隔离机制 自动扩缩容机制 服务注册、依赖问题 运维监控平台问题 ...... 没有一个架构师可以完全掌握所有的调用关系,实践是检验真理的唯一手段
7. 混沌工程的意义 三 对客户 对公司 故障驱动 二 “故障驱动” 对团队 一 提升用户感知 扩大用户基数 避免发生重大故障 抵御“黑天鹅”事件 减少收益损失 投资回报率最大化 提升组织技术能力 提升团队作战能力 打造1-5-10 人类总是幻想能穿越时空去修复历史故障 混沌工程提供了可能! 图片引自《盗梦空间》
8. 目录 01 浙江移动在云原生架构下的稳 定性挑战 02 传统企业落地混沌工程的步骤 03 混沌平台产品化演进 04 落地场景及案例分享 05 持续演进及思考
9. 落地步骤-分层故障注入能力 故障注入 单系统应用节点 单系统应用节点 数据节点 数据节点 组件节点 组件节点 控制节点 控制节点 管理平台 应用架构 无间 ...... 北斗 故障注入 故障注入 ...... 故障注入 故障注入 PAAS服务集 群 IAAS服务集 群 网络设备 物理机/虚机 istio、API网关、缓存、消息、ET Mesos+marathon DCOS kubernetes 神舟 防火墙 交换机 X86 SLB 故障注入 DNS ARM 有序的注入层次,无序的注入结果! ...
10. 落地步骤-历史故障画像 故障复盘机制 历史总会惊人的相似,前车之鉴是最容易获得的高价值结果
11. 落地步骤-实验场景的系统化探索 高价值场景为导向 混沌工程 L4 全链路异常识别能力 架构治理 全 对抗/纸牌 平面 级逃 生能 力 P1 容 量 集群 转移 容错 能力 P2 性 能 服务 韧性 能力 全链 路异 常识 别 P4 P3 监 控 告 警 P0 日 志 调 用 链 架 构 等 级 流控、熔断、异步化 等微服务韧性能力 所有节点可宕 机、可重启 L2 L3 快 移 故障画像/架构感知 混沌工程 具备逃生泳道、 平面切换能力 L1 逃 以泳道逃生、任意节点可 重启可宕机为出发点,用 失效影响分析(FEMA) 自底而上,探寻所有具有 高频发生率、重大风险的 故障点。
12. 落地步骤-多可用区、流量调度、演练平面 接入层 流量调度能力 可用区N 0.1演练平面 可用区一 可用区二 页面网关 页面网关 页面网关 页面网关 BFF BFF BFF BFF 中台网关 中台网关 中台网关 中台网关 微服务 微服务 微服务 微服务 DB DB DB DB ... • • • 正常可用区进行晚上大 型演练 0.1演练平面白天无间断 演练 时间、空间最佳爆破半 径控制法则
13. 落地步骤-流量回放压测 • 通过流量回放压测,在任意可用区、任何时刻都可以发起生产流量,来验证故障注入的效果
14. 落地步骤-监控矩阵、分层自愈 业务数据级 (半自动、辅助决策) 应用服务级 (应急、半自动、辅助决策) 平台网元级 (常规、自动决策) 基础设施级 (常规、自动决策) 可观测能力和自愈能力越强,发现的意外惊喜会更多!
15. 目录 01 浙江移动在云原生架构下的稳 定性挑战 02 传统企业落地混沌工程的步骤 03 混沌平台产品化演进 04 落地场景及案例分享 05 演进思路及方向
16. 产品化演进-总体架构 业务形态 日常演练 联合演练 红蓝对抗 自动化演练 平台能力 准备 评估 执行 观测 清场 报告 注入框架 cmcc-chaos chaosblade 基础设施 IDC机房 chaos mesh
17. 产品化演进-沉淀演练经验库 • • 基础-进阶-高级的演练 体系 8大场景主题
18. 产品化演进-分级演练和对抗演练 • • • • • MTTR、MTBF P1-P4 演练星盘 场景热度 IAAS、PAAS、SAAS场 景分类 ......
19. 目录 01 浙江移动在云原生架构下的稳 定性挑战 02 传统企业落地混沌工程的步骤 03 混沌平台产品化演进 04 落地场景及案例分享 05 演进思路及方向
20. 实践案例-容器云 案例一:分布式任务调度平台孤儿容器实验 实验目的: 验证在容器云平台调度组件出异常时,容器云平台本身以及 ET分布式调度框架是否具备重复任务的容错机制,保证业务 的准确性。 实验结果: containerd进程出现资源异常重启之后,无法调度到历史的 容器id,这样就导致分布式调度平台去销毁某个任务容器时, 调用marathon、mesos接口成功,但是最终调用dockerAPI失 败,导致老的容器销毁失败,结果是ET平台又重新拉起一个 相同任务的容器产生批量重复数据。 实验成果: (1) 开源组件BUG:容器云组件版本开源bug导致containerd子进程异常重启的场景下无法识别之前拉起的容器,目前已替换所有bug版本。 (2) 容器平台查杀能力:通过自研改进来增强平台的抵抗能力,在孤儿容器产生的第一时间进行自毁查杀。 (3) 应用平台设计规范:在应用研发流程中,完善分布式调度平台增加应用心跳注册的机制。
21. 实践案例-应用链路 案例二:多服务中心耦合性的雪崩实验 实验目的: 应用链路的设计是否满足高内聚低耦合原则,通过中心化服 务个别节点异常后可能引发的雪崩效应验证,另,自愈模型 是否可以把雪崩场景控制在业务无感知的范围内。 实验结果: 个别实例的性能低下,最终导致了5个实例左右的实例非健 康,即在雪崩效应的萌芽期,通过无间平台自愈恢复。 实验成果: (1) 研发链路优化:通过分析业务调用链,驱动研发进行更高效的调用改造,以此来提升服务性能。 (2) SRE自愈模型优化:改进运维平台的自愈模型,提升实例的健康度精准诊断,使得可以应对生产中绝大多数的性能恶化场景。
22. 实践案例-组件依赖 案例三:redis集群节点内存耗尽实验 实验目的: redis组件集群部分节点内存溢出产生异常后,观察是否 会影响业务的正常使用。 实验结果: redis集群其中一个主节点进行OOM-KILL后,网关的主体 服务无法有效地自动切换到所在的备用节点,最后通过快 速重启故障redis节点进行恢复,导致影响业务5分钟。 经查,由于主体服务中redis客户端代码bug,屏蔽了自动 识别redis节点状态的配置引起。 实验成果: (1) 客户端代码优化:改造redis客户端代码,使得可以自动识别redis节点的可用状态,并完成切换。 (2) 应急团队锤炼:redis节点OOM时,完成分钟级的发现并恢复。 (3) 逃生配置失效:红军在为屏蔽单平面redis的异常,对抗中做了可用区切换,结果意外发现array的配置未同步,使得可用区成为假平面
23. 目录 01 浙江移动在云原生架构下的稳 定性挑战 02 传统企业落地混沌工程的步骤 03 混沌平台产品化演进 04 落地场景及案例分享 05 演进思路及展望
24. 演进思路 • • • • • • 丰富传统行业特性化的演练场景 完善云原生演练能力,扩充service mesh的高价值场景,以应对大 规模service mesh应用实施 提升平台的集成能力,适配各类框架,降低接入成本,统一paas 标准 继续扩展可视化演练能力,建立完善的数字化演练体系及架构体 系 自动化演练能力赋能微服务设计,建立从CI/CD开始的演练流水线, 通过自动化演练的故障标记,结合aiops模型,做高精度故障抵御、 自动决策
25. 未来展望 蓝军战略 混沌工程 盗梦未来,始终跑在真正的故障之前,融合云原生自动驾驶技术,让代码对抗代码 敏捷为中心的内驱力,为企业需求迭代、业务模式创新按下快进键 从技术价值迈向商业价值
26.

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