Grundlagen von Runtime Configurator

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 zu konfigurieren
  • Dienststatus zu kommunizieren
  • Benachrichtigungen über Änderungen an Daten zu verschicken
  • Informationen zwischen verschiedenen Dienstebenen auszutauschen

Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie einen Cluster von 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 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. 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

    Für einen Waiter können Sie sowohl eine Bedingung für eine fehlerhafte als auch für eine erfolgreiche Ausführung festlegen.

    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 eignet sich ideal für Startszenarien, bei denen Sie eine Bereitstellung unterbrechen müssen, bis eine gewisse Anzahl an Diensten ausgeführt wird.

Weitere Informationen