Kubernetes環境に対応したオープンソースのクラウドネイティブなカオスエンジニアリングプラットフォーム「Chaos Mesh 1.0」の一般提供が始まった。小規模な異常を実システムに与え、複雑なシステムの脆弱(ぜいじゃく)性や弱点を発見する手助けになる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Chaos Meshのメンテナは2020年9月25日(米国時間)、Kubernetes環境でカオスオーケストレーションを実行するオープンソースのクラウドネイティブなカオスエンジニアリングプラットフォーム「Chaos Mesh 1.0」の一般提供開始を発表した。
カオスエンジニアリングとは、小規模な異常(フォールト)を実システムに与え、複雑なシステムの脆弱(ぜいじゃく)性や弱点を発見する手法だ。
Chaos Meshは、Cloud Native Computing Foundation(CNCF)でホストされているサンドボックスプロジェクト。CNCFは、クラウドネイティブアプリケーションの開発運用関連のオープンソースプロジェクトをホストするなどの活動を進めている団体だ。
Chaos Meshは、分散データベース「TiDB」のテストフレームワークとして開発が始まっており、分散システムで発生する可能性がある障害が考慮されている。Chaos Meshが提供する包括的なフォールトタイプはPod(コンテナの集合)やネットワーク、システムI/O、カーネルをカバーしている。
Chaos Meshの特徴は使いやすく、Kubernetesに対応していることだ。Chaos Meshには特別な依存関係がなく、MinikubeやKind(Kubernetes-in–docker)を含むKubernetesクラスタへ容易に直接デプロイできる。
テスト対象システムのデプロイロジックに変更を加える必要がなく、カオスエンジニアリングの実験(以下、カオス実験)において、フォールト注入動作のオーケストレーションを簡単に実現できる。実装の詳細を隠すことができるので、ユーザーはカオス実験のオーケストレーションに集中できる。
Chaos MeshではYAMLで記述した「CustomResourceDefinitions」(CRD)を使って、カオスオブジェクトを定義する。
KubernetesエコシステムではCRDは、カスタムリソースを実装するための成熟したソリューションであり、豊富な実装例やツールがある。CRDを使うことで、Chaos Meshを自然にKubernetesエコシステムに統合できる。
現段階では、Chaos Meshには2つのコンポーネントがある。
Chaos OperatorはアプリケーションとKubernetesインフラに管理可能な方法でカオスを注入する。そのためにカオス実験と自動オーケストレーションの簡単なカスタム定義を使用する。次に挙げるコンポーネントによって、この仕組みを実現している。
Chaos Operatorの現在の実装は、フォールト注入のために6種類のCRDオブジェクトをサポートしている。その内訳は「PodChaos」「NetworkChaos」「IOChaos」「TimeChaos」「StressChaos」「KernelChaos」だ。これらは次の主要なアクション(実験)に対応している。
Copyright © ITmedia, Inc. All Rights Reserved.