混沌实验

chaos-experiment
分类编程
作者Alireza Rezvani
许可MIT
评分4.40/5
使用13.6K

/chaos-experiment

使用 chaos-engineering 技能逐步设计混沌工程实验。该流程将生成方案、计算爆炸半径、验证终止条件,并输出一份可供同行评审的 Markdown 计划书。

用法

code
/chaos-experiment
/chaos-experiment --target checkout-svc --attack latency

实现

bash
SKILL=engineering/chaos-engineering/skills/chaos-engineering

步骤 1:交互式收集输入(目标、假设、攻击方式、幅度...)

步骤 2:运行 experiment_designer.py 生成方案

python "$SKILL/scripts/experiment_designer.py" \ --target "$TARGET" --hypothesis "$HYPOTHESIS" \ --attack "$ATTACK" --magnitude "$MAGNITUDE" \ --duration-min "$DURATION" \ --abort-if "$ABORT" --owner "$OWNER" \ --format json > .chaos-plan.json

步骤 3:针对团队的错误预算计算爆炸半径

python "$SKILL/scripts/blast_radius_calculator.py" \ --traffic-share "$TRAFFIC_SHARE" \ --user-pop "$USER_POP" \ --duration-min "$DURATION" \ --baseline-availability "$BASELINE_AVAIL" \ --expected-impact-availability "$IMPACT_AVAIL"

步骤 4:渲染 Markdown 方案以供同行评审

python "$SKILL/scripts/experiment_designer.py" \ --target "$TARGET" --hypothesis "$HYPOTHESIS" \ --attack "$ATTACK" --abort-if "$ABORT" --owner "$OWNER"

输出

一份包含以下内容的 Markdown 方案:

  • 假设、稳态指标、攻击方式、幅度、持续时间
  • 爆炸半径(计算得出)及风险评分(绿色/黄色/红色)
  • --abort-if 解析出的终止条件
  • 回滚步骤
  • 监控仪表盘链接
  • 学习问题

前置条件

  • 已安装 chaos-engineering 技能
  • 已确定目标
  • 稳态指标和仪表盘可用
  • On-call 团队在岗
  • 已知错误预算(或使用默认值)

后置条件

  • 写入 .chaos-plan.json 文件,以便后续由 experiment_postmortem.py 使用
  • 输出 Markdown 方案以供评审
  • 打印建议:PROCEED(执行)/ REDUCE(缩减)/ ABORT(终止)