メインコンテンツへ
開発技術開発実践

カオスエンジニアリングに関する説明として、最も適切なものはどれか。

ア.カオスエンジニアリングは本番または本番相当環境で意図的に障害(ネットワーク遅延・インスタンス停止・依存サービス停止等)を注入し、システムの回復力(レジリエンス)を実証する実践である。正解
イ.カオスエンジニアリングはソースコードを無秩序に変更してバグを意図的に混入させ、テストがそれを検出できるか確認するミューテーションテストの一種である。
ウ.カオスエンジニアリングはアジャイル開発において要件定義を意図的に不確実にしておき、開発チームの対応力を測るマネジメント手法である。
エ.カオスエンジニアリングはシステムのセキュリティホールを発見するためのペネトレーションテストの別名であり、攻撃者の手法を模倣する。

解説

カオスエンジニアリングは「消防訓練の本気バージョン」。本番環境で(制御しながら)わざと火を起こして、「避難経路は機能するか?スプリンクラーは作動するか?」を確かめる。NetflixのChaos Monkeyが元祖で、「障害は来ることを前提に、事前に弱点を炙り出す」哲学が核心。

なぜ ア が正解か

アが正解。Netflix Chaos Monkey(EC2インスタンスをランダム停止)が有名な原点。現代ではChaos Mesh・Gremlin等のツールが存在。「仮説→実験設計→実施→計測→改善」のサイクルで実施する。マイクロサービス・分散システムの普及でカスケード障害リスクが高まり、カオスエンジニアリングの重要性が増している。

なぜ イ は間違いか

コードに意図的なバグを混入させてテストの検出力を確認するのはミューテーションテスト。カオスエンジニアリングはコードではなくインフラ・実行環境への障害注入。

なぜ ウ は間違いか

要件の不確実性をマネジメントするアジャイル手法とは別概念。カオスエンジニアリングはシステムのレジリエンス検証の技術的手法。

なぜ エ は間違いか

ペネトレーションテストはセキュリティ脆弱性を攻撃的に探索する手法。カオスエンジニアリングはセキュリティではなくシステム可用性・回復力の検証が目的。

出典: AI生成問題(学習用)