Docker, Swarm ou Kubernetes: níveis do mesmo jogo
Não são concorrentes: Docker empacota, orquestradores gerenciam frotas. A régua honesta de quanta orquestração seu momento precisa, e o antipadrão do K8s por currículo.
A pergunta chega assim: "devemos usar Docker ou Kubernetes?". E ela revela a confusão que este artigo desfaz: não são concorrentes; são camadas de um mesmo jogo. Docker empacota e roda um container; orquestradores (Swarm, Kubernetes) gerenciam frotas deles em várias máquinas. A pergunta real é: quanta orquestração o seu momento precisa?
Camada 1: Docker, o empacotamento que resolveu o "na minha máquina funciona"
Um container embala aplicação + dependências + sistema numa imagem imutável que roda igual em qualquer lugar (docker.com). É o artefato único da esteira em sua melhor forma: o que passou no teste é bit a bit o que roda em produção.
FROM node:22-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
USER node
CMD ["node", "server.js"]
Para o ambiente local com app + banco + fila, o Docker Compose declara o conjunto num YAML e sobe tudo com um comando. Até aqui, nenhuma orquestração: uma máquina, containers rodando.
Camada 2: o problema que cria os orquestradores
Produção de verdade pergunta o que uma máquina só não responde: e se o host morrer? Como rodar 6 réplicas em 3 máquinas? Como fazer deploy sem derrubar e voltar rápido se der ruim? Como escalar no pico e encolher de madrugada?
Orquestrador é o sistema que responde: distribui containers pela frota, reconcilia o estado desejado (declarou 6 réplicas? ele mantém 6, recriando o que morrer), faz rolling deploy, service discovery e auto-scaling. Repare no modelo: declarativo e reconciliado, o mesmo princípio do GitOps, que aliás nasceu neste mundo.
Docker Swarm é a orquestração embutida no Docker: simples, o mesmo Compose file, curva de aprendizado de uma tarde. Cobre réplicas, rolling update e rede entre nós. A limitação honesta: ecossistema pequeno e evolução estagnada; é adequado para o cluster modesto e times enxutos, mas o mercado consolidou em outro lugar.
Kubernetes é o padrão da indústria (kubernetes.io): o mais poderoso e o mais complexo. Auto-scaling por métrica, health checks e self-healing (tema do quarto artigo da série), segredos, operadores, um ecossistema gigante, e uma superfície de conceitos (pods, services, ingress, deployments...) que exige investimento real do time.

A régua honesta (que economiza meses)
A pergunta não é "Kubernetes é bom?" (é); é "quem vai operá-lo, e o problema justifica?":
- Um produto, poucas máquinas, time pequeno: containers + uma plataforma que orquestra por você (App Runner, Cloud Run, Fargate... a série de AWS deste blog detalha) entrega 90% do valor com 10% da complexidade. É o ponto de partida certo da maioria.
- Vários serviços, necessidade real de auto-scaling fino, equipe de plataforma existente (ou contratável): Kubernetes gerenciado (EKS/GKE/AKS: nunca instale o control plane na unha sem motivo).
- Swarm: o meio-termo legítimo quando você já vive no Docker, quer réplicas e rolling update numa frota pequena, e não quer pagar a curva do K8s.
O antipadrão que mais vemos: K8s por currículo: três microsserviços e um cluster Kubernetes completo para servi-los, com o time gastando mais tempo operando a plataforma do que construindo o produto. É a decisão arquitetural clássica de se arrepender: complexidade comprada antes da necessidade.
O caminho evolutivo (sem big bang)
- Dockerize com imagens enxutas e esteira que constrói o artefato.
- Rode gerenciado (PaaS de containers) enquanto a escala e o time não pedirem mais.
- Adote K8s gerenciado quando os sinais aparecerem: limites do PaaS, necessidade de rede/scheduling fino, múltiplos times pedindo plataforma comum.
- Cada passo aproveita o anterior: as imagens são as mesmas; muda quem as orquestra.
Dimensionar esse "quanto de orquestração" para o momento do produto (e implantar sem drama) é parte do nosso serviço de DevOps e Deploy.
Quantos containers e quantas máquinas você tem hoje? Conte para a IA da Rabelo Digital, aqui no canto da tela, e ela diz em que camada do jogo você deveria estar. Sem formulário, sem espera.


Deixe um Comentário