Runtime Configurator の基礎知識

この文書では、Runtime Configurator の機能について概説し、Runtime Configurator に関連する重要な概念について説明します。RuntimeConfig リソースを作成する方法の詳細については、RuntimeConfig リソースの作成と削除をご覧ください。

Runtime Configurator とは

Runtime Configurator 機能を使用すると、データを Google Cloud Platform で Key-Value ペアの階層として定義し、格納することができます。これらの Key-Value ペアを以下のように使用することができます。

  • 動的にサービスを構成
  • サービス状態の伝達
  • データへの変更の通知を送信
  • サービスの複数の層の間で情報を共有

たとえば、スタートアップ手順を実行するノードのクラスタがあるシナリオを想像してみてください。起動中、Runtime Configurator にそのステータスを報告するためにノードを構成し、別のアプリケーションで Runtime Configurator へのクエリを実行して、ノードのステータスに基づいた特定のタスクを実行できます。

Runtime Configurator はさらに Watcher サービスと Waiter サービスを提供しています。Watcher サービスは、特定のキーペアを監視し、キーペアの値が変化した際に返ります。一方で Waiter サービスは、特定の終了条件を待ち、その終了条件が満たされた後にレスポンスを返します。

Runtime Configurator は gcloud CLI を使用して、またはスタンドアロン API として使用します。

コンセプト

  • Config リソース

    Config リソースには、変数の階層リストが含まれています。異なる目的ごとに構成を作成できます。たとえば、環境(本番、開発、テスト)、アプリケーションまたはサービス(バックエンド、フロントエンド)の異なる階層、またはエンティティ(アプリケーションのユーザーごとに 1 つの構成)に基づいて構成を分離できます。

  • 変数

    変数は RuntimeConfig リソースに属している Key-Value ペアです。変数のキーの形式は次のとおりです。

    projects/[project_id]/configs/[CONFIG_ID]/variables/[VARIABLE_NAME]
    

    アプリケーションに情報を通信する、あるいは完成した状態を知らせる、またはデータの変更の通知などを送信するために、変数の値を設定、取得、監視できます。変数は階層構造になっているため、変数キーにはいくつかのレベルがある可能性があります。たとえば、サンプル変数のキーは次のようになります。

    webserver-1/users/name
    webserver-1/users/favorite_color
    
  • ウォッチャー

    変数の変更、ウォッチャーのタイムアウト、あるいはウォッチャーが削除された場合、変数を監視し、返すため、watch() メソッドを使用できます。watch() 機能を使用し、データの変化に基づいてアプリケーションを動的に構成します。

  • ウェイター

    特定のパス接頭辞を監視するために Waiter リソースを作成した場合、接頭辞の下の変数が特定の数に達すると、ウェイターが返されます。これは基数条件と呼びます。

    たとえば、パス /foo の条件を設定し、パスの数が 2 に設定された場合、次のセットアップが条件を満たしています。

    • /foo/variable1 = "value1"
    • /foo/variable2 = "value2"
    • /bar/variable3 = "value3" # Not /foo path

    ウェイターには、失敗と成功両方の条件が設定可能です。

    ウェイターの作成が完了すると、サービスは完了のためにポーリングしたオペレーション オブジェクトの名前を返します。次のいずれかが発生すると、オペレーションは完了です。

    • success 条件を満たしている。
    • failure 条件を満たしている。
    • ウェイターが、最初のリクエストで指定されたタイムアウト期限に達した。

    ウェイターを使用することは、特定数のサービスが実行されるまでデプロイを一時停止するようなスタートアップ シナリオにおいて最適でしょう。

次のステップ