土法炼钢兴趣小组的算法知识备份

【可观测性工程】混沌工程:ChaosBlade、Chaos Mesh 与可观测性闭环

文章导航

分类入口
architectureobservability
标签入口
#chaos-engineering#chaosblade#chaos-mesh#litmuschaos#resilience#fault-injection#slo#game-day

目录

混沌工程:ChaosBlade、Chaos Mesh 与可观测性闭环

某团队在生产做第一次「混沌」:kubectl delete pod checkout-xxx。Pod 15 秒内重建,服务恢复。团队欢呼系统高可用。

但 15 秒内 checkout 可用率从 99.95% 降到 99.1%,消耗两周错误预算;告警一条未响——延迟 SLO 的 PromQL 用了 p50 而非 p99。实验证明了自愈,更证明了可观测性盲区

混沌工程的价值:不是找代码 bug,是找「告警与 SLO 能否发现这类故障」。稳态用 SLO 工程 度量;告警是否触发用 告警体系 验证;全链路排障见 事故复盘剧本

混沌工程五步循环
爆炸半径递进模型

一、混沌工程的原则

1.1 起源

Netflix Chaos Monkey(2011)随机终止生产实例,验证容错。原则被归纳进 Principles of Chaos Engineering

1.2 五步循环

步骤 动作 可观测性产出
1 定义稳态 SLO Dashboard 指标 对照组基线
2 提出假设 可判定命题 实验验收标准
3 设计实验 故障类型+半径 注入配置
4 执行观测 注入+看告警 触发时间、漏报
5 分析 预期 vs 实际 Reliability Backlog

1.3 与测试的区别

单元/集成测试 混沌实验
环境 CI/staging staging → 可控 prod
目标 功能正确 可观测性+韧性
失败价值 bug 列表 告警/SLO gap

二、三大开源工具对比

2.1 总览

工具 来源 模型 强项 弱项
ChaosBlade 阿里开源 CLI + Operator 上手快、JVM/主机 K8s 编排弱于 Mesh
Chaos Mesh PingCAP, CNCF CRD K8s 原生、Workflow 学习曲线
LitmusChaos CNCF Hub + GitOps 模板化、Harness CE 重度依赖 K8s

2.2 ChaosBlade

# 网络延迟(主机)
blade create network delay --time 3000 --interface eth0 --offset 100

# K8s Pod CPU 满载
blade create k8s pod-cpu fullload --namespace checkout --names checkout-xxx --cpu-percent 80

# 销毁实验
blade destroy <UID>

中文文档完善,适合国内团队第一个实验。

2.3 Chaos Mesh

apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
  name: delay-checkout
  namespace: chaos-testing
spec:
  action: delay
  mode: one
  selector:
    namespaces: [checkout]
    labelSelectors:
      app: checkout
  delay:
    latency: "200ms"
  duration: "5m"

Workflow 可编排多步实验;Dashboard 可视化。

2.4 LitmusChaos

ChaosHub 提供预置实验模板;与 ArgoCD 集成做 GitOps 混沌。


三、稳态假设与 SLO 判定

3.1 稳态指标示例

3.2 实验假设模板

若对 checkout 单 Pod 注入 200ms 网络延迟 5 分钟,则 p99 延迟 SLO Burn Rate 告警应在 2 分钟内触发,且错误预算消耗 < 1%。

3.3 判定表

观测项 通过 失败 → 行动
SLO 告警触发 调整 Burn Rate 规则
Dashboard 异常可见 补 Panel / Recording rule
Trace 不断裂 修 propagation
自动恢复 < RTO 修 HPA/PDB

四、实验工程设计(四阶段)

4.1 Fault Injection

CPU、内存、网络延迟/丢包、DNS、磁盘 I/O、Pod 删除、AZ 故障。

4.2 Observability

并行观察:SLO Dashboard、告警、Logs trace_id、Traces 采样率是否够。

4.3 Recovery

记录 RTO;是否需人工 kubectl rollout undo

4.4 Analysis

写入 Reliability Backlog:每条 gap 对应 owner 与 due date。

sequenceDiagram
  participant E as 实验编排
  participant F as 故障注入
  participant S as SLI 采集
  participant A as Alertmanager
  participant O as On-call
  E->>F: 注入延迟
  F->>S: 扰动流量
  S->>A: Burn Rate 计算
  alt 告警触发
    A->>O: Page
  else 漏报
    O->>O: 记录盲区
  end

五、爆炸半径控制

5.1 递进策略

单 Pod → 单 Deployment → 单 AZ → Region(极少)。

5.2 Kill Switch

5.3 生产准入

  1. staging 同模板通过
  2. on-call 值守
  3. 变更窗口审批
  4. 回滚/停止演练过一遍

六、驱动可观测性改进的案例

6.1 网络延迟 → 告警盲区

注入 200ms → p99 升无告警 → PromQL 用 p50 → 改为 p99 + Burn Rate。

6.2 Kafka broker → Trace 断裂

杀 broker → 降级无完整 trace → Kafka client 未传播 traceparent → 修 OTel 配置。

