KubeCon+CloudNativeCon North America 2020レポート 2

ArgoCDによるワークフロー

ArgoCDによるワークフロー

後半はIntuitのSumit Nagal氏によるプレゼンテーションとなった。

Sumit Nagal氏のチームの概要。開発環境は4000人のデベロッパーに230のクラスターという規模

Sumit Nagal氏のチームの概要。開発環境は4000人のデベロッパーに230のクラスターという規模

Nagal氏のチームはReliability Teamという名称で、インフラ回りの信頼性向上のためのツールを提供しているチームだ。開発環境は230のクラスターに2500サービスが構成されているという概要だが、実際の本番環境はこの数倍から数十倍という規模だろう。PC用のパッケージソフトベンダーからSaaSベンダーにシフトしたIntuitにとってみれば、パブリッククラウドでのサービスはビジネスの根幹であり、AWSをフル活用していることが次のスライドで見て取れる。

Intuitのデベロッパー用インフラストラクチャーと利用するツール群

Intuitのデベロッパー用インフラストラクチャーと利用するツール群

Intuitが作ったArgoCDを利用して、KubernetesのCRD(Custom Resource Definition)を使っているところが特徴であり、Kubernetesに特化していると言える。Podを壊すコンテナを、Kubernetesと同じ作法の操作で実装できる。ただし、Litmus Chaosそのものが実装されているKubernetesの根幹が壊れるようなシナリオを実験することはできない。つまり壊す対象と壊す操作を行うPodが、同じインフラストラクチャーに載っていることになる。操作的には新しいことを覚える必要がないので導入は容易だろう。

Intuitがカオスエンジニアリングを導入した歴史の振り返り

Intuitがカオスエンジニアリングを導入した歴史の振り返り

この年表では2018年にNetflixのHystrixを導入し、2020年2月にLitmus ChaosをProof of Conceptとして初めて導入したという経緯がわかる。本格的な利用は2020年10月からということで、まだ始まったばかりという状況だ。

Jenkinsから起動されたワークフローがクラスターに適用され、モニタリングツールで結果が収集される

Jenkinsから起動されたワークフローがクラスターに適用され、モニタリングツールで結果が収集される

このスライドの下部にはモニタリングツールであるSplunkやAppDynamicsなどが並んでいる。ちなみにWavefrontはCAEなどで有名なWavefrontではなく、2017年にVMwareが買収したパロアルトのベンチャー企業が提供していたソフトウェアの名称だ。すでにVMwareのTanzuというクラウドネイティブなシステムの一部として組み込まれているモニタリングツールである。

Kubernetes上のシステムに対する障害パターンを同じKubernetesのPodやCRDとして実装し、それを実行するという特徴を表したのが次のスライドだ。このスライドではカオスエンジニアリングがRunner、Experiment、Resultという3つのパートで切り分けられ、最終的な結果がデータレイクの中におさめられて分析されるという概要を知ることができる。

カオスエンジニアリング実行の概要

カオスエンジニアリング実行の概要

最後に、ArgoCDをカオスエンジニアリングに応用したことのまとめが解説された。ここではCI/CDが最初に出てきていることから、デベロッパーの開発サイクルの中に障害パターンを組み込むIntuitの意図が見てとれる。またコスト削減という観点も紹介され、すでに利用しているツールを使うことで学習コストを下げつつ信頼性向上を目指していることも理解できる。

ArgoCDをカオスエンジニアリングに利用したことのまとめ

ArgoCDをカオスエンジニアリングに利用したことのまとめ

かつてあるベンダーのエンジニアとカオスエンジニアリングに関する対話の中で

「ソフトウェアやプラットフォームを壊すだけなら度胸さえあればだれでも簡単にできる。問題は、もしも元に戻らなかった時にそれを復旧することが難しいことだ。本番環境ならなおさらだし、そのためにはログやモニタリングツールが重要になる」

というコメントをもらったことがある。壊して元に戻れば成功だが、戻らなかった時の後始末は大変だという実感のこもったコメントだった。

Litmus Chaosでは、壊すこと以外にその結果を収集し、結果を検証するところまではできているようだ。その先、実際に障害を起こしてそれがどのように他のシステムに伝搬して副作用として何が起こるのか? をモニタリングやトレーシングする重要性は高くなるだろう。

カオスエンジニアリングにおいては実際の障害とは異なり、障害の原因はわかっている。しかしその影響を可視化することで、他のシステムとどのように関連しているのか? を掘り起こして修復するのはエンジニアの仕事なのだ。CNCFは、2021年にはカオスエンジニアリングに注目が集まるという予想をしている。「意図的に壊す」ことでモニタリング、トレーシング、メトリクスの重要性がさらに増していくだろう。

CNCFのTOCのチェアーLiz Riceもカオスエンジニアリングに注目

CNCFのTOCのチェアーLiz Riceもカオスエンジニアリングに注目

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

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る