Los microservicios requieren comunicación síncrona de solicitud/respuesta y comunicación asíncrona basada en eventos.
→Utilice gRPC o HTTP para llamadas síncronas. Utilice Pub/Sub para eventos asíncronos y distribución (fan-out).
Por qué: Pub/Sub desacopla completamente los servicios para fiabilidad y escalado independiente. Las llamadas directas proporcionan respuestas síncronas de baja latencia.
Referencia↗
Un servicio de cómputo sin estado (Cloud Run, Cloud Functions) necesita procesar archivos temporales.
→Utilice Cloud Storage para todas las operaciones de E/S de archivos temporales.
Por qué: El sistema de archivos local de las plataformas sin servidor es efímero, en memoria y no compartido. Cloud Storage proporciona almacenamiento duradero y escalable accesible por todas las instancias.
Gestione la configuración específica del entorno y los secretos para las cargas de trabajo de GKE siguiendo los principios de las 12-factor apps.
→Utilice ConfigMaps de K8s para configuraciones no sensibles. Utilice Secret Manager para valores sensibles, accedidos de forma segura a través de Workload Identity.
Por qué: Secret Manager es una solución más segura, gestionada y auditable que los Secretos de K8s. Workload Identity evita la gestión y distribución de claves de cuentas de servicio.
Referencia↗
La aplicación tiene picos de tráfico extremos pero largos periodos de inactividad donde el costo debe minimizarse.
→Utilice Cloud Run con `min-instances` configurado a 0.
Por qué: Cloud Run puede escalar a cero, eliminando todos los costos de cómputo durante los periodos de inactividad. GKE y Compute Engine requieren nodos/instancias mínimos en ejecución.
Implemente reintentos, disyuntores y mTLS de manera consistente en microservicios sin cambios en el código de la aplicación.
→Implemente una malla de servicios (Anthos Service Mesh) en GKE.
Por qué: Una malla de servicios inyecta resiliencia, seguridad y observabilidad a nivel de plataforma, manteniendo el código de la aplicación limpio y asegurando un comportamiento consistente.
Exponga servicios de backend a socios externos o aplicaciones móviles con limitación de velocidad, claves de API y análisis de uso.
→Utilice API Gateway delante de los servicios de backend (por ejemplo, Cloud Run, GKE).
Por qué: API Gateway proporciona una solución totalmente gestionada para las preocupaciones del ciclo de vida de la API (seguridad, monitoreo, versionado), descargándolas del servicio de backend.
Referencia↗
Seleccione un almacenamiento duradero, escalable y fuertemente consistente para un registro de eventos de solo anexión.
→Utilice Cloud Spanner para el almacén de eventos.
Por qué: Spanner proporciona escalabilidad horizontal con una fuerte consistencia global, crucial para mantener la integridad de un registro de eventos a escala.
Una API para un trabajo de larga duración debe responder inmediatamente mientras el procesamiento continúa en segundo plano.
→El endpoint de la API pone en cola una tarea en Pub/Sub o Cloud Tasks y devuelve un 202 Accepted con un ID de trabajo. Un worker separado (Cloud Run, Cloud Function) procesa la tarea.
Por qué: Esto desacopla el tiempo de respuesta al usuario del tiempo de procesamiento del backend, mejorando la UX y la fiabilidad del sistema. Utilice Cloud Storage para las actualizaciones de estado.
Mantener la consistencia de los datos en múltiples microservicios sin una base de datos compartida.
→Implemente el patrón Saga utilizando un orquestador (Cloud Workflows) o coreografía (eventos de Pub/Sub) con transacciones de compensación.
Por qué: Evita commits de dos fases complejos y propensos a bloqueos, favoreciendo la consistencia eventual que es más adecuada para sistemas distribuidos.
La aplicación realiza llamadas a una API de terceros con limitación de velocidad donde los datos cambian con poca frecuencia.
→Utilice Memorystore para Redis como una caché distribuida. Implemente el patrón cache-aside con TTL. Utilice un bloqueo distribuido (por ejemplo, Redis SETNX) para evitar avalanchas de caché.
Por qué: Una caché distribuida comparte datos entre todas las instancias de la aplicación, reduciendo drásticamente las llamadas a la API externa, mejorando la latencia y respetando los límites de velocidad.
Un equipo de desarrollo necesita entornos de desarrollo consistentes, preconfigurados y seguros con acceso a recursos privados de VPC.
→Utilice Cloud Workstations.
Por qué: Cloud Workstations proporciona entornos de desarrollo gestionados, basados en contenedores, con seguridad integrada y acceso a VPC, resolviendo el problema de "funciona en mi máquina".
Referencia↗
Una aplicación SaaS requiere que los tenants tengan datos, claves de cifrado y residencia de datos completamente aislados.
→Utilice un modelo de proyecto por tenant. Gestione el aprovisionamiento y la configuración de forma centralizada utilizando IaC (Terraform).
Por qué: Proporciona el nivel más alto de aislamiento para IAM, facturación, cuotas, redes y ubicación de datos, a menudo requerido por clientes empresariales o regulados.