6.3 DNS 超时 → 日志缺失

gRPC DNS 错误未打日志 → 补 error log + span event。


七、工程坑点

  1. 未 staging 验证就上生产——违背实验伦理。
  2. 无超时——CPU stress 打满节点。
  3. 不监控实验本身——注入是否成功未知。
  4. 只做自动化不做 Game Day——组合故障只有人才能发现。
  5. 实验未关联 SLO——无法量化用户影响。

八、落地清单


九、关键概念回顾


十、常见误解

误解 事实
混沌=删 Pod 需假设、稳态、观测、分析
通过=系统可靠 通过=本次故障可被观测
只能 QA 做 SRE 主导,研发参与分析

十一、下一步

治理层收束。下一篇 中国可观测性厂商对比

附录 A:实验目录模板

ID 故障 假设 半径 工具
EXP-001 PodKill k8s 验证 PDB/HPA checkout 单 Pod Chaos Mesh
EXP-002 NetworkDelay 200ms 延迟 SLO 告警 单 Deployment 1 副本 Chaos Mesh
EXP-003 CPUStress 80% CPU 不应 Page 除非 SLO 坏 单节点 Chaos Mesh
EXP-004 DNSChaos timeout 日志+Trace 可见 namespace 级 Chaos Mesh
EXP-005 IOChaos latency 块设备 Metrics vs 应用延迟 带 PVC Pod Chaos Mesh
EXP-006 TimeChaos skew 证书/TTL 问题 仅 staging Chaos Mesh
EXP-007 JVMChaos ChaosBlade GC/延迟关联 Java 服务 Chaos Mesh
EXP-008 AZFailure network partition 多 AZ SLO 需审批 Chaos Mesh

十二、Chaos Mesh Workflow 编排示例

apiVersion: chaos-mesh.org/v1alpha1
kind: Workflow
metadata:
  name: checkout-resilience-day
  namespace: chaos-testing
spec:
  entry: serial
  templates:
    - name: serial
      templateType: Serial
      children:
        - network-delay
        - pod-kill
    - name: network-delay
      templateType: NetworkChaos
      deadline: 5m
      networkChaos:
        action: delay
        mode: one
        selector:
          namespaces: [checkout]
          labelSelectors:
            app: checkout
        delay:
          latency: 200ms
    - name: pod-kill
      templateType: PodChaos
      deadline: 3m
      podChaos:
        action: pod-kill
        mode: one
        selector:
          namespaces: [checkout]

十三、LitmusChaos ChaosEngine 模板

apiVersion: litmuschaos.io/v1alpha1
kind: ChaosEngine
metadata:
  name: checkout-network-chaos
spec:
  appinfo:
    appns: checkout
    applabel: app=checkout
    appkind: deployment
  chaosServiceAccount: litmus-admin
  experiments:
    - name: pod-network-latency
      spec:
        components:
          env:
            - name: NETWORK_LATENCY
              value: "200"
            - name: TOTAL_CHAOS_DURATION
              value: "300"

十四、稳态与 SLO 联动的 Recording Rule

实验期间建议预建 chaos:experiment_active 指标(由实验 CronJob 打 1),告警规则排除或单独路由:

groups:
  - name: chaos-slo
    rules:
      - record: chaos:checkout_availability_5m
        expr: |
          sum(rate(http_requests_total{service="checkout",status!~"5.."}[5m]))
          /
          sum(rate(http_requests_total{service="checkout"}[5m]))

详见 SLO 工程 §三。


十五、告警验证矩阵

故障 应触发信号 期望告警 常见盲区
PodKill 可用性 Burn Rate 5m 内应 Page HPA 恢复时间
200ms delay 延迟 Burn Rate 2m 内应 Ticket+ p99 recording
CPU 80% 不一定告警 仅 SLO 坏才 Page 禁止裸 CPU Page
DNS fail 可用性+日志 应有 error log gRPC resolver
Kafka down 可用性+Trace 降级可见 trace context
磁盘满 日志+Metrics node disk alert 应用层超时

十六、Game Day 组织手册

16.1 角色

角色 职责
Commander 决定继续/中止
Observer 盯 SLO/告警面板
Injector 执行 Chaos CR
Comms 对内/对客户通报

16.2 时间线(示例 2h)

T+0    开场,确认稳态基线
T+15m  EXP-001 网络延迟
T+45m  复盘 gap,休息
T+60m  EXP-002 PodKill
T+90m  汇总 Backlog
T+120m 结束,发纪要

十七、Reliability Backlog 条目模板

## [CHAOS-042] p99 延迟告警未触发
- **实验**: EXP-003 network 200ms
- **预期**: Burn Rate > 14.4 in 1h within 2min
- **实际**: 无告警;Dashboard 手动可见
- **根因**: recording rule 用 p50
- **修复**: 改为 histogram p99 SLI + 多窗口规则
- **Owner**: @sre-oncall
- **Due**: 2026-07-01

十八、故障类型与可观测性信号对照

NetworkChaos

StressChaos

IOChaos

