Arquitetura de Microsserviços
Estude os conceitos fundamentais de arquitetura de microsserviços, padrões de design e comunicação entre serviços. Este conjunto é ideal para desenvolvedores e arquitetos de software.
Cartões · 60
- Microsserviço
- Unidade de software autônoma e especializada em um domínio de negócio, implantada e escalada de forma independente.
- Monolito
- Padrão arquitetural tradicional onde todos os módulos e funcionalidades do sistema são empacotados e executados em uma única aplicação unificada.
- Acoplamento Fraco (Loose Coupling)
- Princípio de design onde os serviços dependem minimamente uns dos outros, permitindo mudanças isoladas sem afetar outros componentes.
- Alta Coesão (High Cohesion)
- Princípio em que cada microsserviço concentra apenas tarefas e dados estritamente relacionados a uma única responsabilidade funcional.
- Bounded Context (Contexto Delimitado)
- Conceito do DDD que delimita fronteiras claras de domínio onde regras de negócio e modelos de dados específicos são aplicados.
- Domain-Driven Design (DDD)
- Abordagem de modelagem de software focada na lógica de negócio e no domínio, crucial para mapear os limites de cada microsserviço.
- Database-per-Service
- Padrão no qual cada microsserviço possui seu próprio banco de dados isolado, impedindo o acesso direto por outros serviços.
- Shared Database Anti-Pattern
- Prática desencorajada de múltiplos serviços acessarem a mesma base de dados, gerando alto acoplamento e gargalos operacionais.
- API Gateway
- Ponto de entrada único para clientes externos que gerencia roteamento, autenticação, limitação de taxa e balanceamento de carga.
- BFF (Backend for Frontend)
- Padrão de API Gateway dedicado a atender as necessidades específicas de uma única interface, como web ou mobile.
- Service Discovery (Descoberta de Serviços)
- Mecanismo dinâmico para registrar e localizar endereços de instâncias de microsserviços ativas na rede.
- Client-Side Discovery
- Padrão no qual o cliente consulta o registro de serviços e decide autonomamente para qual instância enviar a requisição.
- Server-Side Discovery
- Padrão onde o cliente envia requisições a um roteador ou load balancer, que consulta o registro e encaminha para a instância.
- Comunicação Síncrona
- Troca de mensagens onde o emissor aguarda a resposta imediata do receptor antes de continuar sua execução, como via HTTP/REST.
- Comunicação Assíncrona
- Envio de mensagens ou eventos sem esperar resposta imediata, desacoplando o tempo de processamento entre serviços.
- REST (Representational State Transfer)
- Estilo de arquitetura de rede síncrono baseado nos verbos e recursos do protocolo HTTP para interoperabilidade.
- gRPC
- Framework RPC de alto desempenho desenvolvido pelo Google que usa HTTP/2 e Protocol Buffers para comunicação rápida entre serviços.
- Message Broker
- Intermediário de infraestrutura que recebe, armazena e entrega mensagens de forma confiável entre microsserviços.
- Arquitetura Orientada a Eventos (EDA)
- Paradigma no qual serviços reagem a acontecimentos notificados de forma assíncrona, promovendo máximo desacoplamento.
- Event Sourcing
- Padrão onde cada mudança de estado da aplicação é persistida sequencialmente como uma série imutável de eventos.
- CQRS (Command Query Responsibility Segregation)
- Separação de operações de leitura (queries) e de escrita (commands) em modelos ou bancos de dados distintos para otimizar desempenho.
- Saga Pattern
- Mecanismo para gerenciar transações distribuídas como uma sequência de transações locais em múltiplos serviços.
- Saga por Coreografia
- Abordagem da Saga onde cada serviço publica e reage a eventos dos demais participantes sem um controlador central.
- Saga por Orquestração
- Abordagem da Saga onde um serviço coordenador centralizado comanda explicitamente a execução de cada transação local.
- Transação Compensatória
- Ação executada para reverter ou neutralizar os efeitos de uma transação anterior caso uma etapa posterior da Saga falhe.
- Consistência Eventual
- Modelo teórico onde os dados distribuídos convergem para o mesmo estado final após determinado tempo sem novas alterações.
- Teorema CAP
- Princípio segundo o qual um sistema distribuído só pode garantir dois de três atributos: Consistência, Disponibilidade e Tolerância a Partições.
- Circuit Breaker
- Padrão de resiliência que interrompe chamadas a um serviço com falhas repetidas para evitar colapso em cascata.
- Retry Pattern com Backoff Exponencial
- Estratégia de tentar reenviar chamadas com falha temporária aumentando progressivamente o intervalo entre as tentativas.
- Bulkhead (Antepara)
- Isolamento de pools de recursos como threads ou memórias para que a falha de um componente não derrube todo o sistema.
- Timeout Pattern
- Limite máximo de tempo de espera por uma resposta de rede, liberando recursos bloqueados caso o tempo expire.
- Fallback
- Resposta alternativa ou degradada pré-configurada retornada ao usuário quando um serviço downstream falha.
- Strangler Fig Pattern (Padrão Estrangulador)
- Estratégia de migração gradual que substitui funcionalidades de um sistema monolítico por microsserviços aos poucos.
- Idempotência
- Propriedade de uma operação que garante o mesmo resultado independentemente de ser executada uma ou múltiplas vezes consecutivas.
- Contêiner (ex: Docker)
- Ambiente de virtualização a nível de sistema operacional que empacota o código e dependências de um microsserviço de forma isolada.
- Orquestrador de Contêineres (ex: Kubernetes)
- Plataforma automatizada que gerencia o ciclo de vida, implantação, escalonamento e rede de múltiplos contêineres.
- Service Mesh (Malha de Serviços)
- Camada de infraestrutura dedicada a gerenciar e proteger a comunicação direta e segura de rede serviço a serviço.
- Sidecar Pattern
- Padrão de implantação que executa um processo auxiliar acoplado ao contêiner principal para lidar com tarefas secundárias.
- Distributed Tracing (Rastreamento Distribuído)
- Monitoramento que mapeia e correlaciona todo o caminho percorrido por uma requisição através de múltiplos microsserviços.
- Correlation ID (Trace ID)
- Identificador exclusivo propagado nos cabeçalhos das requisições para rastrear um fluxo específico através de vários serviços.
- Log Centralizado
- Prática de coletar, agregar e indexar logs de todos os microsserviços em uma única plataforma para auditoria e depuração.
- Health Check API
- Endpoints padronizados como /healthz que informam o estado de funcionamento operacional de um microsserviço ao orquestrador.
- Chaos Engineering
- Disciplina que injeta falhas controladas no ambiente de produção para validar a robustez e resiliência dos microsserviços.
- Externalized Configuration (Configuração Externa)
- Separação de parâmetros e variáveis de ambiente do código-fonte para permitir alterações sem recompilar o serviço.
- Blue-Green Deployment
- Técnica de implantação com dois ambientes idênticos onde o tráfego é alternado instantaneamente para a versão atualizada.
- Canary Deployment
- Liberação gradual de uma nova versão para uma fração pequena de usuários visando detectar erros antes do lançamento total.
- Contratos de API (Contract Testing)
- Testes que verificam se produtores e consumidores de uma API respeitam um acordo formal de estrutura de dados pré-definido.
- Dead Letter Queue (DLQ)
- Fila especial de mensagens rejeitadas ou que falharam repetidamente no processamento, reservadas para análise e intervenção.
- Lei de Conway
- Teorema que afirma que a estrutura dos sistemas de software reflete diretamente a estrutura de comunicação da organização.
- Dois Tipos de Escalabilidade (Vertical vs Horizontal)
- Aumentar poder computacional de uma máquina (vertical) versus adicionar mais instâncias do microsserviço (horizontal).
- Transactional Outbox Pattern
- Padrão de persistência que salva alterações de negócio e eventos pendentes na mesma transação de banco de dados, garantindo publicação confiável.
- Change Data Capture (CDC)
- Técnica que monitora e captura alterações em nível de log de transações do banco de dados para propagá-las como eventos para outros sistemas.
- Rate Limiting
- Mecanismo de controle de tráfego que restringe o número de requisições permitidas a um serviço em um determinado intervalo de tempo.
- Anti-Corruption Layer (ACL)
- Camada de tradução que protege o modelo de domínio de um microsserviço contra conceitos legados ou incompatíveis de sistemas externos.
- Log Compaction
- Mecanismo em brokers como Kafka que retém apenas o valor mais recente para cada chave, economizando espaço e facilitando restaurações de estado.
- Semantic Versioning (SemVer)
- Convenção de versionamento de software e APIs (MAJOR.MINOR.PATCH) utilizada para indicar compatibilidade e evitar quebras de contrato entre serviços.
- Mutual TLS (mTLS)
- Protocolo de segurança onde cliente e servidor autenticam mutuamente suas identidades digitais antes de estabelecer uma comunicação criptografada.
- Feature Toggle (Feature Flag)
- Técnica que permite habilitar ou desabilitar funcionalidades em tempo de execução sem a necessidade de realizar um novo deploy.
- Ambassador Pattern
- Padrão que cria um serviço auxiliar out-of-process responsável por tarefas de conectividade e roteamento de rede em nome do serviço principal.
- Backpressure
- Mecanismo de controle de fluxo no qual um consumidor sobrecarregado sinaliza ao produtor para diminuir o envio de dados e evitar falhas por esgotamento.