CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介
Litmus Chaosのユースケース
次に紹介したのはLitmus Chaosのユースケースだ。ここでは、CD(Continuous Delivery)の中での利用、GitOpsの一貫としてテストの一部としての利用、そしてテストの一貫としての利用などが挙げられている。ここでもCI/CDの一部として使うこと、デベロッパーおよび運用担当者がテストの一部に取り入れることが推奨されていると言える。
Litmus Chaosのコンポーネントは、HelmのチャートとKubernetesの上で稼働するオペレータおよびYAMLファイルで構成されており、それ以外にはChaosHubと称されるリポジトリーが必要となる。パブリックなChaosHubとしてはLitmus Chaosの公式サイトが挙げられるが、プライベートにも構築できることがポイントだろう。またKubernetes以外のベアメタル、仮想マシンのインフラにも対応していることが書かれているのは、まだKubernetesに100%移行できていないユーザーに対するメッセージだ。
参考:Litmus Chaosの公式サイトにあるChaosHub:Chaos Experiments for Kubernetes
ChaosHubはいわゆるKubernetesのノウハウ集であるOperatorHubのカオスエンジニアリング版と言える。
より詳細にLitmus Chaosの中身を解説したのが次のスライドだ。
ChaosHubからダウンロードされたExperiment(障害を起こす実験の名称)がYAMLファイルとして記述され、それがChaos CRDとして定義され、ネームスペースを生成してスケジューラー、メトリクスデータのExporter、イベントのExporterがPodとして稼働するという構成だ。
Experimentの種類としては、Podに障害を起こすPod Chaosをはじめ、ノード、ネットワーク、ストレスなど多様である。Gremlinがシナリオベースのカオスエンジニアリングを指向しているのとは異なり、コンポーネントごとのExperimentとなっているのは興味深いと言えるだろう。運用担当者としてはシナリオベース、デベロッパーからみればコンポーネントベースのほうがわかりやすいという発想だろうか。
ここではデベロッパーが行うCIのプロセスの途中にLitmus Chaosを組み込む例を解説している。GitLab、GitHub Actions、Spinnaker、Keptnなどとの連携が解説されている。具体的には「開発」-「ステージング」-「本番」という環境の途中に「カオスエンジニアリングを実験するための環境」を挿入してテストを行うという発想だ。GitLab、GitHub Actions、Spinnaker、Keptnという名前が挙がる辺りに、レガシーなシステムよりもクラウドネイティブなシステムを指向している姿勢が見える。
Kubernetes以外の環境にもAPIを通じて対応できることを訴求し、Kubernetesに特化しつつもそれ以外のプラットフォームにも適用できることを解説した。
またすでに利用しているプロジェクト(ArgoCDやKeptn)以外にも、MySQL互換でありながらホリゾンタルなスケーラビリティを保証するVitessやKuberentesのポリシーエンジンOPA、マルチクラスターのKuberentesをコントロールするCrossplaneなどにも対応することを解説した。
Mukkara氏の最後のスライドはChaosNativeが提供するサービスの概略となったが、Guided Trial Pack、Enterprise Supportなどについては価格が提示されておらず、まだ試行錯誤中という状況が透けて見える内容となった。
セッション後半はQ&Aとデモ
このセッションの残り2/3は、Q&Aとデモという内容だ。Litmus Chaosのインストレーション、ダッシュボードの紹介、パブリッククラウドでの実装などをエンジニアのSatchitanand氏が紹介した。
Litmus Chaos自体を理解するには前半の20分が適切だが、インストレーションやダッシュボード、ワークフローなどを理解するためにはデモを見るほうが良いだろう。デプロイされたPodがどのように動いているのかを知るために、Kubernetesのコマンドラインを操作しながら、やや冗長とも言える丁寧な解説である。またGrafanaやPrometheusと言ったObservabilityのツールからどのようにシステムが可視化されるのか? を知ることもできる。
このセッションではソフトウェアの解説が主体で、Litmus Chaosの導入にどのような効果があるのか? などについてはユーザーが語るというフェーズにならないと知り得ないという段階だろう。先行するGremlinやサンドボックスプロジェクトであるChaos Meshなどとどう差別化していくのか、今後のLitmus Chaosに注目したい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション
- CI/CDから障害の復旧までハイレベルの運用自動化を実現するKeptnとは
- KubeConサンディエゴ最終日のキーノートはカオスエンジニアリング
- KubernetesネイティブなポリシーエンジンKyverno
- カオスエンジニアリングのOSS、LitmusChaosの概要を解説するCNCFのウェビナーを紹介
- Oracle Cloud Hangout Cafe Season5 #5「実験! カオスエンジニアリング」(2022年5月11日開催)
- 分散処理システムの検証をサービスとして提供するJepsenに注目
- CNDT 2022、ChatworkのSREがSLO策定にカオスエンジニアリングを使った経験を解説
- Red HatがOpenShift向けカオスエンジニアリングツールKrakenを発表
- KubeCon NA 2020、サービスメッシュのLinkerdの概要とユースケースを紹介