混沌实施工具ChaosBlade实践
项目介绍ChaosBlade 是阿里巴巴开源的混沌工程原理和混沌实验模型的实验注入工具 。
ChaosBlade 使用比较简单 , 而且支持丰富的实验场景 , 场景包括:
- 基础资源:比如 CPU、内存、网络、磁盘、进程等实验场景;
- Java 应用:比如数据库、缓存、消息、JVM 本身、微服务等 , 还可以指定任意类方法注入各种复杂的实验场景;
- C++ 应用:比如指定任意方法或某行代码注入延迟、变量和返回值篡改等实验场景;
- Docker 容器:比如杀容器、容器内 CPU、内存、网络、磁盘、进程等实验场景;
- 云原生平台:比如 Kubernetes 平台节点上 CPU、内存、网络、磁盘、进程实验场景 , Pod 网络和 Pod 本身实验场景如杀 Pod , 容器的实验场景如上述的 Docker 容器实验场景;
- chaosblade:混沌实验管理工具 , 包含创建实验、销毁实验、查询实验、实验环境准备、实验环境撤销等命令 , 是混沌实验的执行工具 , 执行方式包含 CLI 和 HTTP 两种 。 提供完善的命令、实验场景、场景参数说明 , 操作简洁清晰 。
- chaosblade-spec-go: 混沌实验模型 Golang 语言定义 , 便于使用 Golang 语言实现的场景都基于此规范便捷实现 。
- chaosblade-exec-os: 基础资源实验场景实现 。
- chaosblade-exec-docker: Docker 容器实验场景实现 , 通过调用 Docker API 标准化实现 。
- chaosblade-operator: Kubernetes 平台实验场景实现 , 将混沌实验通过 Kubernetes 标准的 CRD 方式定义 , 很方便的使用 Kubernetes 资源操作的方式来创建、更新、删除实验场景 , 包括使用 kubectl、client-go 等方式执行 , 而且还可以使用上述的 chaosblade cli 工具执行 。
- chaosblade-exec-jvm: Java 应用实验场景实现 , 使用 Java Agent 技术动态挂载 , 无需任何接入 , 零成本使用 , 而且支持卸载 , 完全回收 Agent 创建的各种资源 。
- chaosblade-exec-cplus: C++ 应用实验场景实现 , 使用 GDB 技术实现方法、代码行级别的实验场景注入 。
下载完成后直接解压 , 不用编译 。
使用 chaosblade进入解压后的文件夹 , 可以看到以下内容:
├── bin│├── chaos_burncpu│├── chaos_burnio│├── chaos_changedns│├── chaos_delaynetwork│├── chaos_dropnetwork│├── chaos_filldisk│├── chaos_killprocess│├── chaos_lossnetwork│├── jvm.spec.yaml│└── tools.jar├── blade└── lib└── sandbox
其中 blade 是可执行文件 , 即 chaosblade 工具的 cli , 混沌实验执行的工具 。 执行 ./blade help 可以查看支持命令有哪些执行第一个混沌实验我们拿 CPU 满载(CPU 使用率 100%) 演练场景举例(!!注意 , 切勿在生产系统机器上执行) , 执行以下命令实施实验:
./blade create cpu fullload
执行结果返回:{"code":200,"success":true,"result":"1f0baf517cdf8979"}
通过 top 命令查看 CPU 使用率文章插图
可以看出cpu已经飙升上来了 。 此时命令已经生效 , 停止混沌实验 , 执行:
./blade destroy 1f0baf517cdf8979
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 初探 iOS 自动化工具——快捷指令
- 微软官方数据恢复工具即将更新:更易于上手 优化恢复性能
- 免费好用:这款Win10系统增强工具不要错过(二)
- Flipper Zero将于下月发货:为极客打造的开源多功能小工具
- 比亚迪关联公司公开这项专利 能够解决交通工具能量补充问题
- 微软推实用磁盘工具DiskSpace 帮用户分析文件占用空间
- 元旦休假突发紧急办公 这款小工具足不出户让「远程办公」So easy
- 英特尔推出可检测代码错误的ControlFlag机器编程工具
- 阿里巴巴实施“二选一”涉垄断被调查!回应称目前业务正常
- Comcast宣布明年开始为美国家庭宽带用户实施1.2TB流量上限