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
projectViewsproporciona acceso regional de solo lectura al recurso de proyecto global . - Imágenes de SO: El extremo
imageViewsproporciona 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
projectViewsyimageViewsa 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?
- Obtén información para acceder a recursos globales de forma regional para lograr alta disponibilidad.
- Obtén información para solucionar problemas de vistas regionales de recursos globales.