カオスエンジニアリングプラットフォームのGremlinが先頃、自動サービスディスカバリ(automated service discovery)を発表した。ダイナミックな環境内で動作しているサービスを自動的に検出する新機能だ。検出されたサービスはカオス試験のターゲットとして有効になる。APIキーを対象としたロールベースのアクセス制御も追加された。
新たなサービスディスカバリ機能は、カオス試験の対象となるサービスの検索を容易なものにする。Gremlinのエージェントは、Kubernetesクラスタやコンテナ内、あるいはホスト上で実行されているプロセスを自動で検出することができる。プロセスが識別できると、同じエージェントが操作用のメタデータを生成する。この中には、アクティブなUDPとTCPソケット、プロセス名とID、プロセス実行ファイルへのパス、コマンドライン引数が含まれる。
サービスディスカバリページでは、カオス攻撃の対象とするサービスを選択できる。Gremlinは、目的のサービスが実行されているすべてのシステムを自動的に選択するが、システム群のサブセットを分離して対象とするように試験を修正することも可能だ。
インターフェースにはサービスによって実施された試験のヒストリが、月毎のアクティビティとともに表示される。試験カバレッジ内のギャップや、どのサービスをテストするべきかを特定する上で、このビューは有用だ。過去の試験を再実行することもできる。
自動収集されたメタデータ以外に、サービス詳細ページから追加情報を入力することもできる。サービスの説明の追加やオーナの特定、サービスダッシュボードやインシデント応答ノートブックへのリンクなどが可能だ。
Gremlinエージェントは、事前設定の必要なく、Kubernetesベースのサービスを自動検索する。ホストベースやコンテナベースのサービスについては、追加の設定が必要だ。設定が完了すると、新たなサービスや既存サービスの変更が毎時検出される。識別済サービス内の新たなポッドやコンテナやホストは、30秒以内に登録される。
同じく最近リリースされたのが、APIキーのロールベースのアクセス管理(RBAC)である。今回の変更により、新しいAPIキーはすべてユーザレベルで作成されるとともに、作成したユーザとして同じパーミッションを共有するようになる。APIには、ユーザの追加や削除、クライアント証明書の管理、レポート生成などを行う新たなルートも用意された。
この追加により、チームレベルのAPIキーは非推薦になる。チームレベルのキーは2021年7月15日までは動作するが、以降は新しいユーザAPIキーのみがサポート対象になる。既存のキーについては、Gremlinアプリケーション経由でユーザレベルAPIキーに移行できる。
サービスディスカバリは、すべてのGremlinユーザを対象に、無償で提供される。詳細についてはGremlinのブログを参照して頂きたい。