Microsserviços exigem comunicação síncrona de solicitação/resposta e assíncrona orientada a eventos.
→Use gRPC ou HTTP para chamadas síncronas. Use Pub/Sub para eventos assíncronos e distribuição (fan-out).
Por quê: O Pub/Sub desacopla completamente os serviços para confiabilidade e escalabilidade independente. Chamadas diretas fornecem respostas síncronas de baixa latência.
Referência↗
Um serviço de computação sem estado (Cloud Run, Cloud Functions) precisa processar arquivos temporários.
→Use Cloud Storage para todas as operações de I/O de arquivos temporários.
Por quê: O sistema de arquivos local de plataformas serverless é efêmero, em memória e não compartilhado. O Cloud Storage fornece armazenamento durável e escalável acessível por todas as instâncias.
Gerenciar configuração e segredos específicos do ambiente para cargas de trabalho do GKE seguindo os princípios dos 12 fatores.
→Use K8s ConfigMaps para configurações não sensíveis. Use Secret Manager para valores sensíveis, acessados de forma segura via Workload Identity.
Por quê: Secret Manager é uma solução mais segura, gerenciada e auditável do que K8s Secrets. O Workload Identity evita o gerenciamento e a distribuição de chaves de contas de serviço.
Referência↗
A aplicação tem picos extremos de tráfego, mas longos períodos de inatividade onde o custo deve ser minimizado.
→Use Cloud Run com `min-instances` definido como 0.
Por quê: O Cloud Run pode escalar até zero, eliminando todos os custos de computação durante períodos de inatividade. GKE e Compute Engine exigem nós/instâncias mínimos em execução.
Implementar retries, circuit breakers e mTLS consistentemente em microsserviços sem alterações no código da aplicação.
→Implante uma service mesh (Anthos Service Mesh) no GKE.
Por quê: Uma service mesh injeta resiliência, segurança e observabilidade no nível da plataforma, mantendo o código da aplicação limpo e garantindo um comportamento consistente.
Expor serviços de backend para parceiros externos ou aplicações móveis com limitação de taxa, chaves de API e análise de uso.
→Use API Gateway na frente de serviços de backend (por exemplo, Cloud Run, GKE).
Por quê: O API Gateway fornece uma solução totalmente gerenciada para questões do ciclo de vida da API (segurança, monitoramento, versionamento), desonerando-as do serviço de backend.
Referência↗
Selecionar um armazenamento durável, escalável e fortemente consistente para um log de eventos somente de adição (append-only).
→Use Cloud Spanner para o armazenamento de eventos.
Por quê: O Spanner oferece escalabilidade horizontal com forte consistência global, crucial para manter a integridade de um log de eventos em escala.
Uma API para um trabalho de longa duração deve responder imediatamente enquanto o processamento continua em segundo plano.
→O endpoint da API enfileira uma tarefa no Pub/Sub ou Cloud Tasks e retorna um 202 Accepted com um ID de trabalho. Um worker separado (Cloud Run, Cloud Function) processa a tarefa.
Por quê: Isso desacopla o tempo de resposta voltado para o usuário do tempo de processamento de backend, melhorando a UX e a confiabilidade do sistema. Use Cloud Storage para atualizações de status.
Manter a consistência dos dados em múltiplos microsserviços sem um banco de dados compartilhado.
→Implemente o padrão Saga usando um orquestrador (Cloud Workflows) ou coreografia (eventos Pub/Sub) com transações de compensação.
Por quê: Evita commits de duas fases complexos e propensos a bloqueios, favorecendo a consistência eventual, que é mais adequada para sistemas distribuídos.
A aplicação chama uma API de terceiros com limitação de taxa onde os dados mudam com pouca frequência.
→Use Memorystore for Redis como um cache distribuído. Implemente o padrão cache-aside com TTL. Use um bloqueio distribuído (por exemplo, Redis SETNX) para evitar "cache stampedes".
Por quê: Um cache distribuído compartilha dados entre todas as instâncias da aplicação, reduzindo drasticamente as chamadas para a API externa, melhorando a latência e respeitando os limites de taxa.
Uma equipe de desenvolvimento precisa de ambientes de desenvolvimento consistentes, pré-configurados e seguros, com acesso a recursos privados de VPC.
→Use Cloud Workstations.
Por quê: O Cloud Workstations fornece ambientes de desenvolvimento gerenciados e baseados em contêineres, com segurança integrada e acesso à VPC, resolvendo o problema de "funciona na minha máquina".
Referência↗
Uma aplicação SaaS exige que os inquilinos tenham dados, chaves de criptografia e residência de dados completamente isolados.
→Use um modelo de projeto por inquilino. Gerencie o provisionamento e a configuração centralmente usando IaC (Terraform).
Por quê: Oferece o mais alto nível de isolamento para IAM, faturamento, cotas, rede e localização de dados, muitas vezes exigido por clientes empresariais ou regulados.