同步操作将从 simazilin/chaosblade 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
ChaosBlade 是阿里巴巴开源的一款遵循混沌工程原理和混沌实验模型的实验注入工具,帮助企业提升分布式系统的容错能力,并且在企业上云或往云原生系统迁移过程中业务连续性保障。
Chaosblade 是内部 MonkeyKing 对外开源的项目,其建立在阿里巴巴近十年故障测试和演练实践基础上,结合了集团各业务的最佳创意和实践。
ChaosBlade 不仅使用简单,而且支持丰富的实验场景,场景包括:
将场景按领域实现封装成一个个单独的项目,不仅可以使领域内场景标准化实现,而且非常方便场景水平和垂直扩展,通过遵循混沌实验模型,实现 chaosblade cli 统一调用。目前包含的项目如下:
你可以从 Releases 地址下载最新的 chaosblade 工具包,解压即用。如果想注入 Kubernetes 相关故障场景,需要安装 chaosblade-operator,详细的中文使用文档请查看 chaosblade-help-zh-cn。
chaosblade 支持 CLI 和 HTTP 两种调用方式,支持的命令如下:
blade p jvm --process business
。如果挂载成功,返回挂载的 uid,用于状态查询或者撤销挂载。blade revoke UID
blade create [TARGET] [ACTION] [FLAGS]
,比如实施一次 Dubbo consumer 调用 xxx.xxx.Service 接口延迟 3s,则执行的命令为 blade create dubbo delay --consumer --time 3000 --service xxx.xxx.Service
,如果注入成功,则返回实验的 uid,用于状态查询和销毁此实验使用。blade destroy UID
blade status UID
或者 blade status --type create
blade server start -p 9526
,执行 CPU 满载实验:curl "http:/xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"
以上命令帮助均可使用 blade help [COMMAND]
或者 blade [COMMAND] -h
查看,也可查看新手指南,或者上述中文使用文档,快速上手使用。
如果想不下载 chaosblade 工具包,快速体验 chaosblade,可以拉取 docker 镜像并运行,在容器内体验。
操作步骤如下: 下载镜像:
docker pull chaosbladeio/chaosblade-demo
启动镜像:
docker run -it --privileged chaosbladeio/chaosblade-demo
进入镜像之后,可阅读 README.txt 文件实施混沌实验,Enjoy it。
chaosblade-operator 项目是针对云原生平台所实现的混沌实验注入工具,遵循混沌实验模型规范化实验场景,把实验定义为 Kubernetes CRD 资源,将实验模型映射为 Kubernetes 资源属性,很友好的将混沌实验模型与 Kubernetes 声明式设计结合在一起,依靠混沌实验模型便捷开发场景的同时,又可以很好的结合 Kubernetes 设计理念,通过 kubectl 或者编写代码直接调用 Kubernetes API 来创建、更新、删除混沌实验,而且资源状态可以非常清晰的表示实验的执行状态,标准化实现 Kubernetes 故障注入。除了使用上述方式执行实验外,还可以使用 chaosblade cli 方式非常方便的执行 kubernetes 实验场景,查询实验状态等。具体请阅读:云原生下的混沌工程实践
此项目采用 golang 语言编写,所以需要先安装最新的 golang 版本,最低支持的版本是 1.11。Clone 工程后进入项目目录执行以下命令进行编译:
make
如果在 mac 系统上,编译当前系统的版本,请执行:
make build_darwin
如果想在 mac 系统上,编译 linux 系统版本,请执行:
make build_linux
也可以选择性编译,比如只需要编译 cli、os 场景,则执行:
make build_with cli os
# 如果是 mac 系统,执行
make build_with cli os_darwin
# 如果是 mac 系统,想选择性的编译 linux 版本的 cli,os,则执行:
ARGS="cli os" make build_with_linux
欢迎提交缺陷、问题、建议和新功能,所有项目(包含其他子项目)的问题都可以提交到Github Issues
你也可以通过以下方式联系我们:
我们非常欢迎每个 Issue 和 PR,即使一个标点符号,如何参加贡献请阅读 CONTRIBUTING 文档,或者通过上述的方式联系我们。
我们开源此项目的初衷是降低混沌工程在企业中落地的门槛,所以非常看重该项目在企业的使用情况,欢迎大家在此 ISSUE 中登记,登记后会被邀请加入企业邮件组,探讨混沌工程在企业落地中遇到的问题和分享落地经验。
Chaosblade 遵循 Apache 2.0 许可证,详细内容请阅读 LICENSE
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。