Relay Proxy

El proxy de retransmisión de App Configuration se sitúa entre los clientes SDK y el servicio IBM Cloud App Configuration. En lugar de que cada SDK se conecte directamente a IBM Cloud, los clientes del SDK se conectan al proxy dentro de su propia red. El proxy recupera y almacena en caché la configuración de IBM Cloud App Configuration y, a continuación, la distribuye a todos los clientes conectados.

Diagrama
IBM Cloud App Configuration Relay Proxy

¿Por qué utilizar Relay Proxy?

Considera la posibilidad de utilizar Relay Proxy en los siguientes casos:

  • Reducir las llamadas salientes a IBM Cloud: el proxy abre una conexión ascendente por cada combinación configurada de colección y entorno, independientemente del número de instancias de SDK desplegadas en su flota.
  • Implementaciones en red aislada o red privada: los clientes SDK solo se comunican con el proxy dentro de su red. El proxy gestiona toda la conectividad con IBM Cloud.
  • Punto único de autenticación: se requiere una clave API de IAM de IBM Cloud en el proxy. Los clientes del SDK se autentican en el proxy mediante una clave que tú defines.
  • Conmutación por error entre la instancia principal y la de respaldo: el proxy cambia automáticamente a una instancia de respaldo de IBM Cloud App Configuration cuando la principal no está disponible, y se recupera automáticamente.
  • Inicio progresivo a partir de un archivo de configuración inicial local: en el modo de inicio rápido, el proxy sirve la configuración inmediatamente a partir de un archivo de configuración inicial local, mientras obtiene datos actualizados de IBM Cloud en segundo plano.

Cómo se conectan los clientes del SDK al Relay Proxy

Los clientes del SDK utilizan los mismos tipos de conexión que emplean para conectarse directamente a IBM Cloud App Configuration, pero se dirigen al host y al puerto del proxy:

Tipos de conexión del SDK al Relay Proxy
Tipo de SDK Tipo de conexión Finalidad
SDK de servidor WebSocket Recibe notificaciones en tiempo real sobre cambios en la configuración
SDK de cliente Eventos enviados por el servidor (SSE) Recibe instantáneas de configuración y actualizaciones
Todos los SDK REST Obtener la configuración inicial

Multiplexación de conexiones

Una de las principales ventajas de Relay Proxy es la multiplexación de conexiones. Cientos o miles de instancias de SDK pueden conectarse al proxy, pero este solo abre una conexión de origen WebSocket por cada combinación collection × environment con IBM Cloud App Configuration. Ese recuento de conexiones de salida viene determinado por tu configuración y nunca aumenta con el tamaño de tu flota.

Por ejemplo, si se configuran dos colecciones (inventory y payments) que se utilizan en dos entornos (dev y prod), el proxy mantiene exactamente cuatro sesiones de WebSocket de origen, independientemente del número de instancias de SDK que se conecten a él:

Ejemplo de sesiones de WebSocket de upstream para dos colecciones y dos entornos
Sesión de WebSocket de Upstream Colección Entorno
Sesión 1 inventario desarrollo
Sesión 2 inventario prod
Sesión 3 pagos desarrollo
Sesión 4 pagos prod

Cuando IBM Cloud App Configuration envía un evento de cambio en una conexión ascendente, el proxy lo distribuye al instante a todos los clientes SDK suscritos a esa combinación.

Cada collection × environment combinación dispone de su propia ranura de caché aislada y una sesión de WebSocket (caché de origen) dentro del proxy.

Modos de arranque

Relay Proxy admite dos modos de inicio, dependiendo de si se ha configurado un archivo de semillas.

Inicio normal

En el modo de inicio normal, el proxy debe conectarse correctamente a IBM Cloud App Configuration antes de atender cualquier solicitud. Si falla la obtención de alguna configuración, se interrumpe el inicio. Este modo garantiza que los clientes reciban siempre datos fiables desde su primera solicitud.

La secuencia de arranque es la siguiente:

  1. Recuperar la configuración de IBM Cloud App Configuration: todas las combinaciones configuradas se recuperan de forma sincrónica.
  2. Almacenar en caché todas las configuraciones en memoria.
  3. Inicia el servidor HTTP y acepta las solicitudes de los clientes.
  4. Abrir sesiones de WebSocket en el repositorio original para recibir notificaciones de cambios en tiempo real, una por cada combinación.

Inicio rápido

En el modo de inicio rápido, un archivo de inicialización precalienta la caché para que el proxy pueda empezar a atender solicitudes de inmediato, sin tener que esperar a que se realice un IBM Cloud o. La nueva configuración se descarga en segundo plano y se envía a todos los clientes ya conectados cuando está disponible. Este modo es adecuado para entornos aislados y despliegues resilientes.

La secuencia de arranque es la siguiente:

  1. Carga el archivo de inicialización desde el disco: la caché se precalienta al instante, sin necesidad de realizar ninguna llamada de red.
  2. Inicia inmediatamente el servidor HTTP.
  3. Recupera la configuración actualizada de IBM Cloud App Configuration en segundo plano; sobrescribe los datos iniciales y notifica a todos los clientes conectados.
  4. Abrir sesiones de WebSocket en el repositorio original para recibir notificaciones de cambios en tiempo real, una por cada combinación.

Para obtener información sobre el formato del archivo de semillas y las opciones de configuración, consulta la referencia de la API de App Configuration.

Cómo se aplica un cambio de configuración a tus SDK

Cuando se publica un cambio de configuración en la consola de App Configuration, dicho cambio llega a los clientes del SDK siguiendo la secuencia siguiente:

  1. IBM Cloud App Configuration envía un mensaje WebSocket al proxy de la sesión ascendente correspondiente.
  2. El proxy vuelve a recuperar la configuración actualizada para esa combinación y la almacena en la caché.
  3. El proxy difunde la configuración actualizada a todos los clientes conectados:
    • Los SDK de servidor reciben un evento WebSocket.
    • Los SDK de cliente reciben un evento SSE con la carga útil de configuración actualizada.

Conmutación por error de sistemas primario y de respaldo

Cuando se configura una instancia de copia de seguridad, el proxy proporciona una conmutación automática por error para las sesiones de WebSocket y las recuperaciones de configuración.

  • WebSocket sesiones — Cada combinación mantiene su propio WebSocket de origen. Cuando la instancia principal deja de estar disponible, el proxy se conecta inmediatamente a la de respaldo. El proxy vuelve a intentar conectarse a la instancia principal cada 15 segundos y cierra la conexión de respaldo tan pronto como la instancia principal se recupera.
  • Recuperaciones de configuración: las recuperaciones de configuración de HTTP siguen un orden de primario y luego de respaldo.

Configuración de los SDK para que apunten al Relay Proxy

Para conectar tus clientes SDK al Relay Proxy en lugar de directamente a IBM Cloud:

  1. Sustituye el nombre de host IBM Cloud en la inicialización de tu SDK por el host y el puerto del proxy.
  2. Region, guid, API key, collection_id y environment_id deben coincidir con los valores especificados en la configuración del proxy de retransmisión.

No es necesario realizar ningún otro cambio en el código del SDK.

Para empezar a utilizar Relay Proxy, ponte en contacto con el servicio de asistencia de App Configuration.