混沌工程 - Chaosblade-box

项目地址

chaosblade-box

项目介绍

ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。实验工具 chaosblade 支持 3 大系统平台,4 种编程语言应用,共涉及 200 多个实验场景,3000 多个实验参数,可以精细化地控制实验范围。混沌工程平台 chaosblade-box 支持实验工具托管,除已托管 chaosblade 外,还支持 Litmuschaos 实验工具。已登记使用企业 40 多家,其中已在工商银行、中国移动、小米、京东等企业中落地使用。

核心能力

  1. 丰富的实验场景:包含基础资源(CPU、内存、网络、磁盘、进程、内核、文件等)、多语言应用服务(Java、C++、NodeJS、Golang 等)、Kubernetes 平台(覆盖 Container、Pod、Node 资源场景,包含上述实验场景)。
  2. 多样化的执行方式:除了使用平台白屏化操作,还可以通过工具自带的 blade 工具或者 kubectl、编码的方式执行。
  3. 便捷的场景扩展能力:所有的实验场景遵循混沌实验模型实现,并且不同层次场景对应不同的执行器,实现简单,易于扩展。
  4. 实验工具自动化部署:无需手动部署实验工具,实现实验工具在主机或集群上自动化部署。
  5. 支持开源实验工具托管:平台可托管业界主流的实验工具,如自身的 chaosblade 和外部的 litmuschaos 等。
  6. 统一混沌实验用户界面:用户无需关心不同工具的使用方式,在统一用户界面进行混沌实验。
  7. 多维度实验方式:支持从主机到 Kubernetes 资源,再到应用维度进行实验编排。
  8. 集成云原生生态:采用 Helm 部署管理,集成 Prometheus 监控,支持云原生实验工具托管等。

架构设计

项目部署

编译chaosblade-box

mvn clean package -Dmaven.test.skip=true

运行 chaosblade-box

nohup java -Duser.timezone=Asia/Shanghai -jar chaosblade-box-web-0.4.1.jar > chaosblade-box.log 2>&1 &

查看首页

Agent 部署

下载 centos 镜像(如果有 linux 环境,可以跳过此步骤)

docker pull centos
docker run -it --name centos -d centos:latest
docker exec -it `docker ps | awk '{print $1}' | grep -v CONTAINER` sh
yum install wget

部署 Agent(在目标 linux 中执行如下命令)

wget https://chaosblade.oss-cn-hangzhou.aliyuncs.com/platform/chaosagentctl.sh 
chmod +x chaosagentctl.sh 
./chaosagentctl.sh install -r https://chaosblade.oss-cn-hangzhou.aliyuncs.com/platform/chaosagent -t 127.0.0.1:8080        (# IP地址请换成真实地址)

部署 chaosblade

  1. 下载 chaosblade 客户端程序
  2. 解压缩至 /opt/chaosblade 目录下

查看客户端列表

定义故障场景


posted @ 2021-09-10 16:28  Just4life  阅读(4698)  评论(0编辑  收藏  举报