Usa vistas regionales para lecturas resilientes del plano de control

Las dependencias del plano de control son las APIs y los servicios de metadatos que administran las definiciones de recursos en tus aplicaciones. Para compilar aplicaciones resilientes y de alta disponibilidad, y para automatizar los flujos de trabajo de implementación en Compute Engine, es fundamental que aísles estas dependencias. Aunque los extremos de la API global proporcionan una coherencia sólida en todas las regiones, cualquier aumento o interrupción transitoria de la latencia en el plano de control global o en una región remota puede retrasar o bloquear los servicios locales.

Para compilar aplicaciones confiables que puedan sobrevivir a las interrupciones de la API global y operar de forma independiente en cada región, puedes configurar tus servicios para consultar vistas regionales de los recursos globales. Cuando usas extremos de API de solo lectura regionalizados para leer definiciones de recursos, tu aplicación se comunica estrictamente con el plano de control de una región específica. Este aislamiento de fallas regionales garantiza que tus servicios sigan teniendo alta disponibilidad y capacidad de respuesta, incluso en caso de interrupciones globales.

Tipos de recursos admitidos

Los extremos de vista regional están disponibles para los siguientes recursos globales:

  • Proyectos: El extremo projectViews proporciona acceso regional de solo lectura al recurso de proyecto global .
  • Imágenes de SO: El extremo imageViews proporciona acceso regional de solo lectura a los recursos de imágenes de SO globales.

Limitaciones

Los metadatos de todos los recursos globales se almacenan en una base de datos global central. Cuando creas, lees, actualizas o borras un recurso con extremos de API globales estándar, Compute Engine solicita leer y escribir directamente en la base de datos global central, lo que proporciona una coherencia sólida.

Los extremos de vista regional leen los metadatos de recursos de réplicas regionales de solo lectura de la base de datos global central. Debido a que los cambios se copian de forma asíncrona a estas réplicas regionales, es posible que experimentes los siguientes comportamientos cuando consultes vistas regionales:

  • Retrasos leves: Cuando creas, actualizas o borras un recurso de forma global, puede tardar hasta 60 segundos en que ese cambio se copie en todos los extremos de vista regional. Durante este breve período, la lectura de una vista regional puede mostrar datos un poco más antiguos.
  • Respaldo automático: Si solicitas un recurso de una vista regional antes de que termine de copiarse a esa región, Compute Engine lee automáticamente directamente desde la base de datos global central para que tu solicitud siga teniendo éxito.

Diferencias entre la vista regional y la API global

En las siguientes pestañas, se resumen las diferencias entre los extremos de vista regional y los extremos de API globales estándar para cada tipo de recurso:

Proyectos

En las siguientes tablas, se resumen las diferencias entre los extremos de vista regional y los extremos de API globales estándar para el recurso de proyecto:

Función API global API de vista regional
Extremo Global Regional
URL del recurso /projects/PROJECT_ID /projects/PROJECT_ID/regions/REGION/projectViews
Dominio con fallas Global Aislado a la región especificada
Métodos admitidos Escritura y lectura Solo lectura (Get)
Cuota de API Consume buckets de cuota de lectura y escritura de la API global Consume buckets de cuota de lectura de la API regional
Coherencia de lectura tras escritura Coherencia sólida (lecturas de la base de datos global central) Coherencia eventual (lecturas de la réplica regional)
Comportamiento del campo de cuota Muestra el array quota y usa distribuciones entre regiones para proporcionar datos de uso de cuota en tiempo real en todas las regiones y zonas. El array quota se excluye del objeto Project que se muestra. Debido a que el projectViews extremo lee estrictamente desde una réplica regional y no realiza distribuciones entre regiones para recopilar métricas de cuota, el quota array no se muestra en absoluto. Para obtener límites de configuración de cuota y métricas de uso precisas en tiempo real, consulta el extremo global projects.get.

Imágenes de SO

En las siguientes tablas, se resumen las diferencias entre los extremos de vista regional y los extremos de API globales estándar para el recurso de imagen de SO:

Función API global API de vista regional
Extremo Global Regional
URL del recurso /projects/PROJECT_ID/global/images /projects/PROJECT_ID/regions/REGION/imageViews
Dominio con fallas Global Aislado a la región especificada
Métodos admitidos Escritura y lectura Solo lectura (Get y List)
Cuota de API Consume buckets de cuota de lectura y escritura de la API global Consume buckets de cuota de lectura de la API regional
Coherencia de lectura tras escritura Coherencia sólida (lecturas de la base de datos global central) Coherencia eventual (lecturas de la réplica regional)

Precios

El acceso a las vistas regionales a través de extremos de API regionales de solo lectura no genera cargos adicionales. Al igual que las solicitudes a la API de Compute Engine globales estándar, las solicitudes a extremos de vista regional consumen las cuotas de API estándar de tu proyecto, específicamente las cuotas de lectura de la API regional, pero no generan tarifas adicionales.

Prácticas recomendadas para la alta disponibilidad

Para maximizar la resiliencia de las aplicaciones, evitar la carga desproporcionada del plano de control y evitar la creación de puntos de acceso de una sola región, sigue estas prácticas de confiabilidad cuando configures sistemas automatizados y cargas de trabajo del cliente:

  • Consulta regiones locales para reducir el área afectada: Envía solicitudes a la API de projectViews y imageViews a la región exacta en la que se ejecuta tu carga de trabajo del cliente o clúster de implementación. Para las cargas de trabajo zonales, usa la región superior. La localización de las lecturas garantiza que una interrupción o falla de red en otra región no afecte tu servicio local.
  • Detecta cadenas de región de forma dinámica: No codifiques cadenas de región predeterminadas específicas en cadenas de región en bibliotecas cliente compartidas ni plantillas de implementación. En su lugar, detecta de forma dinámica la región de ejecución actual de la carga de trabajo desde su entorno de ejecución local para que las conmutaciones por error multirregionales funcionen de forma transparente.
  • Usa el aislamiento de cuota regional contra cargas de trabajo en competencia: Compute Engine aplica límites de frecuencia de la API por región. Los aumentos de tráfico o las secuencias de comandos descontroladas en una región consumen la cuota de lectura del bucket de esa región específica sin afectar la disponibilidad de la API ni activar límites de frecuencia (429 Too Many Requests) en tus otras regiones críticas.

¿Qué sigue?