Información básica de Runtime Configurator

En este documento se proporciona una descripción general de la característica Runtime Configurator y se describen los conceptos clave relacionados con Runtime Configurator. Para aprender cómo crear un recurso RuntimeConfig, lee Crear y borrar recursos RuntimeConfig.

¿Qué es Runtime Configurator?

La característica Runtime Configurator te permite definir y almacenar datos como una jerarquía de pares clave-valor en Google Cloud Platform. Puedes utilizar estos pares clave-valor como una forma de:

  • Configurar servicios de forma dinámica
  • Comunicar estados de servicio
  • Enviar notificación de cambios a 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 los nodos para que informen su estado a Runtime Configurator, y luego hacer que otra aplicación consulte Runtime Configurator y ejecute tareas específicas según el estado de los nodos.

Runtime Configurator también ofrece un servicio de agentes de observación y un servicio de recurso de espera. El servicio de agentes de observación observa un par de claves específico y aparece cuando el valor del par de claves cambia, mientras que el servicio de recurso de espera aguarda a que se produzca una condición final específica y muestra una respuesta una vez que se cumple la condición final.

Puedes utilizar Runtime Configurator con gcloud CLI o como una API independiente.

Conceptos

  • Recurso de configuración

    Un recurso de configuración contiene una lista jerárquica de variables. Puedes crear configuraciones diferentes para propósitos distintos. Por ejemplo, puedes separar configuraciones según el entorno (producción, desarrollo, prueba), los niveles diferentes de aplicaciones o servicios (backend, frontend), o las entidades (una configuración por usuario de la aplicación).

  • Variables

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

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

    Puedes configurar, obtener y observar valores de variables para comunicar información a las aplicaciones, señalar un estado completo, enviar notificaciones de cambios de datos, entre otras cosas. Las variables son jerárquicas, por lo que la clave de variable podría tener varios niveles. Por ejemplo, las claves de variables de muestra podrían ser:

    webserver-1/users/name
    webserver-1/users/favorite_color
    
  • Agentes de observación

    Puedes usar el método watch() para ver una variable y regresar cuando la variable cambia, el agente de observación agota el tiempo de espera o se elimina. Usa la funcionalidad watch() para configurar tus aplicaciones de forma dinámica según los cambios en tus datos.

  • Recursos de espera

    Si recreas un recurso de espera para observar un prefijo de ruta específico, tal recurso aparece una vez que el número de variables en el prefijo alcanza una cantidad particular. Esto se conoce como condición de cardinalidad.

    Por ejemplo, si estableces una condición para la ruta /foo y la cantidad de rutas se establece en 2, la siguiente configuración cumpliría con la condición:

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

    Un recurso de espera tiene una condición de falla o éxito que puedes configurar.

    Después de crear un recurso de espera, el servicio muestra un objeto de operación que se completó. La operación se completa cuando se produce una de las siguientes situaciones:

    • Se cumple la condición success.
    • Se cumple la condición failure.
    • El recurso de espera alcanzó el tiempo de espera límite especificado en la solicitud inicial.

    El uso de un recurso de espera es ideal para situaciones de inicio, en las que es posible que debas pausar una implementación hasta que se ejecute una cierta cantidad de servicios.

¿Qué sigue?