Você acabou de passar por uma das stacks mais valiosas do mercado de software hoje. Containers e Kubernetes não são modinha — viraram o substrato sobre o qual aplicações modernas rodam.
O que você aprendeu
- Containers vs VMs — namespaces, cgroups e Union Filesystem: por que container não é mágica.
- Docker — imagens, camadas, Dockerfile, comandos do dia a dia.
- Kubernetes — control plane, Pods, Deployments, Services: o modelo declarativo.
- Linux essencial — processos, rede, permissões, pipes: indispensável para debugar containers.
- Deploy de APIs Go — multi-stage build,
.dockerignore, Docker Compose. - Kubernetes na prática — minikube, kubectl, ConfigMaps, Secrets, probes, resource limits.
- Boas práticas — containers sem root, graceful shutdown, health checks, limites de recurso.
- Projeto guiado — API Go dockerizada e orquestrada com rolling update e ConfigMap.
Verdades que ficam
- Container não é mágica. É Linux com features (namespaces, cgroups) usadas de forma esperta.
- Imagens são templates, containers são instâncias. Não confunda nunca mais.
- Kubernetes é declarativo. Você descreve o que quer; ele descobre como fazer.
- Pods são descartáveis. Projete sua aplicação assumindo que ela pode morrer a qualquer momento.
- Saber Linux importa. Quando algo dá errado dentro do container, você precisa debugar.
- Comece simples. Não use ServiceMesh, Operator e GitOps no primeiro projeto.
A melhor forma de aprender de verdade é quebrando coisas. Suba um cluster, deploye, derrube pods, force erros, leia logs. A intuição sobre containers e Kubernetes vem com a prática — não com leitura.