Principes de base de Runtime Configurator

Ce document présente la fonctionnalité Runtime Configurator et décrit les concepts clés associés. Pour découvrir comment créer une ressource RuntimeConfig, consultez la page Créer et supprimer des ressources RuntimeConfig.

Qu'est-ce que Runtime Configurator ?

La fonctionnalité Runtime Configurator vous permet de définir et de stocker des données sous la forme d'une hiérarchie de paires valeur/clé dans Google Cloud Platform. Vous pouvez utiliser ces paires valeur/clé pour effectuer les opérations suivantes :

  • Configurer dynamiquement des services
  • Communiquer les états de service
  • Envoyer une notification en cas de modification apportée aux données
  • Partager des informations entre plusieurs niveaux de service

Par exemple, imaginez que vous possédez un cluster de nœuds qui exécutent une procédure de démarrage. Pendant le démarrage, vous pouvez configurer vos nœuds pour qu'ils indiquent leur état à Runtime Configurator, puis demander à une autre application d'interroger Runtime Configurator et d'exécuter des tâches spécifiques en fonction de l'état des nœuds.

Runtime Configurator propose également des services d'observation et de veille. Le service d'observation surveille une paire de clés spécifique et renvoie une réponse lorsque sa valeur est modifiée. Le service de veille, quant à lui, attend une condition de fin spécifique et renvoie une réponse une fois la condition remplie.

Vous pouvez utiliser Runtime Configurator via la gcloud CLI ou en tant qu'API autonome.

Concepts

  • Ressource Configuration

    Une ressource Configuration contient une liste hiérarchique de variables. Vous pouvez créer plusieurs configurations à des fins différentes. Par exemple, vous pouvez séparer les configurations en fonction de l'environnement ("prod", "dev", "test"), des différents niveaux d'applications ou de services (backend, interface), ou des entités (une configuration par utilisateur de votre application).

  • Variables

    Les variables sont des paires valeur/clé appartenant à une ressource RuntimeConfig. Les clés de variable ont le format suivant :

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

    Vous pouvez définir, obtenir et surveiller des valeurs de variables pour communiquer des informations à vos applications, pour signaler un état terminé, pour envoyer une notification liée à des modifications de données, et plus encore. Les variables sont hiérarchisées, donc votre clé de variable peut avoir plusieurs niveaux. Par exemple, des clés de variable peuvent suivre le format suivant :

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

    Vous pouvez utiliser la méthode watch() pour surveiller une variable et renvoyer une réponse lorsque celle-ci est modifiée, lorsque l'observateur expire ou lorsqu'il est supprimé. Grâce à la fonction watch(), vous pouvez configurer dynamiquement vos applications en fonction des modifications apportées à vos données.

  • Services de veille

    Si vous créez une ressource de veille pour surveiller un préfixe de chemin d'accès spécifique, celle-ci renvoie une réponse lorsque le nombre de variables sous le préfixe atteint une valeur particulière. C'est ce que l'on appelle une condition de cardinalité.

    Par exemple, si vous définissez une condition pour le chemin /foo et que le nombre de chemins est défini sur 2, la configuration suivante remplira la condition :

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

    Un veilleur possède à la fois une condition d'échec et de réussite que vous pouvez définir.

    Après avoir créé un veilleur, le service renvoie un objet d'opération que vous interrogez à des fins d'exécution. L'opération se termine lorsque l'un des événements suivants se produit :

    • La condition success est remplie.
    • La condition failure est remplie.
    • Le veilleur a atteint le délai d'expiration spécifié dans la requête initiale.

    L'utilisation d'un veilleur est idéale pour les scénarios de démarrage, dans lesquels vous devez interrompre votre déploiement jusqu'à l'exécution d'un certain nombre de services.

Étapes suivantes