蚂蚁集团混沌工程 ChaosMeta V0.5 版本发布

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-用户体验监控,每月100OCU免费额度
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: ChaosMeta V0.5 版本包含了许多新特性和增强功能,为用户提供了支撑混沌工程各个阶段的平台能力,以及降低使用门槛的用户界面

混沌工程 ChaosMeta 的全新版本 V0.5 现已正式发布!该版本包含了许多新特性和增强功能,为用户提供了支撑混沌工程各个阶段的平台能力,以及降低使用门槛的用户界面。

ChaosMeta V0.5 核心新特性介绍

当前版本主要是发布了平台界面组件(chaosmeta-platform)、度量组件(chaosmeta-measure-operator)以及流量注入组件(chaosmeta-flow-operator)。

▌平台界面

提供产品层操作界面方便用户更友好地使用 ChaosMeta 产品功能,当前产品层功能主要有:
空间管理:根据组织或活动隔离数据,确保数据的安全性和隐私性。
image.png

用户权限管理:为不同角色提供访问权限的控制,可有效管理混沌工程实验的使用。
image.png

编排实验:通过拖拉拽可视化操作,使实验编排更加友好和灵活,提高用户的工作效率。
image.png

实验结果:提供实验执行详情的追溯功能,让用户随时了解实验的执行情况和结果,方便用户进行数据分析和决策。
image.png

▌度量引擎

当前包括 4 种度量能力:

  • monitor:对监控项的值进行预期判断,比如某个机器的 cpu 使用率监控值是否大于90%,默认支持prometheus
  • pod:对 pod 相关数据进行预期判断,比如某个应用的 pod 实例数是否大于3
  • http:对 http 请求进行预期判断,比如进行指定的 http 请求时,返回状态码是否为200
  • tcp:对 tcp 请求进行预期判断,比如测试某个服务器的 8080 端口是否能通

▌流量引擎

当前流量注入的能力只实现了 HTTP 流量类型的注入,后续会逐步补充 RPC、DB client、redis client 等其他类型的流量注入能力。底层实现是基于开源组件 jmeter 实现的,每个流量注入任务启动一个 jmeter 的 job 执行。
image.png

ChaosMeta 核心设计理念

ChaosMeta 设计上主要是想要解决下面几个业界内普遍存在的问题:

混沌工程演练各个阶段的能力整合

当前业界主流混沌工程项目主要都是只关注如何制造故障的问题,而经常做演练相关工作的工程师,应该明白每次演练还有以下重复性工作的痛点:检测当前环境是否符合演练预设条件(演练准入)、业务流量是否满足(流量注入)、注入后判断故障效果是否符合预期(故障度量)、是否在预设时间内恢复了业务服务(恢复度量)、复盘分析总结风险点。
基于业界现状和上面的问题分析,结合蚂蚁集团在混沌工程领域的多年经验,ChaosMeta 平台从设计上覆盖了“准入检测”、“流量注入”、“故障注入”、“故障度量”、“恢复度量”、“注入恢复”等各个阶段的技术支撑,解放各阶段的人力。
image.png

故障实验设计的经验可复用性

我们在做混沌工程演练前,还有一个会消耗大量人力的工作,那就是在演练实验的设计上。这一部分当前主要还是得依靠人的设计能力,目前很难完全依赖机器去自动设计。但是我们可以把其中的可复用经验系统化抽象出来,整理成册,在对同一类组件进行混沌工程演练的时候,就可以快速复用起来,这个就是风险目录的设计初衷。
风险目录前期主要是以理论的方式开源,后期会以平台能力的方式内置到 ChaosMeta 项目中。
image.png

云原生基础设施的环境复杂性

当前大部分公司的基础设施环境都是在 Kubernetes 上的,无论是云自身还是云原生应用的稳定性都是至关重要的,传统的故障注入手段可能难以解决问题。为此我们希望 ChaosMeta 能从设计上解决以下问题:

-对 Kubernetes 自身稳定性的故障注入能力

主要是围绕 Kubernetes 自身的稳定性,比如 APIServer、Scheduler 等核心组件,各类资源的状态异常处理流程,Operator 应用的异常等- 平台支持云原生部署ChaosMeta 设计上是基于 operator 开发的云原生架构(详见用户文档),因此天然支持云原生环境的部署
image.png

-平台支持管理云上容器并进行故障注入

如果使用传统的方式对容器进行故障注入,需要把单机故障注入工具传输到目标容器内并执行命令,但是一般的业务容器的基础镜像都是极简版的,很多命令工具比如 tc、fallocate等都不支持,导致容器故障注入被环境因素受限过大。ChaosMeta 使用“容器化注入”的方式对集群内的 Pod 以及 Node 进行故障注入,单机故障注入工具chaosmetad 支持对宿主机上的容器进行故障注入,而不需要把 chaosmetad 拷贝到容器内,通过在宿主机上选择性进入目标容器的目标 linux namespace,达到使用宿主机的工具对容器的相应 namespace 产生异常的效果
image.png

-平台支持管理云下容器并进行故障注入

每个公司都还有很多还没上云的业务,这类业务要么是在普通的物理机/虚拟机上部署,要么是在此基础上裸容器启动的(比如 docker 容器)。这个时候也需要平台能支持管理这部分集群外的目标,ChaosMeta 的单机故障注入工具 chaosmetad 支持以 agent 模式启动,定时上报机器的容器信息到平台中,平台可以直接选择集群外的目标下发故障注入任务。
image.png

-多集群管理

