Les dépendances du plan de contrôle sont les API et les services de métadonnées qui gèrent les définitions de ressources dans vos applications. Pour créer des applications résilientes à disponibilité élevée et automatiser les workflows de déploiement sur Compute Engine, il est essentiel d'isoler ces dépendances. Bien que les points de terminaison d'API globaux offrent une forte cohérence dans toutes les régions, tout pic de latence ou interruption temporaire dans le plan de contrôle global ou dans une région distante peut retarder ou bloquer les services locaux.
Pour créer des applications fiables qui peuvent survivre aux interruptions d'API globales et fonctionner indépendamment dans chaque région, vous pouvez configurer vos services pour qu'ils interrogent les vues régionales des ressources globales. En utilisant des points de terminaison d'API en lecture seule régionalisés pour lire les définitions de ressources, votre application communique strictement avec le plan de contrôle d'une région spécifique. Cette isolation des pannes régionales garantit que vos services restent disponibilité élevée et réactifs, même en cas d'interruptions mondiales.
Types de ressources acceptés
Les points de terminaison de vue régionale sont disponibles pour les ressources globales suivantes :
- Projets : le point de terminaison
projectViewsfournit un accès en lecture seule régional à la ressource de projet globale . - Images de l'OS : le point de terminaison
imageViewsfournit un accès en lecture seule régional aux ressources d'image d'OS globales .
Limites
Les métadonnées de toutes les ressources globales sont stockées dans une base de données globale centrale. Lorsque vous créez, lisez, mettez à jour ou supprimez une ressource à l'aide de points de terminaison d'API globaux standards, Compute Engine demande une lecture et une écriture directement dans la base de données globale centrale, ce qui assure une cohérence forte.
Les points de terminaison de vue régionale lisent les métadonnées de ressources à partir de répliques régionales en lecture seule de la base de données globale centrale. Étant donné que les modifications sont copiées de manière asynchrone dans ces répliques régionales, vous pouvez observer les comportements suivants lorsque vous interrogez des vues régionales :
- Légers retards : lorsque vous créez, mettez à jour ou supprimez une ressource à l'échelle mondiale, il peut s'écouler jusqu'à 60 secondes avant que cette modification ne soit copiée dans tous les points de terminaison de vue régionale. Pendant cette courte période, la lecture à partir d'une vue régionale peut renvoyer des données légèrement plus anciennes.
- Basculement automatique : si vous demandez une ressource à partir d'une vue régionale avant qu'elle ne soit copiée dans cette région, Compute Engine lit automatiquement les données directement à partir de la base de données globale centrale afin que votre requête aboutisse.
Différences entre la vue régionale et l'API globale
Les onglets suivants résument les différences entre les points de terminaison de vue régionale et les points de terminaison d'API globaux standards pour chaque type de ressource :
Projets
Les tableaux suivants résument les différences entre les points de terminaison de vue régionale et les points de terminaison d'API globaux standards pour la ressource de projet :
| Fonctionnalité | API globale | API de vue régionale |
|---|---|---|
| Point de terminaison | Monde | Régional |
| URL de la ressource | /projects/PROJECT_ID |
/projects/PROJECT_ID/regions/REGION/projectViews |
| Domaine de défaillance | Monde | Isolé dans la région spécifiée |
| Méthodes acceptées | Lecture et écriture | Lecture seule (Get) |
| Quota d'API | Utilise les buckets de quota de lecture et d'écriture de l'API globale | Utilise les buckets de quota de lecture de l'API régionale |
| Cohérence de lecture après écriture | Forte cohérence (lecture à partir de la base de données globale centrale) | Cohérence à terme (lecture à partir de la réplique régionale) |
| Comportement du champ de quota | Renvoie le tableau quota, en utilisant des fan-out interrégionaux pour
fournir des données d'utilisation du quota en temps réel dans toutes les régions et zones. |
Le tableau quota est exclu de l'objet
Project renvoyé. Étant donné que le point de terminaison projectViews
lit strictement à partir d'une réplique régionale et n'effectue
pas de fan-out interrégionaux pour collecter les métriques de quota, le
tableau quota n'est pas renvoyé du tout. Pour connaître les limites de configuration des quotas
et les métriques d'utilisation précises en temps réel, interrogez le point de terminaison
projects.get
global. |
Images de l'OS
Les tableaux suivants résument les différences entre les points de terminaison de vue régionale et les points de terminaison d'API globaux standards pour la ressource d'image d'OS :
| Fonctionnalité | API globale | API de vue régionale |
|---|---|---|
| Point de terminaison | Monde | Régional |
| URL de la ressource | /projects/PROJECT_ID/global/images |
/projects/PROJECT_ID/regions/REGION/imageViews |
| Domaine de défaillance | Monde | Isolé dans la région spécifiée |
| Méthodes acceptées | Lecture et écriture | Lecture seule (Get et List) |
| Quota d'API | Utilise les buckets de quota de lecture et d'écriture de l'API globale | Utilise les buckets de quota de lecture de l'API régionale |
| Cohérence de lecture après écriture | Forte cohérence (lecture à partir de la base de données globale centrale) | Cohérence à terme (lecture à partir de la réplique régionale) |
Tarifs
L'accès aux vues régionales via des points de terminaison d'API en lecture seule régionaux n'entraîne pas de frais supplémentaires. Comme les requêtes d'API Compute Engine globales standards, les requêtes adressées aux points de terminaison de vue régionale utilisent les quotas d'API standards de votre projet, en particulier les quotas de lecture d'API régionaux, mais n'entraînent pas de frais supplémentaires.
Bonnes pratiques pour la haute disponibilité
Pour maximiser la résilience des applications, éviter une charge disproportionnée du plan de contrôle et éviter de créer des points chauds à une seule région, suivez ces pratiques de fiabilité lorsque vous configurez des systèmes automatisés et des charges de travail client :
- Interrogez les régions locales pour réduire la zone affectée : envoyez des requêtes d'API
projectViewsetimageViewsà la région exacte où s'exécute votre charge de travail client ou votre cluster de déploiement. Pour les charges de travail zonales, utilisez la région parente. La localisation des lectures garantit qu'une interruption ou une panne de réseau dans une autre région n'a pas d'impact sur votre service local. - Détectez les chaînes de région de manière dynamique : ne codez pas en dur des chaînes de région par défaut spécifiques dans les bibliothèques clientes partagées ni dans les modèles de déploiement. Détectez plutôt de manière dynamique la région d'exécution actuelle de la charge de travail à partir de son environnement d'exécution local afin que les basculements multirégionaux fonctionnent de manière transparente.
- Utilisez l'isolation des quotas régionaux contre les charges de travail concurrentes:
Compute Engine applique des limites de débit d'API par région. Les pics de trafic ou les scripts incontrôlables dans une région consomment le quota de lecture du bucket de cette région spécifique sans affecter la disponibilité de l'API ni déclencher de limites de débit (
429 Too Many Requests) dans vos autres régions critiques.
Étape suivante
- Découvrez comment accéder aux ressources globales à l'échelle régionale pour une haute disponibilité.
- Découvrez comment résoudre les problèmes liés aux vues régionales des ressources globales.