小熊科技|SpringCloud在K8s上的最佳实践—高可用 混沌工程( 二 )


小熊科技|SpringCloud在K8s上的最佳实践—高可用 混沌工程在上面的图中描述了一次完整的故障演练需要经过的步骤 , 其中的最重要的一步的实践是如何“执行预制混沌实验”?因为这一步需要一个专业的工具 , 在业内目前最流行的工具是 Netflix 的 Chaos Monkey 和阿里巴巴开源的 ChaosBlade, 我们接下来主要是介绍如何使用 ChaosBlade 来完成一次演练 。
使用 ChaosBlade 去做ChaosBlade 是阿里巴巴一款遵循混沌实验模型的混沌实验执行工具 , 具有场景丰富度高 , 简单易用等特点 , 而且扩展场景也特别方便 , 开源不久就被加入到 CNCF Landspace 中 , 成为主流的一款混沌工具 。 目前包含的场景有基础资源、应用服务、容器服务、云资源等 。 ChaosBlade 下载解压即用 , 可以通过执行 blade 命令来执行云原生下微服务的演练场景 , 下面是模拟 Kubernetes 下微服务中数据库调用延迟故障 。
小熊科技|SpringCloud在K8s上的最佳实践—高可用 混沌工程使用 AHAS 故障演练平台去做AHAS 故障演练平台是阿里云对外部用户开放的云产品 , 使用方式可参考官方文档 。 其底层的故障注入能力大部分来源于 ChaosBlade 实现 , 另一部分使用自身小程序扩展实现 。 AHAS 相比于 ChaosBlade , 除了简单易用的白屏操作之外 , 还实现了上层的演练编排、权限控制、场景管理等 , 而且还针对微服务新增应用维度演练 , 简化演练成本 , 优化演练体验 。
小熊科技|SpringCloud在K8s上的最佳实践—高可用 混沌工程结尾混沌工程是一种主动防御的稳定性手段 , 体现的是反脆弱的思想 , 实施混沌工程不能只是把故障制造出来 , 需要有明确的驱动目标 。 我们要选择合适的工具和平台 , 控制演练风险 , 实现常态化演练 。 阿里巴巴内部从最早引入混沌工程解决微服务的依赖问题 , 到业务服务、云服务稳态验证 , 进一步升级到公共云、专有云的业务连续性保障 , 以及在验证云原生系统的稳定性等方面积累了比较丰富的场景和实践经验;这一些经验沉淀我们都通过开源产品以及云产品 AHAS 一一对外输出 。