mcpField
C
chaos-engineering-resilience

chaos-engineering-resilience

github.com/proffesor-for-testingテスト・品質519132 回インストール今日更新
リポジトリ

chaos-engineering-resilience について

制御されたカオス実験を計画し、システムのレジリエンスを評価するスキルです。測定可能な仮説、障害注入の範囲設定、影響分析、手順書の作成を支援します。

主な機能

  1. 01定常状態の指標を定義
  2. 02ネットワークやインフラ障害を注入
  3. 03影響範囲とロールバックを管理
  4. 04調査結果を手順書に記録

活用シーン

  1. 01分散システムの検証
  2. 02災害復旧手順のテスト
  3. 03リリース前の耐障害性確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill chaos-engineering-resilience

インストール後、Claude Code で/chaos-engineering-resilienceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
chaos-engineering-resilience.yaml
schemas/
output.json
scripts/
validate-config.json

詳細

カオスエンジニアリングとレジリエンステスト

<default_to_action> システムのレジリエンスをテストしたり、障害を注入したりする場合は、次の手順に従います。

  1. 定常状態を定義します(通常時の指標:エラー率、レイテンシ、スループット)
  2. 障害発生中もシステムが定常状態を維持すると仮定します
  3. 現実に起こり得る障害を注入します(ネットワーク、インスタンス、ディスク、CPU)
  4. 定常状態からの逸脱を観察し、測定します
  5. 発見した弱点を修正し、ランブックを文書化して、繰り返します

カオステストの手順:

  • 小さく始めます:開発 → ステージング → 本番の 1% → 段階的な展開
  • 明確なロールバックのトリガーを定義します(error_rate > 5%)
  • 影響範囲を測定し、計画した範囲を決して超えないようにします
  • 発見事項を文書化 → ランブックを作成 → レジリエンスを向上

成功に不可欠な要素:

  • 自動ロールバックを備えた、制御された実験
  • 定常状態を測定可能にする
  • 非本番環境から始め、本番環境へ段階的に進める </default_to_action>

クイックリファレンスカード

使用する場面
  • 分散システムの検証
  • 災害復旧テスト
  • フォールトトレランスへの信頼の構築
  • 本番前のレジリエンス検証
注入する障害の種類
カテゴリ障害ツール
ネットワークレイテンシ、パケットロス、分断tc, toxiproxy
インフラストラクチャインスタンスの強制終了、ディスク障害、CPUChaos Monkey
アプリケーション例外、応答の遅延、リークGremlin, LitmusChaos
依存関係サービス停止、タイムアウトWireMock
影響範囲の段階的な拡大
Dev (safe) → Staging → 1% prod → 10% → 50% → 100%
     ↓           ↓         ↓        ↓
  Learn      Validate   Careful   Full confidence
定常状態の指標
指標通常値アラートしきい値
エラー率< 0.1%> 1%
p99 レイテンシ< 200ms> 500ms
スループットベースライン-20%

カオス実験の構成

// Chaos experiment definition
const experiment = {
  name: 'Database latency injection',
  hypothesis: 'System handles 500ms DB latency gracefully',
  steadyState: {
    errorRate: '< 0.1%',
    p99Latency: '< 300ms'
  },
  method: {
    type: 'network-latency',
    target: 'database',
    delay: '500ms',
    duration: '5m'
  },
  rollback: {
    automatic: true,
    trigger: 'errorRate > 5%'
  }
};

エージェント主導のカオス

// qe-chaos-engineer runs controlled experiments
await Task("Chaos Experiment", {
  target: 'payment-service',
  failure: 'terminate-random-instance',
  blastRadius: '10%',
  duration: '5m',
  steadyStateHypothesis: {
    metric: 'success-rate',
    threshold: 0.99
  },
  autoRollback: true
}, "qe-chaos-engineer");

// Validates:
// - System recovers automatically
// - Error rate stays within threshold
// - No data loss
// - Alerts triggered appropriately

エージェント連携のヒント

メモリの名前空間
aqe/chaos-engineering/
├── experiments/*       - Experiment definitions & results
├── steady-states/*     - Baseline measurements
├── runbooks/*          - Generated recovery procedures
└── blast-radius/*      - Impact analysis
フリートの連携
const chaosFleet = await FleetManager.coordinate({
  strategy: 'chaos-engineering',
  agents: [
    'qe-chaos-engineer',          // Experiment execution
    'qe-performance-tester',      // Baseline metrics
    'qe-production-intelligence'  // Production monitoring
  ],
  topology: 'sequential'
});

関連スキル


お忘れなく

計画外の停止を防ぐために、意図的に障害を起こしましょう。 ユーザーより先に弱点を見つけます。定常状態を定義し、障害を注入して影響を測定し、弱点を修正して、ランブックを作成します。小さく始め、影響範囲を段階的に広げます。

エージェントを使用する場合: qe-chaos-engineer は、影響範囲の制御、自動ロールバック、包括的なレジリエンス検証を備えたカオス実験を自動化します。実験結果からランブックを生成します。

コメント