Containers são o padrão moderno para empacotar e executar microsserviços. Cada serviço roda isolado, com seu próprio ambiente, garantindo portabilidade, consistência e facilidade de implantação.
Representa a execução direta no host. Pode funcionar no início, mas limita isolamento, atualizações e escalabilidade.
Service Instance per Container Pattern
Prática fundamental em microsserviços.
Cada instância do serviço está isolada em um container, permitindo:
Deploy independente
Versões diferentes por serviço
Escalabilidade individual
Menor impacto entre serviços
VMs x Containers
Máquinas Virtuais (VMs)
Virtualizam hardware completo
Pesadas
Inicialização lenta
Menos densidade de workload
Containers
Virtualizam apenas o nível de processo
Leves
Início quase instantâneo
Alto aproveitamento do servidor
Ideais para microsserviços
Mostra a escalabilidade horizontal local: mais instâncias do mesmo serviço, no mesmo host:
Agora a escalabilidade é distribuída, permitindo:
Tolerância a falhas
Melhor balanceamento de carga
Maior capacidade total
Imagem da escalabilidade do microsserviços 2 em mais 2 em outro servidor ao invés de dentro de um mesmo servidor
Orquestrador gerenciando servidores
Um orquestrador (como Kubernetes, ECS ou Nomad) gerencia:
Agendamento de containers
Saúde dos serviços
Failover
Escalabilidade
Configurações e segredos
Atualizações sem downtime
É a camada que transforma containers em uma plataforma resiliente e escalável.
Containers e Orquestrador não são obrigatórios para os microsserviços