KubernetesのPodやネットワークをわざと落としまくってカオスエンジニアリングのテストができる「Chaos Mesh」がバージョン1.0に到達
Kubernetes上のシステムに対してわざと障害を発生させることで、システムの耐障害性のテストを行うためのソフトウェア「Chaos Mesh」がバージョン1.0に到達したことを、Chaos Meshの開発チームが明らかにしました。
Proud to announce the GA of #ChaosMesh 1.0:
— Chaos Mesh® (@chaos_mesh) September 25, 2020
Powerful chaos support
Visual chaos orchestration
Enhanced observability
Safe and controllable chaos
Learn more: https://t.co/ynx3KIMzIS#chaosengineering @CloudNativeFdn
Chaos Meshは、Kubernetesの開発などをホストしているCloud Native Computing Foundationのサンドボックスプロジェクトに採用されているオープンソースのソフトウェアです。
Netflixが提唱するカオスエンジニアリングをKubernetesでも実現
Chaos Meshが実現するのは、いわゆる「カオスエンジニアリング」と呼ばれるシステムテスト。
カオスエンジニアリングは動画配信サービスで知られるNetflixの開発チームが提唱したシステムテストの手法で、分散システムの一部に対してわざとさまざまな障害を発生させることで、システムが備えている復旧機能が本当に機能するかどうかを試すというもの。
日常的にあえて本番環境で障害を起こし、対応し続けることで、実際に本当の障害が発生したとしても何の問題もなく対処できるようになることを目指すわけです。
Netflixはそのためのツールとして「Chaos Monkey」や「Chaos Kong」といったツールも開発し、公開しています。
- サービス障害を起こさないために、障害を起こし続ける。逆転の発想のツールChaos Monkeyを、Netflixがオープンソースで公開
- クラウドのリージョンを丸ごと落とす過酷な試験を実現する「Chaos Kong」、Netflixが発表。「カオスエンジニアリング」の指針も表明
Chaos MeshはこのカオスエンジニアリングのためのツールをKubernetes向けに開発したものといえます。
さまざまな障害テストの機能を提供
Chaos MeshはKubernetesのクラスタに対して下記のようなさまざまな障害を仕掛けることができます。
「PodChaos」試験は特定のPodの障害をシミュレート、「NetworkChaos」試験はPod間の通信を止めるネットワーク分断や通信の遅延、重複、データの紛失などをシミュレート。「StressChaos」試験はPod群に対する大きな負荷をシミュレート、「TimeChaos」試験は特定の日時などをシミュレート、「IOChaos」試験はファイルシステムなどのI/Oの遅延やエラーをシミュレート、「KernelChaos」ではカーネルを共有するPod群へのエラーをシミュレート(本番環境への適用は非推奨)など。
Kubernetesの標準的な機能であるCustom Resource Definitions(CRD)を用いてこれらの機能を実現するため、対象とするシステムの変更などは不要で、容易に導入可能。
通常のKubernetesだけでなく、MiniKubeやKindにも対応しますので、プログラマのローカルマシンなどで試すことも可能でしょう。
あわせて読みたい
「AWS Lambda Extensions」発表。AWS Lambdaにモニタリング用エージェントなどが組み込めるように
≪前の記事
RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR]