Pular para o conteúdo principal

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:

  1. ✅ Preparar uma aplicação para produção
  2. ✅ Criar imagens Docker otimizadas
  3. ✅ Configurar um pipeline CI/CD
  4. ✅ Fazer deploy na nuvem (Heroku, Railway, AWS)
  5. ✅ 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​

TipoDuração
Teoria3h30 (4 capítulos)
Prática3h (2 TPs)
Total6h30 (~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​

  1. Capítulo 1 → Entender o empacotamento
  2. Capítulo 2 + TP12.1 → Dominar Docker
  3. Capítulo 3 + TP12.2 → Pipeline CI/CD
  4. 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:

  1. Você tem Docker instalado? ☐ Sim ☐ Não
  2. Você tem uma conta no GitHub? ☐ Sim ☐ Não
  3. Você sabe o que é um Dockerfile? ☐ Sim ☐ Não
  4. Você conhece CI/CD? ☐ Sim ☐ Não
  5. 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


⬅️ Voltar ao Plano de Curso