10年前にAmazonとNetflixがカオスエンジニアリングを開発した。これは両社のようなネット企業に起きるかもしれないワーストケースを、実際に起きる前にテストする方法だ。両社の社員だったある人物がその実装としてGremlinを立ち上げ、Site Reliability Engineers(SREs)のチームがいなくても大規模プラットホームのテストを実行できるようにした。そしてGremlinは米国時間11月18日、Kubernetesのクラスターに対してもカオスエンジニアリング的なテストをサポートすると発表した。
同社はその発表を今週サンディエゴで行われているKubernetesのカンファレンスKubeConの冒頭で行った。
Gremlinの共同創業者でCEOのKolton Andrus(コルトン・アンドラス)氏によると、そのサービスはKubernetesのクラスターを、エラーを起こさないようにあるいはその可能性を下げるためにテストし構成することが目標だ。彼によると、Kubernetesのクラスターであろうとなかろうと、ライブの環境でミッションクリティカルなシステムを極端に過酷な状況に置いてテストするカオステストが重要とのこと。しかし、しかしそのようなテストには危険も伴う。そこでリスクを最小限に抑えるためのベストプラクティスとして、重要な情報が確実に得られる範囲内でテストの規模を最小にする。
アンドラス氏は「必要最小限のクラスターだけをテストする。そしてそれらの部分にエラーがあったらKubernetesに何が起きるか、実際にエラーを起こして理解する。例えば、スケジューラーが休止したら何が起きるだろうか。目標は人々がいわゆる爆発半径を知ることだ。そして実験を安全に行えるようガイドしていく」と語る。
さらにGremlinは、Kubernetesのクラスターに一連のベストプラクティスで焼きを入れて頑丈にし、エラー耐性を増す。「Gremlinには、この種のテストを実行するために必要なツールはあるが、これまでにとても多くの顧客との対話や彼らの実験から学んだのは、クラスターを本当にフォールトトレラント(エラー許容性)にしレジリエント(エラー耐性)にするためには、クラスターのチューニングや正しい構成が必要なことだ」とアンドラス氏。
Gremlinのインターフェイスは、このようにターゲットに合わせた実験ができるようになっている。テストをしたい部分を指定すると、どこをテストしているかを視覚的に表示する。そして、制御不能の状況になったら、キルスイッチでテストを停止できる。
Gremlinは、2016年にローンチした。本社はサンノゼにある。プロダクトは、フリーミアムと有料制の両方がある。Crunchbaseのデータによると、同社はこれまで2700万ドルを調達している。
関連記事:How you react when your systems fail may define your business(ビジネスの生死を握るのは危機管理だ、未訳)
[原文へ]
(翻訳:iwatani、a.k.a. hiwa)