DNSChaos

TimeChaos

HTTPChaos

JVMChaos

十九、混沌与可观测性深度 1

主题:与 CI 流水线集成:merge 前跑 PodKill 于 preview 环境

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十、混沌与可观测性深度 2

主题:与 13-events 联动:实验本身作为 Change Event

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十一、混沌与可观测性深度 3

主题:多区域实验的 SLO 聚合

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

二十二、混沌与可观测性深度 4

主题:服务网格 mTLS 下 NetworkChaos

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十三、混沌与可观测性深度 5

主题:serverless 冷启动与 PodKill 差异

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十四、混沌与可观测性深度 6

主题:数据库主从切换实验

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

二十五、混沌与可观测性深度 7

主题:缓存穿透与延迟实验

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十六、混沌与可观测性深度 8

主题:限流 429 是否计入 SLI(对照 18 篇)

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十七、混沌与可观测性深度 9

主题:混沌期间的 tail sampling 临时上调

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

二十八、混沌与可观测性深度 10

主题:on-call 演练而非真 Page 的路由技巧

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

二十九、混沌与可观测性深度 11

主题:实验失败即成功:文档化盲区

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十、混沌与可观测性深度 12

主题:合规:生产混沌的客户通知模板

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

三十一、混沌与可观测性深度 13

主题:与 K8s PDB minAvailable 冲突

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十二、混沌与可观测性深度 14

主题:混沌 Operator 自身 HA

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十三、混沌与可观测性深度 15

主题:实验数据保留用于季度回顾

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

三十四、混沌与可观测性深度 16

主题:自动化回归:每周 staging EXP-001

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十五、混沌与可观测性深度 17

主题:领导层关心的混沌 ROI 表述

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十六、混沌与可观测性深度 18

主题:从删 Pod 到 formal workflow 的迁移路径

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

三十七、混沌与可观测性深度 19

主题:开源工具版本升级回归实验

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十八、混沌与可观测性深度 20

主题:跨团队依赖的联合 Game Day

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

三十九、混沌与可观测性深度 21

主题:事故后补做的混沌验证

假设模板:若注入 X,则 [SLO/告警/Trace] 在 T 分钟内可观测。

输出:更新 告警体系 规则或 埋点哲学 采样策略。

# ChaosBlade 实验超时包装
timeout 300 blade create k8s pod-network delay \
  --namespace checkout --names checkout-xxx --time 200 --interface eth0
blade status <UID>
blade destroy <UID>

混沌实验扩展 0

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 1

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 2

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 3

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 4

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 5

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 6

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 7

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 8

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 9

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 10

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 11

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 12

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 13

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 14

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 15

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 16

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 17

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 18

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 19

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 20

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 21

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 22

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 23

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 24

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 25

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 26

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 27

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 28

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 29

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 30

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 31

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 32

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 33

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 34

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 35

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 36

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 37

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 38

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 39

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 40

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 41

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 42

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 43

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 44

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 45

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 46

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 47

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 48

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 49

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 50

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 51

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 52

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 53

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 54

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 55

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 56

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 57

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 58

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 59

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 60

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 61

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 62

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 63

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 64

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 65

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 66

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 67

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 68

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 69

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 70

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 71

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 72

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 73

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 74

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 75

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 76

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 77

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 78

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 79

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 80

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 81

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 82

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 83

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 84

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 85

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 86

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 87

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 88

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 89

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 90

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 91

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 92

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 93

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 94

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 95

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 96

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 97

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 98

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 99

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 100

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 101

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 102

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 103

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 104

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 105

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 106

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 107

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 108

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 109

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 110

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 111

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 112

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 113

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 114

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 115

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 116

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 117

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 118

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 119

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 120

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 121

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 122

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 123

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 124

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 125

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 126

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 127

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 128

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 129

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 130

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

混沌实验扩展 131

稳态用 18-slo;告警验证用 19-alerting;gap 写入 backlog。

参考资料

  1. Principles of Chaos Engineering, https://principlesofchaos.org/
  2. Netflix Chaos Monkey, https://netflix.github.io/chaosmonkey/
  3. Chaos Mesh Documentation, https://chaos-mesh.org/docs/
  4. ChaosBlade Documentation, https://chaosblade.io/docs/
  5. LitmusChaos Documentation, https://litmuschaos.io/docs/
  6. Google SRE Workbook, Alerting on SLOs
  7. 本站 SLO 工程
  8. 本站 告警体系
  9. 本站 事故复盘剧本
  10. 本站 Events 与变更关联

上一篇多租户与安全

下一篇中国可观测性厂商对比

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-04-13 · architecture

【系统架构设计】混沌工程:主动验证系统的韧性

混沌工程不是随机破坏——它是一套严谨的实验方法论。本文从混沌工程的五条原则出发,拆解 Netflix 从 Chaos Monkey 到 Chaos Kong 的演进历程,对比 LitmusChaos、ChaosBlade、Chaos Mesh 等工具的架构差异,讲清楚故障注入的分类学和 GameDay 演练的落地流程。


By .