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.