Grundlagen des Runtime Configurators

Auf dieser Seite erhalten Sie eine Übersicht über die Komponente Runtime Configurator und die damit verbundenen Schlüsselkonzepte. Wie Sie eine RuntimeConfig-Ressource erstellen, erfahren Sie unter Erstellen und Löschen von RuntimeConfig-Ressourcen.

Was ist Runtime Configurator?

Runtime Configurator erlaubt es Ihnen, Daten als Hierarchie von Schlüssel/Wert-Paaren in der Google Cloud Platform zu definieren und zu speichern. Sie können diese Schlüssel/Wert-Paare verwenden, um:

  • Dienste dynamisch zu konfigurieren
  • Dienststatus zu kommunizieren
  • Benachrichtigungen über Änderungen an Daten zu verschicken
  • Informationen zwischen verschiedenen Dienstebenen zu teilen

Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie einen Cluster an Knoten haben, der einen Startvorgang ausführt. Während des Starts können Sie Ihre Knoten so konfigurieren, dass Sie ihren Status an Runtime Configurator weitergeben. Weiterhin haben Sie eine Anwendung, die Anfragen an Runtime Configurator stellt und je nach Status Ihrer Knoten bestimmte Aufgaben durchführt.

Runtime Configurator bietet auch einen Watcher-Dienst und einen Waiter-Dienst. Der Watcher-Dienst beobachtet ein bestimmtes Schlüsselpaar und meldet, wenn sich der Wert des Schlüsselpaars ändert. Der Waiter-Dienst wartet hingegen auf eine bestimmte Endbedingung und gibt eine Antwort zurück, wenn diese Endbedingung erfüllt wurde.

Sie können Runtime Configurator über die gcloud CLI oder als eigenständige API verwenden.

Konzepte

  • Config-Ressource

    Eine Config-Ressource beinhaltet eine hierarchische Liste an Variablen. Sie können verschiedene Konfigurationen für verschiedene Zwecke erstellen. Beispielsweise können Sie Konfigurationen nach Umgebung (prod, dev, test), der Ebene der Anwendung oder des Dienstes (Backend, Frontend) oder nach Entitäten (eine Konfiguration pro Nutzer Ihrer Anwendung) aufteilen.

  • Variablen

    Variablen sind Schlüssel/Wert-Paare, die zu einer RuntimeConfig-Ressource gehören. Variablen-Schlüssel haben das folgende Format:

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

    Sie können Variablenwerte festlegen, beziehen und beobachten, um Informationen zu Ihren Anwendungen zu kommunizieren, um einen abgeschlossenen Zustand zu signalisieren, um Benachrichtigungen über Datenveränderungen zu verschicken und mehr. Variablen sind hierarchisch, also könnte Ihr Variablenschlüssel mehrere Ebenen haben. Ein Variablenschlüssel könnte beispielsweise so aussehen:

    webserver-1/users/name
    webserver-1/users/favorite_color
    
  • Watcher

    Mit der Methode watch() können Sie eine Variable beobachten und erfahren, wenn sich die Variable ändert, der Watcher das Zeitlimit überschreitet oder der Watcher gelöscht wird. Die Funktion watch() verwenden Sie, um Anwendungen dynamisch anhand von Änderungen in Ihren Daten zu konfigurieren.

  • Waiter

    Wenn Sie eine Waiter-Ressource erstellen, um ein bestimmtes Pfadpräfix zu beobachten, antwortet der Waiter, sobald die Variablen unter dem Präfix eine gewisse Anzahl erreicht haben. In diesem Zusammenhang spricht man von Kardinalitätsbedingung.

    Wenn Sie beispielsweise für den Pfad /foo eine Bedingung und die Anzahl der Pfade auf 2 festlegen, erfüllt die folgende Konfiguration die Bedingung:

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

    Ein Waiter hat sowohl eine Fehlschlags- als auch eine Erfolgsbedingung, die Sie festlegen können.

    Nachdem Sie einen Waiter erstellt haben, gibt der Dienst ein Vorgangsobjekt zurück, das Sie zum Abschluss prüfen. Der Vorgang ist abgeschlossen, wenn einer dieser Faktoren zutrifft:

    • Die Bedingung success ist erfüllt.
    • Die Bedingung failure ist erfüllt.
    • Der Waiter erreicht das Zeitlimit, das in der ursprünglichen Anfrage festgelegt wurde.

    Ein Waiter ist ideal für Startszenarien, bei denen Sie eine Bereitstellung pausieren müssen, bis eine gewisse Anzahl an Diensten ausgeführt wird.

Nächste Schritte