Docker, Swarm ou Kubernetes: níveis do mesmo jogo

Docker, Swarm ou Kubernetes: níveis do mesmo jogo

Robson Rabelo - 13 de julho de 2026 - 0 visualizações

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.

Docker, Swarm e Kubernetes: as camadas

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)

  1. Dockerize com imagens enxutas e esteira que constrói o artefato.
  2. Rode gerenciado (PaaS de containers) enquanto a escala e o time não pedirem mais.
  3. Adote K8s gerenciado quando os sinais aparecerem: limites do PaaS, necessidade de rede/scheduling fino, múltiplos times pedindo plataforma comum.
  4. 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.


Leia também

Compartilhar:

Deixe um Comentário

Categorias

Posts Recentes