MÓDULO 12 - Deploy e Produção
Bem-vindo ao Módulo 12! 🚀
Sua aplicação funciona em desenvolvimento... mas como colocá-la em produção? Este módulo cobre todo o ciclo de deploy: empacotamento, Docker, CI/CD e cloud.
🎓 Objetivos de Aprendizagem
Ao final deste módulo, você será capaz de:
- ✅ Preparar uma aplicação para produção
- ✅ Criar imagens Docker otimizadas
- ✅ Configurar um pipeline CI/CD
- ✅ Fazer deploy na nuvem (Heroku, Railway, AWS)
- ✅ Gerenciar configurações por ambiente
📚 Pré-requisitos
Antes de começar este módulo, você deve ter:
- ✅ Completado os Módulos 1 a 11
- ✅ Docker Desktop instalado
- ✅ Uma conta no GitHub
- ✅ Conhecimentos básicos de Git (commit, push, branches)
🗺️ Plano do Módulo
Parte Teórica (4 capítulos)
Capítulo 1: Preparação para Produção
Duração: 45 minutos
Conteúdo:
- JAR executável vs WAR
- Perfis Spring (dev, prod, test)
- Configuração externalizada
- Variáveis de ambiente
- Segurança de segredos
Por que é importante? Preparar corretamente a aplicação
Capítulo 2: Containerização com Docker
Duração: 1 hora
Conteúdo:
- Dockerfile para Spring Boot
- Builds multi-stage
- Docker Compose
- Otimizações (layers, JVM)
- Imagens leves
Por que é importante? Padrão da indústria
Capítulo 3: CI/CD com GitHub Actions
Duração: 1 hora
Conteúdo:
- Introdução ao CI/CD
- Workflows do GitHub Actions
- Build e testes automatizados
- Publicação de imagens Docker
- Deploy automático
Por que é importante? Automatizar os deploys
Capítulo 4: Deploy em Cloud
Duração: 45 minutos
Conteúdo:
- Heroku / Railway
- AWS (Elastic Beanstalk, ECS)
- Fundamentos de Kubernetes
- Bancos de dados gerenciados
- Monitoramento em produção
Por que é importante? Colocar online
Parte Prática (2 TPs)
TP12.1: Dockerização Completa
Duração: 1h30
Objetivo: Containerizar a aplicação
Você vai:
- Criar um Dockerfile otimizado
- Gerar uma imagem multi-stage
- Configurar Docker Compose (app + DB)
- Testar localmente
TP12.2: Pipeline CI/CD
Duração: 1h30
Objetivo: Automatizar o deploy
Você vai:
- Criar um workflow no GitHub Actions
- Automatizar testes e build
- Publicar no Docker Hub
- Fazer deploy no Railway/Heroku
📊 Duração Total
| Tipo | Duração |
|---|---|
| Teoria | 3h30 (4 capítulos) |
| Prática | 3h (2 TPs) |
| Total | 6h30 (~2 sessões) |
🎯 O Que Você Vai Entender
Antes deste Módulo
# Apenas desenvolvimento local 😰
mvn spring-boot:run
# "Como coloco isso online?"
# "O que é Docker?"
# "CI/CD?"
Depois deste Módulo
# Build automático a cada push
git push origin main
# → GitHub Actions:
# ✅ Testes passaram
# ✅ Imagem Docker construída
# ✅ Publicada no Docker Hub
# ✅ Deploy em produção
# Sua app acessível em:
# https://my-app.railway.app
# Dockerfile otimizado
FROM eclipse-temurin:17-jre-alpine
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
🚀 Por Que Este Módulo É Essencial
1. Competência Indispensável
Vagas de emprego 2024:
✓ "Docker" - 90% das vagas
✓ "CI/CD" - 85% das vagas
✓ "Cloud (AWS/GCP/Azure)" - 80% das vagas
✓ "Kubernetes" - 60% das vagas
2. Cultura DevOps
Antes:
Dev: "Funciona na minha máquina"
Ops: "Não funciona em produção"
Agora (DevOps):
- Mesmo ambiente em todo lugar (Docker)
- Deploy automático (CI/CD)
- Infraestrutura como Código
3. Velocidade
Sem CI/CD:
- Deploy manual: 2 horas
- Risco de erro humano
- Estresse na sexta-feira
Com CI/CD:
- Deploy automático: 5 minutos
- Reprodutível
- Faça deploy quando quiser
🗺️ Progresso na Formação
Módulo 12 = Sua aplicação acessível para o mundo!
📖 Como Abordar Este Módulo
Progressão Recomendada
- Capítulo 1 → Entender o empacotamento
- Capítulo 2 + TP12.1 → Dominar Docker
- Capítulo 3 + TP12.2 → Pipeline CI/CD
- Capítulo 4 → Opções de deploy
Pré-requisitos Técnicos
# Verifique se você tem:
docker --version # Docker Desktop
git --version # Git
java -version # Java 17+
mvn -version # Maven
✅ Autoavaliação
Antes de começar, responda:
- Você tem Docker instalado? ☐ Sim ☐ Não
- Você tem uma conta no GitHub? ☐ Sim ☐ Não
- Você sabe o que é um Dockerfile? ☐ Sim ☐ Não
- Você conhece CI/CD? ☐ Sim ☐ Não
- Você já fez deploy de uma app? ☐ Sim ☐ Não
Este módulo vai te deixar competente em tudo isso!
🎯 Próximo Passo
Pronto para fazer deploy em produção?
➡️ Comece pelo Capítulo 1: Preparação para Produção