网站首页 > 技术文章 正文
本文对比开源混沌工程工具
Chaos Monkey
平台:Spinnaker
发布:2012 Netflix
语言:Go
第一个开源的混沌工程工具,包含了故障注入工具Simian Army,可让您的云以最佳状态运行。 Chaos Monkey,第一个成员,是一个弹性工具,有助于确保您的应用程序可以容忍随机实例故障
- Pros:知名的历史工具,随时创建故障
- Cons:需要 Spinnaker 和 MySQL,只能进行 shutdown,对爆炸变径控制有限,只能随机的,没有恢复和回滚机制,无法写自己代码
ChaosBalde
Platforms: Docker, Kubernetes, bare-metal, cloud platforms
Release year: 2019
Creator: Alibaba
Language: Go
modular设计,适用场景多,包括主机、c++应用、kubernetes等
通过CLI执行,提供完整生命周期的CLI:blade prepare/create/destroy
通过Custom Resource Definitions (CRDs) 操作k8s
- Pros:支持类型多;应用级别注入(java、c++、node.js);多种使用方式 CLI、kubernetes manifests、REST API
- Cons:缺乏调度、安全、报告能力
Chaos Mesh
Platform: Kubernetes
Release year: 2020
Creator: PingCAP
Language: Go
Kubernetes 环境下混沌实验,缺乏 node-leave 支持,缺乏调度和时间方面 ad-hoc
- Pros: web UI 支持暂停与恢复实验,支持 GitHub Actions 便于自动化 CI/CD
- Cons:没有 node-level 攻击、仪表盘安全可以整个集群范围内混沌实验
Litmus
Platforms: Kubernetes
Release year: 2018
Creator: MayaData
Language: TypeScript
类似 Chaos Mesh,原始为了测试 kubernetes 存储方案 OpenEBS,测试容器、Pods、nodes ; ChaosHub 集中式公共实验存储库,任何人都可以为其作出贡献;Limus Probes 健康监测功能,可以在实验前、实验中、实验后检测应用健康 ,通过运行 shell 命令、HTTP请求、kubernetes命令检测环境
- Pros:Web UI 提供了 dashboard 和 应用弹性能力得分;ChaosHub 提供大量实验场景;自动的系统监控检测
- Cons:实验过程复杂;清除实验开销较大;web ui功能有限;按实验控制的权限局限性
Chaos Toolkit
Platforms: Docker, Kubernetes, bare-metal, cloud platforms
Release year: 2018
Creator: ChaosIQ
Language: Python
Chaos Toolkit 可让您完全控制实验的运行方式,直至在目标系统上执行的命令。但是由于这种 DIY 方法,Chaos Toolkit 更像是一个您需要构建的框架,而不是现成的 Chaos Engineering 解决方案
PowerfulSeal
Platforms: Kubernetes
Release year: 2017
Creator: Bloomberg
Language: Python
没有提供其他工具无法提供的功能。语法易于理解,不同的模式对实验提供了更好的控制,但它的攻击类型数量有限,并且缺乏其他区分功能。
Toxiproxy
Platforms: Any
Release year: 2014
Creator: Shopify
Language: Go
网络故障注入工具,两个组件:proxy server 和 clinet
Istio
Platform: Kubernetes
Release year: 2017
Creators: Google, IBM, and Lyft
Language: Go
服务网格,流量管控支持混沌实验功能,Istio 可以注入延迟 或 HTTP 错误到虚拟服务的网络流量中; 默认 health checks 和 envoy statistics 可以监控系统
Corns:只有两种类型实验,局限于Istio
Kubedoom
Platforms: Kubernetes
Release year: 2019
Creator: David Zuber (storax)
Language: C++
局限于 pods
工具功能对比
Tool | Works with | Total attack types | Application attacks | Host attacks | Container/Pod attacks | GUI | CLI | REST API | Metrics/reporting | Attack sharing | Attack halting | Attack scheduling | Target randomization | Custom attacks | Health checks |
Gremlin | Containers, Kubernetes, bare metal, cloud | 12 | |||||||||||||
Chaos Monkey | Amazon Web Services (requires Spinnaker) | 1 | |||||||||||||
ChaosBlade | Containers, Kubernetes, bare metal, cloud | 40 | |||||||||||||
Chaos Mesh | Kubernetes | 17 | |||||||||||||
Litmus | Kubernetes | 39 | |||||||||||||
Chaos Toolkit | Containers, Kubernetes, bare metal, cloud | Based on driver | |||||||||||||
PowerfulSeal | Kubernetes | 5+ | |||||||||||||
ToxiProxy | Network | 6 | |||||||||||||
Istio | Kubernetes | 2 | |||||||||||||
KubeDoom | Kubernetes | 1 | |||||||||||||
AWS FIS | Amazon Web Services (RDS, EC2, ECS, EKS) | 7+ |
猜你喜欢
- 2025-07-27 打工人学Python:(七)自定义函数,打造自己的武器库
- 2025-07-27 【桥接设计模式详解】Java/JS/Go/Python/TS不同语言实现
- 2025-07-27 Python绘菊花(用python画朵小菊花)
- 2025-07-27 盘点爬虫语言为何选择Python而不是Java
- 2025-07-27 Java/Go/Python/JS不同语言实现23种经典设计模式
- 2025-07-27 编写python脚本同步表数据到另数据库中的表
- 2025-07-27 Go 和 Python 程序运行时间比较(go和python哪个好)
- 2025-07-27 手把手带你进行Golang环境配置(golang运行时配置文件目录)
- 2025-07-27 web开发我更喜欢使用GO语言(go适合做web吗)
- 2025-07-27 慢到窒息!没想到未编译Python比Go慢上这么多……
- 289℃Python短文,Python中的嵌套条件语句(六)
- 285℃PythonNet:实现Python与.Net代码相互调用!
- 283℃python笔记:for循环嵌套。end=""的作用,图形打印
- 281℃Python实现字符串小写转大写并写入文件
- 278℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 137℃原来2025是完美的平方年,一起探索六种平方的算吧
- 123℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 115℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)