KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション
ArgoCDによるワークフロー
後半はIntuitのSumit Nagal氏によるプレゼンテーションとなった。
Nagal氏のチームはReliability Teamという名称で、インフラ回りの信頼性向上のためのツールを提供しているチームだ。開発環境は230のクラスターに2500サービスが構成されているという概要だが、実際の本番環境はこの数倍から数十倍という規模だろう。PC用のパッケージソフトベンダーからSaaSベンダーにシフトしたIntuitにとってみれば、パブリッククラウドでのサービスはビジネスの根幹であり、AWSをフル活用していることが次のスライドで見て取れる。
Intuitが作ったArgoCDを利用して、KubernetesのCRD(Custom Resource Definition)を使っているところが特徴であり、Kubernetesに特化していると言える。Podを壊すコンテナを、Kubernetesと同じ作法の操作で実装できる。ただし、Litmus Chaosそのものが実装されているKubernetesの根幹が壊れるようなシナリオを実験することはできない。つまり壊す対象と壊す操作を行うPodが、同じインフラストラクチャーに載っていることになる。操作的には新しいことを覚える必要がないので導入は容易だろう。
この年表では2018年にNetflixのHystrixを導入し、2020年2月にLitmus ChaosをProof of Conceptとして初めて導入したという経緯がわかる。本格的な利用は2020年10月からということで、まだ始まったばかりという状況だ。
このスライドの下部にはモニタリングツールであるSplunkやAppDynamicsなどが並んでいる。ちなみにWavefrontはCAEなどで有名なWavefrontではなく、2017年にVMwareが買収したパロアルトのベンチャー企業が提供していたソフトウェアの名称だ。すでにVMwareのTanzuというクラウドネイティブなシステムの一部として組み込まれているモニタリングツールである。
Kubernetes上のシステムに対する障害パターンを同じKubernetesのPodやCRDとして実装し、それを実行するという特徴を表したのが次のスライドだ。このスライドではカオスエンジニアリングがRunner、Experiment、Resultという3つのパートで切り分けられ、最終的な結果がデータレイクの中におさめられて分析されるという概要を知ることができる。
最後に、ArgoCDをカオスエンジニアリングに応用したことのまとめが解説された。ここではCI/CDが最初に出てきていることから、デベロッパーの開発サイクルの中に障害パターンを組み込むIntuitの意図が見てとれる。またコスト削減という観点も紹介され、すでに利用しているツールを使うことで学習コストを下げつつ信頼性向上を目指していることも理解できる。
かつてあるベンダーのエンジニアとカオスエンジニアリングに関する対話の中で
「ソフトウェアやプラットフォームを壊すだけなら度胸さえあればだれでも簡単にできる。問題は、もしも元に戻らなかった時にそれを復旧することが難しいことだ。本番環境ならなおさらだし、そのためにはログやモニタリングツールが重要になる」
というコメントをもらったことがある。壊して元に戻れば成功だが、戻らなかった時の後始末は大変だという実感のこもったコメントだった。
Litmus Chaosでは、壊すこと以外にその結果を収集し、結果を検証するところまではできているようだ。その先、実際に障害を起こしてそれがどのように他のシステムに伝搬して副作用として何が起こるのか? をモニタリングやトレーシングする重要性は高くなるだろう。
カオスエンジニアリングにおいては実際の障害とは異なり、障害の原因はわかっている。しかしその影響を可視化することで、他のシステムとどのように関連しているのか? を掘り起こして修復するのはエンジニアの仕事なのだ。CNCFは、2021年にはカオスエンジニアリングに注目が集まるという予想をしている。「意図的に壊す」ことでモニタリング、トレーシング、メトリクスの重要性がさらに増していくだろう。
Chaos Mesh、Litmus Chaosと2つのプロジェクトが存在するCNCFだが、今後どのようにこの2つのプロジェクトを育てていくのか要注目だ。
なお、Litmus Chaosに関しては以下のイントロダクションの動画を参照されたい。
Litmus Chaosのデモ:Getting started with Litmus | Cloud-Native Chaos Engineering | Litmus Tutorials
またこのセッションの中で行われたデモについては、以下のリポジトリーにソースコードなどが公開されている。
KubeConのデモ:https://github.com/litmuschaos/litmus/tree/master/demo/kubecon-demo
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- CNCFのサンドボックスプロジェクト、カオスエンジニアリングのLitmus Chaosを紹介
- OpenShift Commons Gatheringで語られたOpenShiftに最適なCI/CDとは
- カオスエンジニアリングのOSS、LitmusChaosの概要を解説するCNCFのウェビナーを紹介
- KubeConサンディエゴ最終日のキーノートはカオスエンジニアリング
- CI/CDから障害の復旧までハイレベルの運用自動化を実現するKeptnとは
- Red HatがOpenShift向けカオスエンジニアリングツールKrakenを発表
- CNDT2021、Kubernetesをカスタマイズするカスタムコントローラーのベスト/ワーストプラクティスを紹介
- CNDT 2022、ChatworkのSREがSLO策定にカオスエンジニアリングを使った経験を解説
- 「KubeCon NA 2022」から、初日のキーノートセッションを紹介
- KubeCon North America:座談会で見えてきた退屈なKubernetesの次の世界