news 2026/7/5 6:18:41

混沌工程基本原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
混沌工程基本原理

文字版

2008年之前,国际巨型视频网站Netflix的模式还是自建机房,自己维护,由于在全球有超1亿用户,所以流量特别大。有一天服务宕机,导致部分国家的不可用长达1天时间,于是他们决定将服务器迁移到AWS上,做了多节点分布式部署,同时增加对服务可用性、容错性、健壮性的实验,而这套实验方法就是混沌工程的前身。他们将这种实验方法和工具抽象剥离出来后,命名为Choas Monkey,寓意为上蹿下跳捣乱的猴子(看来猴子这个物种无论海内海外,都认为他们喜欢捣乱,想想大闹天宫的大圣)。

经过几年的发展,这种思想被业界争相效仿,来提升自己公司的产品。而就在这个时候,2014年Netflix宣布新增一个叫混沌工程师的职位,代表Netflix将混沌工程融入了自己的运维过程,这也直接激起了混沌工程的热度。

2015年,Netflix与社区正式提出了混沌工程原则,从此Choas Monkey不再是一种工具、一组方法,而是真正形成了一套理论。

image

2、定义与作用

定义

混沌工程(Chaos Engineering)是一种通过主动向系统中注入故障或异常条件,以验证系统在真实环境中的韧性、发现潜在弱点,并提升系统容错能力的技术实践。它旨在将不可预测的故障转化为可控实验,帮助构建高可用的分布式系统。-- 来自Deepseek

混沌工程是一种通过主动在系统中引入可控的故障和不确定性,来测试和验证系统韧性的实践方法。

其核心目标是:在系统发生意外故障(如服务器宕机、网络延迟、数据丢失等)前,主动发现潜在的脆弱点,从而提升系统在真实复杂环境中的稳定性、可靠性和容错能力。

简单来说,就像给系统“打疫苗”,通过模拟各种可能的“疾病”(故障),让系统提前适应并增强抵御风险的能力,减少实际运行中突发故障造成的损失。 -- 来自豆包

作用

提前暴露潜在故障点,降低线上故障发生率与复发率

验证故障恢复机制有效性

构建系统自愈能力,提高故障应急效率

提高系统架构的容错能力与健壮性

经典案例

Netflix 的 Chaos Monkey:随机终止生产环境虚拟机,迫使服务实现自动化容错。

NASA航天系统:在阿波罗计划中通过“故障注入”测试飞船的生存能力。

银行系统演练:定期模拟数据中心宕机,验证异地多活的切换时效。

再来个图,直观了解某银行应用混沌工程的案例:

image

几个好理解的场景

服务器宕机: 模拟某个服务器失效,观察系统是否能通过负载均衡快速恢复。

网络延时: 模拟高延迟或丢包场景,评估用户体验是否受到影响。

流量激增: 测试系统在突发流量下的响应能力,找到可能的性能瓶颈。

混动工程是一种主动发现问题的方式,而不是被动等待事故发生。就像 Netflix 最开始的Chaos Monkey工具(随机关闭生产环境中的服务,通过实践验证系统的健壮性)。

3、实施原则

Netflix首先提出的五大原则:

建立稳定状态的假设

当系统处于稳定状态时,可以通过一些指标来定义这一状态(如请求成功率、延迟百分位)。系统在混沌工程实验完成后,这些指标无法快速恢复,可以认为这个系统是不稳定的。

多样化真实事件

不能够凭空想像出一些事件来验证,而是引入那些真实存在的,频繁发生的,且影响重大的事件。给这些事件做混沌实验才有价值。如磁盘故障、网络延时、主机宕机等。

在生产环境中进行实验

尽量在生产或接近生产的环境中进行测试,生产环境的多样性是其它环境所不具备的。混沌工程的价值就是保证生产上的业务连续不中断。

持续运行自动化实验

实施混沌工程实验一般最开始是人工手动操作,当对业务有足够的信心时,要把混沌实验融入到持续集成过程。在版本升级、不断迭代的过程中,持续不断自动化地做验证,最大程度保证业务的连续性验证。

最小化影响范围

做混沌工程的意义就是保证生产上的业务,在实施混沌实验时也必须保证对线上业务影响最小。在实施实验时,从小范围开始,不断扩大范围,避开高风险时段,如选择业务量最小的时段实施实验。

image

4、主流工具

Chaos Monkey (开源)/ˈkeɪɒs/

特点:由 Netflix 开发,用于随机终止生产环境中的服务实例,测试系统的恢复能力。

优势:简单易用,能够快速暴露系统中的单点故障。

适用场景:适合已经具备一定弹性和容错能力的大型分布式系统。

ChaosBlade (开源)

特点:阿里巴巴开源,支持多种故障注入场景,包括CPU、内存、网络、磁盘、进程、文件系统等。

优势:多环境支持(物理机、虚拟机、容器等),灵活的实验场景,轻量级且易于集成。

适用场景:适合混合云或复杂基础设施的企业。

Chaos Mesh(开源)

特点:PingCAP 开源,专注于K8S环境的混沌工程工具,支持 Pod 故障、网络故障、文件系统故障等20+实验类型,提供Chaos Dashboard管理界面。

优势:深度集成K8S,支持基于标签的精准故障注入。

适用场景:适合基于K8S的云原生系统,尤其是微服务架构和分布式数据库。

LitmusChaos (开源) /ˈlɪtməs/

特点:MayaData 开源,基于K8S的开源工具,专注于云原生环境下的韧性测试。

优势:与K8S生态紧密集成,能够针对容器、Pod、节点等不同层次进行故障模拟。

适用场景:适合云原生环境下的系统,尤其是基于K8S构建的微服务架构。

ChaosMeta (开源)/ˈmɛtə/

