Microservices erfordern sowohl synchrone Anfrage-/Antwort- als auch asynchrone ereignisgesteuerte Kommunikation.
→Verwenden Sie gRPC oder HTTP für synchrone Aufrufe. Verwenden Sie Pub/Sub für asynchrone Ereignisverarbeitung und Fan-out.
Warum: Pub/Sub entkoppelt Dienste vollständig für Zuverlässigkeit und unabhängige Skalierung. Direkte Aufrufe ermöglichen synchrone Antworten mit geringer Latenz.
Referenz↗
Ein zustandsloser Compute-Dienst (Cloud Run, Cloud Functions) muss temporäre Dateien verarbeiten.
→Verwenden Sie Cloud Storage für alle temporären Datei-I/O.
Warum: Das lokale Dateisystem von Serverless-Plattformen ist temporär, im Speicher und nicht geteilt. Cloud Storage bietet dauerhaften, skalierbaren Speicher, auf den alle Instanzen zugreifen können.
Verwalten Sie umgebungsspezifische Konfigurationen und Secrets für GKE-Workloads gemäß den 12-Faktor-Prinzipien.
→Verwenden Sie K8s ConfigMaps für nicht-sensible Konfigurationen. Verwenden Sie Secret Manager für sensible Werte, auf die sicher über Workload Identity zugegriffen wird.
Warum: Secret Manager ist eine sicherere, verwaltete und prüfbare Lösung als K8s Secrets. Workload Identity vermeidet die Verwaltung und Verteilung von Dienstkontoschlüsseln.
Referenz↗
Die Anwendung hat extreme Verkehrsspitzen, aber lange Leerlaufzeiten, in denen die Kosten minimiert werden müssen.
→Verwenden Sie Cloud Run mit `min-instances` auf 0 gesetzt.
Warum: Cloud Run kann auf Null skaliert werden, wodurch alle Compute-Kosten während Leerlaufzeiten entfallen. GKE und Compute Engine erfordern eine Mindestanzahl laufender Knoten/Instanzen.
Implementieren Sie Wiederholungsversuche, Circuit Breaker und mTLS konsistent über Microservices hinweg, ohne Änderungen am Anwendungscode vorzunehmen.
→Stellen Sie ein Service Mesh (Anthos Service Mesh) auf GKE bereit.
Warum: Ein Service Mesh injiziert Resilienz, Sicherheit und Observability auf Plattformebene, hält den Anwendungscode sauber und gewährleistet konsistentes Verhalten.
Stellen Sie Backend-Dienste externen Partnern oder mobilen Apps mit Ratenbegrenzung, API-Schlüsseln und Nutzungsanalysen zur Verfügung.
→Verwenden Sie API Gateway vor Backend-Diensten (z. B. Cloud Run, GKE).
Warum: API Gateway bietet eine vollständig verwaltete Lösung für API-Lifecycle-Anliegen (Sicherheit, Monitoring, Versionierung) und entlastet damit den Backend-Dienst.
Referenz↗
Wählen Sie einen dauerhaften, skalierbaren und stark konsistenten Speicher für ein Nur-Anhängen-Protokoll von Ereignissen.
→Verwenden Sie Cloud Spanner für den Ereignisspeicher.
Warum: Spanner bietet horizontale Skalierbarkeit mit starker globaler Konsistenz, was entscheidend ist, um die Integrität eines Ereignisprotokolls in großem Maßstab zu gewährleisten.
Eine API für einen langlaufenden Job muss sofort antworten, während die Verarbeitung im Hintergrund fortgesetzt wird.
→Der API-Endpunkt reiht eine Aufgabe in Pub/Sub oder Cloud Tasks ein und gibt eine 202 Accepted mit einer Job-ID zurück. Ein separater Worker (Cloud Run, Cloud Function) verarbeitet die Aufgabe.
Warum: Dies entkoppelt die benutzerseitige Antwortzeit von der Backend-Verarbeitungszeit, verbessert die UX und die Systemzuverlässigkeit. Verwenden Sie Cloud Storage für Statusaktualisierungen.
Gewährleisten Sie Datenkonsistenz über mehrere Microservices hinweg ohne eine gemeinsame Datenbank.
→Implementieren Sie das Saga-Muster mit einem Orchestrator (Cloud Workflows) oder einer Choreografie (Pub/Sub-Ereignisse) mit kompensierenden Transaktionen.
Warum: Vermeidet komplexe und zu Sperrungen neigende Zwei-Phasen-Commits und bevorzugt Eventual Consistency, die besser zu verteilten Systemen passt.
Die Anwendung ruft eine ratenbegrenzte Drittanbieter-API auf, deren Daten sich selten ändern.
→Verwenden Sie Memorystore for Redis als verteilten Cache. Implementieren Sie das Cache-Aside-Muster mit TTL. Verwenden Sie eine verteilte Sperre (z. B. Redis SETNX), um Cache-Stampedes zu verhindern.
Warum: Ein verteilter Cache teilt Daten über alle Anwendungsinstanzen hinweg, reduziert drastisch die Aufrufe an die externe API, verbessert die Latenz und berücksichtigt Ratenbegrenzungen.
Ein Entwicklungsteam benötigt konsistente, vorkonfigurierte, sichere Entwicklungsumgebungen mit Zugriff auf private VPC-Ressourcen.
→Verwenden Sie Cloud Workstations.
Warum: Cloud Workstations bietet verwaltete, containerbasierte Entwicklungsumgebungen mit integrierter Sicherheit und VPC-Zugriff, wodurch das Problem "es funktioniert auf meiner Maschine" gelöst wird.
Referenz↗
Eine SaaS-Anwendung erfordert, dass Mieter vollständig isolierte Daten, Verschlüsselungsschlüssel und Datenresidenz haben.
→Verwenden Sie ein Projekt-pro-Mandant-Modell. Verwalten Sie die Bereitstellung und Konfiguration zentral mit IaC (Terraform).
Warum: Bietet das höchste Maß an Isolation für IAM, Abrechnung, Quoten, Netzwerke und Datenstandorte, oft von Unternehmen oder regulierten Kunden gefordert.