Les microservices nécessitent une communication synchrone de type requête/réponse et une communication asynchrone basée sur les événements.
→Utilisez gRPC ou HTTP pour les appels synchrones. Utilisez Pub/Sub pour la diffusion d'événements asynchrones et la distribution.
Pourquoi: Pub/Sub découple entièrement les services pour la fiabilité et une mise à l'échelle indépendante. Les appels directs fournissent des réponses synchrones à faible latence.
Référence↗
Un service de calcul sans état (Cloud Run, Cloud Functions) doit traiter des fichiers temporaires.
→Utilisez Cloud Storage pour toutes les opérations d'E/S de fichiers temporaires.
Pourquoi: Le système de fichiers local des plateformes serverless est éphémère, en mémoire et non partagé. Cloud Storage fournit un stockage durable et évolutif accessible par toutes les instances.
Gérez la configuration et les secrets spécifiques à l'environnement pour les charges de travail GKE en suivant les principes des 12 facteurs.
→Utilisez les ConfigMaps K8s pour la configuration non sensible. Utilisez Secret Manager pour les valeurs sensibles, accessibles en toute sécurité via Workload Identity.
Pourquoi: Secret Manager est une solution plus sécurisée, gérée et auditable que les K8s Secrets. Workload Identity évite la gestion et la distribution des clés de compte de service.
Référence↗
L'application présente des pics de trafic extrêmes mais de longues périodes d'inactivité où le coût doit être minimisé.
→Utilisez Cloud Run avec `min-instances` réglé sur 0.
Pourquoi: Cloud Run peut réduire son échelle jusqu'à zéro, éliminant ainsi tous les coûts de calcul pendant les périodes d'inactivité. GKE et Compute Engine nécessitent un nombre minimal de nœuds/instances en fonctionnement.
Implémentez de manière cohérente les tentatives, les disjoncteurs et le mTLS sur l'ensemble des microservices sans modifier le code de l'application.
→Déployez un maillage de services (Anthos Service Mesh) sur GKE.
Pourquoi: Un maillage de services injecte la résilience, la sécurité et l'observabilité au niveau de la plateforme, ce qui maintient le code de l'application propre et assure un comportement cohérent.
Exposez les services backend à des partenaires externes ou à des applications mobiles avec limitation de débit, clés API et analyses d'utilisation.
→Utilisez API Gateway devant les services backend (par exemple, Cloud Run, GKE).
Pourquoi: API Gateway fournit une solution entièrement gérée pour les préoccupations liées au cycle de vie des API (sécurité, surveillance, versioning), les déchargeant du service backend.
Référence↗
Sélectionnez un stockage durable, évolutif et fortement cohérent pour un journal d'événements en ajout seulement.
→Utilisez Cloud Spanner pour le stockage des événements.
Pourquoi: Spanner offre une scalabilité horizontale avec une forte cohérence globale, essentielle pour maintenir l'intégrité d'un journal d'événements à grande échelle.
Une API pour une tâche de longue durée doit répondre immédiatement pendant que le traitement se poursuit en arrière-plan.
→Le point d'API met en file d'attente une tâche dans Pub/Sub ou Cloud Tasks et renvoie un 202 Accepted avec un ID de tâche. Un travailleur distinct (Cloud Run, Cloud Function) traite la tâche.
Pourquoi: Cela découple le temps de réponse visible par l'utilisateur du temps de traitement en arrière-plan, améliorant l'expérience utilisateur et la fiabilité du système. Utilisez Cloud Storage pour les mises à jour de statut.
Maintenir la cohérence des données entre plusieurs microservices sans base de données partagée.
→Implémentez le modèle Saga en utilisant un orchestrateur (Cloud Workflows) ou une chorégraphie (événements Pub/Sub) avec des transactions de compensation.
Pourquoi: Évite les validations en deux phases complexes et sujettes aux blocages, privilégiant la cohérence éventuelle qui est mieux adaptée aux systèmes distribués.
L'application appelle une API tierce limitée en débit où les données changent rarement.
→Utilisez Memorystore for Redis comme cache distribué. Implémentez le modèle cache-aside avec TTL. Utilisez un verrou distribué (par exemple, Redis SETNX) pour éviter les ruées de cache.
Pourquoi: Un cache distribué partage les données entre toutes les instances de l'application, réduisant drastiquement les appels à l'API externe, améliorant la latence et respectant les limites de débit.
Une équipe de développement a besoin d'environnements de développement cohérents, préconfigurés et sécurisés avec accès aux ressources VPC privées.
→Utilisez Cloud Workstations.
Pourquoi: Cloud Workstations fournit des environnements de développement gérés basés sur des conteneurs avec une sécurité intégrée et un accès VPC, résolvant le problème du "ça marche sur ma machine".
Référence↗
Une application SaaS exige que les locataires disposent de données, de clés de chiffrement et d'une résidence des données complètement isolées.
→Utilisez un modèle un projet par locataire. Gérez le provisionnement et la configuration de manière centralisée à l'aide d'IaC (Terraform).
Pourquoi: Fournit le plus haut niveau d'isolation pour IAM, la facturation, les quotas, la mise en réseau et l'emplacement des données, souvent requis par les entreprises ou les clients réglementés.