Fundamentos de Runtime Configurator

En este documento se ofrece una descripción general de la función Runtime Configurator y se explican los conceptos clave relacionados con ella. Para saber cómo crear un recurso RuntimeConfig, consulta el artículo Crear y eliminar recursos RuntimeConfig.

¿Qué es Runtime Configurator?

La función Runtime Configurator te permite definir y almacenar datos como una jerarquía de pares clave-valor en Google Cloud Platform. Puedes usar estos pares clave-valor para:

  • Configurar servicios de forma dinámica
  • Comunicar estados de servicios
  • Enviar notificaciones de cambios en los datos
  • Compartir información entre varios niveles de servicios

Por ejemplo, imagina una situación en la que tienes un clúster de nodos que ejecutan un procedimiento de inicio. Durante el inicio, puedes configurar tus nodos para que informen de su estado a Runtime Configurator y, a continuación, hacer que otra aplicación consulte Runtime Configurator y ejecute tareas específicas en función del estado de los nodos.

Runtime Configurator también ofrece un servicio Watcher y un servicio Waiter. El servicio Watcher monitoriza un par de claves específico y devuelve un valor cuando cambia el valor del par de claves, mientras que el servicio Waiter espera una condición de finalización específica y devuelve una respuesta cuando se cumple esa condición.

Puedes usar Runtime Configurator mediante la CLI de gcloud o como una API independiente.

Conceptos

  • Recurso de configuración

    Un recurso Config contiene una lista jerárquica de variables. Puedes crear diferentes configuraciones para distintos fines. Por ejemplo, puedes separar las configuraciones en función del entorno (producción, desarrollo o prueba), de los diferentes niveles de aplicaciones o servicios (backend o frontend) o de las entidades (una configuración por usuario de tu aplicación).

  • Variables

    Las variables son pares clave-valor que pertenecen a un recurso RuntimeConfig. Las claves de las variables tienen el siguiente formato:

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

    Puedes definir, obtener y monitorizar valores de variables para comunicar información a tus aplicaciones, indicar que se ha completado un estado, enviar notificaciones de cambios en los datos y más. Las variables son jerárquicas, por lo que la clave de tu variable puede tener varios niveles. Por ejemplo, las claves de variables de muestra podrían ser las siguientes:

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

    Puedes usar el método watch() para monitorizar una variable y devolverla cuando cambie, cuando se agote el tiempo de espera del monitor o cuando se elimine. Usa la función watch() para configurar dinámicamente tus aplicaciones en función de los cambios en tus datos.

  • Camareros

    Si crea un recurso Waiter para monitorizar un prefijo de ruta específico, el recurso Waiter se devuelve cuando el número de variables del prefijo alcanza una cantidad determinada. Esto se conoce como condición de cardinalidad.

    Por ejemplo, si define una condición para la ruta /foo y el número de rutas es 2, se cumplirá la condición con la siguiente configuración:

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

    Un waiter tiene condiciones de error y de éxito que puedes definir.

    Después de crear un Waiter, el servicio devuelve un objeto de operación que puedes consultar para saber si se ha completado. La operación se completa cuando se da alguna de las siguientes situaciones:

    • Se cumple la condición success.
    • Se cumple la condición failure.
    • El camarero ha alcanzado el tiempo de espera especificado en la solicitud inicial.

    Usar un waiter es ideal para situaciones de inicio, en las que es posible que tengas que pausar una implementación hasta que se esté ejecutando un número determinado de servicios.

Siguientes pasos