云原生混沌工程测试平台 Chaos Mesh 升级成为 CNCF 孵化项目
CNCF 技术监督委员会 (TOC) 已通过投票表决,接纳将 Chaos Mesh 作为 CNCF 的孵化项目。
Chaos Mesh 最初作为开源分布式数据库 TiDB 的测试平台而创建,是一个多功能混沌工程平台,可在 Kubernetes 环境中编排混沌实验。通过帮助识别潜在的故障点,有助于确保 Kubernetes 基础设施能够承受意外中断。
自 2020 年 7 月成为 CNCF 沙盒项目以来,Chaos Mesh 已经发布了两个主版本(v1.0 和 v2.0)以及 30 个小版本,在可观测性、功能性和安全性方面带来了显著改进。一些非常亮眼的功能包括:
Chaos Dashboard,一款强大的可视化辅助工具,可帮助用户通过 Web UI 管理和监控混沌实验。原生 Workflow 引擎,用于定义混沌场景来管理混沌实验组和应用程序状态检查。更强大、更全面的混沌模拟,涵盖 StressChaos、DNSChaos、JVMChaos、AWSChaos、GCPChaos、HTTPChaos 等。基于 Kubernetes RBAC 权限策略的授权机制。
已有超过 50 个组织采用 Chaos Mesh 来测试和提高其分布式系统的弹性,包括字节跳动、DataStax、Percona、Prudential、网易伏羲、RabbitMQ、茄子快传、小鹏 汽车 等等。此外,Microsoft Azure Chaos Studio 等云提供商也已经将 Chaos Mesh 集成到其 SaaS 解决方案中,允许用户将故障注入至 AKS 集群。以上的许多组织也为项目做出了贡献。
“Chaos Mesh 基于Kubernetes CustomResourceDefinitions (CRD) 构建,提供了一个良好的开端,”网易伏羲高级质量保证工程师张慧表示,“它提供细粒度混沌支持、Chaos Dashboard 统一的用户界面以及增强的可观测性和精确的混沌作用域控制。所有这一切都是由一个开放、协作、充满活力的社区推动的。”
“Chaos Mesh 提供了丰富的故障模拟方法,可帮助基础设施团队提前验证高可用性、网络流量损失、双向同步等场景,从而帮助探究解决方案缺陷并降低风险,”小鹏汽车首席工程师谭恒亮表示,“它还有助于我们的团队降低测试成本。”
“我们打造 Chaos Mesh 的目标很简单,就是简化混沌工程,让复杂的系统能够拥有应有的弹性,”Chaos Mesh maintainer,PingCAP 混沌工程产品负责人殷成文表示,“社区和生态系统的力量对于实现这一目标至关重要。我们很高兴看到 Chaos Mesh 成为孵化项目。CNCF 是云原生生态系统的推动力量,在社区的支持和指导下,将帮助我们进一步发展混沌工程。”
Chaos Mesh 采用 Kubernetes 架构,使用 Kubernetes CRD 定义混沌对象。它还可以与 Argo、Grafana 和 Prometheus 等其他云原生项目紧密集成,使混沌体验更易于管理、定制和观察。
主要组件
Chaos Dashboard:Chaos Mesh 的可视化组件。Chaos Dashboard 提供一组用户友好的 Web 界面,用户可以通过这些界面操作和观察混沌实验。Chaos Controller Manager:Chaos Mesh 的核心逻辑组件。Chaos Controller Manager 主要负责调度和管理混沌实验。Chaos Daemon:主要执行组件。Chaos Daemon 在 DaemonSet 模式下运行,默认具有特权权限(可以禁用)。Chaosd:将故障注入到非 kubernetes 节点的工具包
重要里程碑
4.5K GitHub Star 关注度1.3K 次代码提交800 多个已解决的 GitHub Issues来自 60 多家组织的 125 位贡献者32 个版本发布50 多个用户
“没有完美的云部署,故障总是会发生,因此使用混沌工程来预测出现中断时会发生什么情况可以为组织节省时间和资金,并帮助构建弹性系统,”CNCF 首席技术官 Chris Aniszczyk 表示,“这是云原生生态系统中一个快速发展的部分,我们很高兴看到 Chaos Mesh 可以作为一个孵化项目发展壮大。”
Chaos Mesh 建立了完整的路线图,团队正在积极增加新特性和功能,同时改善整体混沌体验。努力提供有效的状态验证机制和报告功能,来提高易用性和可观测性。Workflow 引擎的持续优化将使用户能够通过 Chaos Mesh 实现完整的混沌工程循环。不断丰富支持的故障类型以覆盖云原生系统中尽可能多的实际故障,可以增强功能和可扩展性。此外,团队将提供插件机制,让用户可以自由扩展自己的故障类型,并将自己的插件和混沌场景发布到 Chaos Mesh。
作为一个由 CNCF 托管的项目,Chaos Mesh 是一个厂商中立的基金会的一部分,并与该基金会的技术利益相一致。同时,Chaos Mesh 也隶属于更大规模组织 Linux 基金会,从其获取项目治理、市场 营销 和社区推广等支持。