虽然我们推荐每个集群部署一个管控平台,但是仍然有很多用户换机是希望能集中式管理的,ChaosMeta 的平台能力设计上也是支持管理不同集群的 kubeconfig 以及跨集群进行故障注入的。

可自动化的道路

平台技术的最后目标都是希望能解放人力,往自动化、智能化的方向演进的,或许当前还没能完全做到,但是至少需要走在正确的道路上。
ChaosMeta 的自动化混沌工程思想主要是以混沌工程演练的各阶段平台能力为技术支撑,“风险目录”作为理论支撑,使 ChaosMeta 朝着自动化混沌工程的方向逐步演进。

2023 年 roadmap

今年的目标主要是把平台能力进行完善,并且各阶段的基本能力都补全,还会跟其他开源社区(比如 OceanBase、SOFA 等)进行进一步的合作,争取达到 1.0 完整版。

平台能力

  • 支持全部编排节点类型的能力
  • 内置一些开源组件的通用实验模板
  • 提供 Agent 管理界面,管理云上以及云下的物理机以及容器
  • 支持跨集群管理

各阶段基本能力

  • 流量注入能力,基于 jmeter 提供更多的流量注入能力
  • 度量能力,提供更多云原生方向的状态度量能力
  • 故障注入能力,主要往组件级别的故障注入能力上演进,比如集成对 OceanBase、MySQL、Redis、Etcd 等开源组件的故障注入能力
  • 风险目录正式对外开源理论版本,内置到 ChaosMeta 平台中的能力主要以上述的“通用实验模版”以及“组件级别的故障注入能力”两种方式。

加入我们

作为一个开放的项目,我们认可开源的研发模式,并致力于将 ChaosMeta 社区打造成一个开放和有创造力的社区。后续,所有的研发、讨论等相关工都会在社区透明运行。
我们欢迎任何形式的参与,包括且不限于提问、代码贡献、技术讨论、需求建议等。期待收到社区想法和反馈,以推动项目往前进一步发展。
如果对我们的项目或者设计理念感兴趣,请 star 我们的项目给予支持。

项目 GitHub 地址:https://github.com/traas-stack/chaosmeta
官方文档:https://chaosmeta.gitbook.io/chaosmeta-cn

微信群:请添加负责人好友(微信号:KingsonKai)邀请入群
钉钉群:21765030887
也欢迎大家关注 ChaosMeta 公众号(ChaosMeta混沌工程),项目最新动态我们都会在这里发布。

目录
相关文章
|
7月前
|
运维 Cloud Native 安全
阿里平台工程的发展历程与关键实践
什么是平台工程,怎么在企业内落地平台工程,云效负责人陈鑫在2023云栖大会上,结合云效过去在阿里内部十多年的经验和在各大企业的实践,给出了非常详细的解答。
3227 3
|
6月前
|
运维 Cloud Native 测试技术
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(1)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(1)
|
6月前
|
Cloud Native 数据库 数据采集
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(3)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(3)
|
6月前
|
Cloud Native 数据库 持续交付
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(2)
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
118 1
《阿里云产品四月刊》—提升团队工程交付能力,从“看见”工程活动和研发模式开始(2)
|
测试技术 调度 C++
六年打磨!阿里开源混沌工程工具 ChaosBlade
减少故障的最好方法就是让故障经常性的发生。通过不断重复失败过程,持续提升系统的容错和弹性能力。今天,阿里巴巴把六年来在故障演练领域的创意和实践汇浓缩而成的工具进行开源,它就是 “ChaosBlade”。如果你想要提升开发效率,不妨来了解一下。
11960 0
|
7月前
|
人工智能 Kubernetes Cloud Native
ChaosMeta V0.7.0 版本发布 & 进入CNCF混沌工程全景图
混沌工程 ChaosMeta 的全新版本 V0.7.0 现已正式发布!该版本包含了许多新特性和增强功能,在编排界面提供了多集群管理,在代码层面支持多命令下发通道的选择。另外由蚂蚁集团发起的ChaosMeta于北京时间2024年1月10日正式进入CNCF混沌工程全景图。
115 0
|
7月前
|
tengine 算法 安全
ChaosBlade 是阿里巴巴开源的混沌工程工具
【2月更文挑战第23天】ChaosBlade 是阿里巴巴开源的混沌工程工具
136 1
|
消息中间件 Kubernetes Cloud Native
蚂蚁集团自动化混沌工程 ChaosMeta 正式开源
ChaosMeta 介绍ChaosMeta 是一款面向云原生、自动化演练而设计的混沌工程平台。它是蚂蚁集团内部混沌工程平台 XMonkey 的对外开源版本,凝聚了蚂蚁集团在公司级大规模红蓝攻防演练实践中多年积累的方法论、技术能力以及产品能力。经过公司内部多年复杂故障演练场景的驱动,XMonkey 在混沌工程领域沉淀了很多独特经验,是蚂蚁集团研发、测试、质量、SRE 等人员进行历史故障演练和挖掘系统
407 0
蚂蚁集团自动化混沌工程 ChaosMeta 正式开源
|
消息中间件 运维 监控
ChaosBlade 在工商银行混沌工程体系中的应用实践
ChaosBlade 在工商银行混沌工程体系中的应用实践
387 0
|
供应链 Cloud Native 安全
OSCAR 分享之蚂蚁开源治理的方法和实践
用不用开源技术不再是个问题,如何用好开源技术才是
635 1
OSCAR 分享之蚂蚁开源治理的方法和实践
下一篇
无影云桌面