“Infra só escala quando ser previsível vira cultura.” — #30DiasJava Runbook
🎯 Objetivo do Day 6
Com o Notification Service online, o foco passou a ser infraestrutura. O Day 6 do #30DiasJava consolidou o stack Docker para que qualquer serviço — atual ou futuro — rode com a mesma segurança, performance e experiência de onboarding.
🛠️ Destaques da implementação
- Naming convention: todas as imagens seguem
adelmo/{servico}:{tag}. A padronização ajuda no cache de CI/CD e na leitura dos registries. - Compose profissional: arquivo
docker-compose.professional.ymlcom limites de CPU/RAM,no-new-privileges, mountsread_onlye health checks autenticados. - Workspace remoto: container dedicado com SSH (
ssh -p 2222 challenge@localhost) e scripts de manutenção (scripts/maintenance.sh,cleanup-and-organize.sh). - Observabilidade embutida: Prometheus e Grafana sobem com dashboards base, logs rotacionados e alertas mínimos prontos.
- Documentação viva: hardening, secrets e fluxo de backup documentados diretamente no repositório.
💡 Lições do dia
- O custo de um padrão só aparece quando outra pessoa tenta executar o mesmo stack — por isso scripts e doc vêm antes de “rodar manualmente”.
- Health checks sem autenticação são portas abertas; ajustar cada serviço para responder com tokens/headers foi decisivo.
- Ter um workspace remoto evita “works on my machine” e ainda facilita pair programming com quem acompanha o desafio.
🔗 Recursos
- Artigo completo: https://enouveau.io/blog/2025/11/06/docker-professional-stack.html
- Projeto pessoal: Este é um projeto do desafio #30DiasJava, mantido independentemente para fins educacionais.
Next episode → Day 7/30 — Intelligent Assistants Powered by Real-Time Events