Runtime Configurator Fundamentals

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. Diese Schlüssel/Wert-Paare können Sie nutzen, um:

  • Dienste dynamisch 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.

Der Runtime Configurator bietet auch einen Watcher-Dienst und einen Waiter-Dienst. Der Watcher-Dienst überwacht ein bestimmtes Schlüsselpaar und gibt zurück, wenn sich der Wert des Schlüsselpaars ändert, während der Waiter-Dienst auf eine bestimmte Endbedingung wartet und eine Antwort zurückgibt, sobald diese Endbedingung erfüllt ist.

Sie können Runtime Configurator mithilfe des gcloud-Tools oder als eigenständige API nutzen.

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 (Back-End, Front-End) 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. Variablenschlüssel haben folgendes 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, sodass Ihr Variablenschlüssel mehrere Ebenen haben kann. 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 sich ein bestimmtes Pfadpräfix anzusehen, wird der Waiter zurückgegeben, sobald die Anzahl der Variablen unter dem Präfix einen bestimmten Wert erreicht. 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 der folgenden Vorgänge eintritt:

    • Die Bedingung success ist erfüllt.
    • Die Bedingung failure ist erfüllt.
    • Der Waiter hat die in der ersten Anfrage angegebene Zeitüberschreitung erreicht.

    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