Orquestração gerencia containers em escala. Deploy, scaling, networking, self-healing. Kubernetes domina mas não é única opção.
Conceitos Principais
Scheduling
Decide onde rodar containers. Considera resources (CPU/mem), constraints, affinity. Bin packing otimiza uso de nodes.
Self-Healing
Detecta falhas, reinicia containers. Health checks (liveness/readiness). Replacement automático de nodes com problema.
Service Discovery
DNS interno, service mesh. Containers encontram dependências automaticamente. Load balancing integrado.
Declarative Config
YAML define estado desejado. Orquestrador converge estado atual → desejado. GitOps-friendly.
Passo a Passo
- Avalie Necessidades: Escala: <10 services = Compose. <100 = Swarm. 100+ = K8s. Multi-cloud? K8s. Simplicidade? Swarm. HashiCorp stack? Nomad.
- PoC com Swarm: Quickest:
docker swarm init. Stack file = docker-compose.yml. Deploy:docker stack deploy. Bom para MVP. - Migre para K8s: Quando escalar > 50 nodes ou precisar ecosystem (Istio, Helm). Kompose converte compose. Treine equipe antes.
- Managed vs Self-Hosted: Managed (EKS, GKE, AKS): zero ops overhead, caro. Self-hosted: controle total, complexo. Startups: managed. Enterprises: mix.
- Multi-Cluster: Staging/prod separados. Multi-region para DR. Federation para gerenciar múltiplos clusters. Service mesh (Istio) para cross-cluster.
Boas Praticas
Recomendacoes
• Comece simples (Compose/Swarm), migre para K8s quando necessário
• Managed K8s para reduzir overhead
• IaC para clusters (Terraform)
• GitOps para deployments (ArgoCD, Flux)
• Observabilidade desde dia 1
Erros Comuns
Evite estes erros
• K8s para projeto pequeno (overkill)
• Self-hosted K8s sem expertise
• Não treinar equipe antes de produção
• Ignorar custos de managed services
Checklist
- Requisitos de escala definidos
- Orquestrador escolhido
- PoC executado em staging
- Equipe treinada
- Monitoring e logging configurados
- Disaster recovery testado
- Custos avaliados