特点:专注于大规模分布式系统的故障注入和韧性测试,支持节点故障、网络分区、服务延迟等。

优势:支持实验编排和复杂故障链模拟,适合超大规模系统。

适用场景:适合需要测试大规模分布式系统韧性的企业,如大型互联网公司或金融科技公司。

Gremlin (商业) /ˈɡremlɪn/

特点:企业级混沌工程平台,支持100+故障场景(CPU满载、网络延迟、磁盘故障等),集成Prometheus等监控工具,具备可视化仪表盘和可靠性评分。

优势:提供更细粒度的故障模拟,能够模拟复杂的故障场景,并且有良好的用户界面和报告功能。

适用场景:适合需要精细控制实验的企业,尤其是对系统稳定性要求极高的行业,如金融、医疗等。

工具名称 开发团队 核心特点 适用场景 是否开源 活跃度排序

Chaos Monkey Netflix 随机终止服务,简单易用 大型分布式系统 是 /

ChaosBlade 阿里巴巴 多环境支持,灵活的实验场景,轻量级 混合云、复杂基础设施 是 2

Chaos Mesh PingCAP Kubernetes 深度集成,丰富的故障类型,可视化界面 云原生、微服务架构 是 1

LitmusChaos MayaData 擅长 ‌K8s 原生资源‌(如 Pod/Node 级故障)的标准化实验 云原生、基于K8S环境的架构 是 3

ChaosMeta 蚂蚁集团 2024年1月进入CNCF,大规模支持,实验编排,开放的 API 和插件机制 覆盖传统云原生架构及新兴AI基础设施(如GPU集群、大模型训练)超大规模分布式系统 是 4

Gremlin Gremlin Inc. 企业级平台,细粒度故障模拟,丰富的用户界面 企业级应用,高稳定性要求行业 商业 /

5、工具使用

ChaosBlade

官网: https://chaosblade.io/

Github: https://github.com/chaosblade-io/chaosblade

image

Chaosblade支持的试验场景:

image

操作手册:

https://chaosblade-io.gitbook.io/chaosblade-help-zh-cn/blade-create-disk-burn

磁盘读写实验

image

image

代码实现

最小单元是一个for循环:

image

Chaos Mesh

官网:https://chaos-mesh.org

Github:https://github.com/pingcap/chaos-mesh

image

官网直观展示的能力:

可视化操作界面(Chaos Dashboard):可以通过 Web UI 设计混沌实验场景、编排故障注入流程,并实时监控实验运行状态,降低混沌工程实施门槛。

文档与社区资源:包含详细的使用指南、故障类型说明及社区支持信息,便于用户快速上手和实践。

集成 DevOps 工具链:支持与 GitHub Actions 等 CI/CD 系统集成,实现持续混沌测试。

Chaos Mesh 是 CNCF 的托管项目:

image

文档

Chaos Mesh 简介:

image

支持故障类型:

image

支持容器和物理机:

image

模拟Pod故障:

image

使用Chaos Dashboard方式创建Pod故障实验:

image

image

通过Kubectl方式创建Pod故障实验:

image

Yaml文件中的字段:

image

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 13:10:16

永磁同步电机基于非线性磁链观测器的转子位置估计策略:SCI一区顶刊复现与SIMULINK仿真

永磁同步电机基于非线性磁链观测器的转子位置估计策略,利用非线性磁链观测器进行无位置传感器控制,SCI一区顶刊复现,SIMULINK仿真无位置传感器控制这玩意儿在电机控制圈子里算是经久不衰的热点了。今天咱们来唠唠基于非线性磁链观测器的转子位…

作者头像 李华
网站建设 2026/7/2 6:16:47

异步电机直接转矩控制算法模型在R2016b版本及以上的正常运行

异步电机直接转矩控制算法模型正常运行R2016b版本及以上均可运异步电机直接转矩控制(DTC)的仿真模型在电机控制圈子里就像深夜大排档的烧烤师傅——看着粗犷但手里有真功夫。今天咱们拆解的这个模型用着Matlab/Simulink平台,核心是那个能实时…

作者头像 李华
网站建设 2026/7/2 14:29:00

从前端体验到后端架构:Airbnb全栈SDET面试深度解析

在当今快速迭代的互联网行业,全栈软件测试开发工程师(Full Stack SDET)已成为保障产品质量的关键角色。以Airbnb这样全球领先的旅行服务平台为例,其产品横跨Web、移动端及复杂的微服务架构,对SDET的要求已远远超越传统…

作者头像 李华
网站建设 2026/7/1 11:30:31

rtpengine作为媒体代理的一个问题

主要原因是AB路的rfc2833的payload有差异造成的,可以通过kamailio的配置逻辑来修复。环境CentOS 7.9kamailio:5.8.3-bullseye dockerrtpengine:mr13.1.1.6-4 docker问题kamailio 5.8.3 rtpengine 13.1.1.6,媒体代理模式。A路invite的sdp中dtmf参数如下。…

作者头像 李华
网站建设 2026/7/2 0:11:49

Caesium图像压缩器高级配置与定制化指南

Caesium图像压缩器高级配置与定制化指南 【免费下载链接】caesium-image-compressor Caesium is an image compression software that helps you store, send and share digital pictures, supporting JPG, PNG and WebP formats. You can quickly reduce the file size (and r…

作者头像 李华
网站建设 2026/6/30 22:40:14

Graphiti时序知识图谱:5大革新策略重塑动态知识管理

在当今数据瞬息万变的时代,传统知识图谱的静态特性已成为制约AI应用发展的关键瓶颈。当业务逻辑频繁迭代、实体关系动态演变时,全量重建图谱不仅造成资源浪费,更可能导致服务中断。Graphiti框架通过时序感知架构,为知识图谱注入动…

作者头像 李华