首页 > 其他分享 >混沌实施工具ChaosBlade实践

混沌实施工具ChaosBlade实践

时间:2023-04-23 14:01:33浏览次数:48  
标签:场景 chaosblade 混沌 实践 chaos 实验 ChaosBlade CPU


项目介绍

ChaosBlade 是阿里巴巴开源的混沌工程原理和混沌实验模型的实验注入工具。

ChaosBlade 使用比较简单,而且支持丰富的实验场景,场景包括:

  • 基础资源:比如 CPU、内存、网络、磁盘、进程等实验场景;
  • Java 应用:比如数据库、缓存、消息、JVM 本身、微服务等,还可以指定任意类方法注入各种复杂的实验场景;
  • C++ 应用:比如指定任意方法或某行代码注入延迟、变量和返回值篡改等实验场景;
  • Docker 容器:比如杀容器、容器内 CPU、内存、网络、磁盘、进程等实验场景;
  • 云原生平台:比如 Kubernetes 平台节点上 CPU、内存、网络、磁盘、进程实验场景,Pod 网络和 Pod 本身实验场景如杀 Pod,容器的实验场景如上述的 Docker 容器实验场景;

将场景按领域实现封装成一个个单独的项目,不仅可以使领域内场景标准化实现,而且非常方便场景水平和垂直扩展,通过遵循混沌实验模型,实现 chaosblade cli 统一调用。目前包含的项目如下:

  • 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

获取 chaosblade 最新的 release 包,目前支持的平台是 linux/amd64 和 darwin/64,下载对应平台的包。

https://github.com/chaosblade-io/chaosblade/releases

下载完成后直接解压,不用编译。

使用 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 使用率

混沌实施工具ChaosBlade实践_Java

可以看出cpu已经飙升上来了。此时命令已经生效,停止混沌实验,执行:

./blade destroy 1f0baf517cdf8979

返回以下结果,表示停止实验成功

{"code":200,"success":true,"result":{"Target":"cpu","Scope":"","ActionName":"fullload","ActionFlags":{},"ActionPrograms":null}}

再去观察 CPU 情况,CPU 负载已回到正常状态:

混沌实施工具ChaosBlade实践_Pod_02

这样一个增加机器cpu负载就完成了。

标签:场景,chaosblade,混沌,实践,chaos,实验,ChaosBlade,CPU
From: https://blog.51cto.com/u_16084838/6217520

相关文章

  • Java最佳实践
    计算机编程中,最佳实践是许多开发人员遵循的一组非正式规则,以提高软件质量、可读性和可维护性。在应用程序长时间保持使用的情况下,最佳实践尤其有益,这样它最初是由一个团队开发的,然后由不同的人组成的维护团队进行维护。本教程将提供Java最佳实践的概述,以及每个条目的解释,包括Jav......
  • 原型设计工具比较及实践
    目录一、原型设计工具比较1.墨刀2.Axure3.Mockplus二、原型设计实践1.主题名称2.功能3.界面设计考虑因素4.切换界面5.界面切换流程图6.界面交互演示一、原型设计工具比较1.墨刀适用领域     首先是国产的,是北京一家公司设计的。墨刀是一款在线原型设计与协同工具,借助墨......
  • 从应用看火山引擎 AB 测试 (DataTester) 的最佳实践
     更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群本文将从外部用户的角度介绍A/B测试平台的最佳实践。分享分为四部分,首先整体介绍A/B测试的应用场景,接下来结合字节内部和外部的一些应用来介绍各行业的最佳实践,最后分享在实际工作过程中,为......
  • 从应用看火山引擎 AB 测试 (DataTester) 的最佳实践
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群本文将从外部用户的角度介绍A/B测试平台的最佳实践。分享分为四部分,首先整体介绍A/B测试的应用场景,接下来结合字节内部和外部的一些应用来介绍各行业的最佳实践,最后分享在实际工作过程中,......
  • 原型设计工具比较及实践
    原型设计工具比较墨刀使用领域:墨刀有PC端、手机端、网页版等各种版本,适合项目经理设计师,开发人员等使用。优点:墨刀自带了很多成熟的组件,例如键盘,开关,手机模型等,使用起来很方便。墨刀的产品界面简洁易用,上手快,学习成本和切换成本低。墨刀的APP原型可以下载到手机里,方便用户......
  • 原型设计工具实践及比较
    目录一.原型设计工具比较1.墨刀适用领域优点缺点2.Axure适用领域优点缺点3.Mockplus适用领域优点缺点二.原型设计1.主题名称2.功能3.界面设计考虑因素4.切换界面(1)主页面(2)天气(3)音乐(4)相册(5)闹钟5.界面切换流程一.原型设计工具比较1.墨刀适用领域浏览器注册使用,Windows、Mac桌面客......
  • kafka实践(十五): 滴滴开源Kafka管控平台 Logi-KafkaManager研究
    目录调试环境搭建前端调试环境后端调试环境功能架构工具理解应用开发人员kafka/管控开发人员kafka/管控运维人员部署验证windows环境下的部署/调试环境linux环境下生产使用后续 调试环境搭建前端调试环境github克隆比较慢gitee很快,采取前后端分离架构(springboot+reactJS+Typescrip......
  • 原型设计工具比较及实践
    一.原型设计工具比较及实践1.墨刀    墨刀(ckingBot)磨刀刻石科技有限公司旗下的一款更偏向于“交互向”的在线原型设计与协同工具。墨刀致力于简化产品制作和设计流程,采用简便的拖拽连线操作,作为一款在线原型设计软件,墨刀支持云端保存,实时预览,一键分享,及多人协作功能,简单......
  • 原型设计工具比较及实践
    目录一、原型设计工具比较1.墨刀2.axure3.Mockplus二、原型设计1.主题2.主要功能3.界面设计考虑因素(登录部分)4.页面切换5.页面切换流程一、原型设计工具比较1.墨刀适用领域墨刀是一款功能强大的原型设计工具,适用于设计师、开发者、产品经理等多个领域。优点1.界面简......
  • 原型设计工具比较及实践
    目录一、原型设计工具比较墨刀AxureMockplus二、原型设计1.主题名称2.功能3.界面设计考虑因素4.切换界面5.界面切换流程一、原型设计工具比较1.墨刀适用领域:适合移动端、PC端等的用户体验设计,支持UI设计、交互设计、动效设计等。优点:。界面简单易用,可以快速实现初稿设计......