MÓDULO 12 - Despliegue y Producción
¡Bienvenido al Módulo 12! 🚀
Su aplicación funciona en desarrollo... pero ¿cómo ponerla en producción? Este módulo cubre todo el ciclo de despliegue: empaquetado, Docker, CI/CD y cloud.
🎓 Objetivos de Aprendizaje
Al final de este módulo, usted será capaz de:
- ✅ Preparar una aplicación para producción
- ✅ Crear imágenes Docker optimizadas
- ✅ Configurar un pipeline CI/CD
- ✅ Desplegar en la nube (Heroku, Railway, AWS)
- ✅ Gestionar configuraciones por entorno
📚 Prerrequisitos
Antes de comenzar este módulo, debe tener:
- ✅ Completado los Módulos 1 a 11
- ✅ Docker Desktop instalado
- ✅ Una cuenta de GitHub
- ✅ Conocimientos básicos de Git (commit, push, ramas)
🗺️ Plan del Módulo
Parte Teórica (4 capítulos)
Capítulo 1: Preparación para Producción
Duración: 45 minutos
Contenido:
- JAR ejecutable vs WAR
- Perfiles Spring (dev, prod, test)
- Configuración externalizada
- Variables de entorno
- Seguridad de secretos
¿Por qué es importante? Preparar correctamente la aplicación
Capítulo 2: Contenerización Docker
Duración: 1 hora
Contenido:
- Dockerfile para Spring Boot
- Builds multi-stage
- Docker Compose
- Optimizaciones (layers, JVM)
- Imágenes ligeras
¿Por qué es importante? Estándar de la industria
Capítulo 3: CI/CD con GitHub Actions
Duración: 1 hora
Contenido:
- Introducción CI/CD
- Workflows de GitHub Actions
- Build y tests automatizados
- Publicación de imágenes Docker
- Despliegue automático
¿Por qué es importante? Automatizar los despliegues
Capítulo 4: Despliegue Cloud
Duración: 45 minutos
Contenido:
- Heroku / Railway
- AWS (Elastic Beanstalk, ECS)
- Fundamentos de Kubernetes
- Bases de datos gestionadas
- Monitoreo en producción
¿Por qué es importante? Poner en línea
Parte Práctica (2 TPs)
TP12.1: Dockerización Completa
Duración: 1h30
Objetivo: Contenerizar la aplicación
Usted va a:
- Crear un Dockerfile optimizado
- Construir una imagen multi-stage
- Configurar Docker Compose (app + DB)
- Probar localmente
TP12.2: Pipeline CI/CD
Duración: 1h30
Objetivo: Automatizar el despliegue
Usted va a:
- Crear un workflow de GitHub Actions
- Automatizar tests y build
- Publicar en Docker Hub
- Desplegar en Railway/Heroku
📊 Duración Total
| Tipo | Duración |
|---|---|
| Teoría | 3h30 (4 capítulos) |
| Práctica | 3h (2 TPs) |
| Total | 6h30 (~2 sesiones) |
🎯 Lo Que Va a Comprender
Antes de este Módulo
# Solo desarrollo local 😰
mvn spring-boot:run
# "¿Cómo pongo esto en línea?"
# "¿Qué es Docker?"
# "¿CI/CD?"
Después de este Módulo
# Build automático en cada push
git push origin main
# → GitHub Actions:
# ✅ Tests pasados
# ✅ Imagen Docker construida
# ✅ Publicada en Docker Hub
# ✅ Desplegada en producción
# Su app accesible en:
# https://my-app.railway.app
# Dockerfile optimizado
FROM eclipse-temurin:17-jre-alpine
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
🚀 Por Qué Este Módulo Es Esencial
1. Competencia Imprescindible
Ofertas de empleo 2024:
✓ "Docker" - 90% de las ofertas
✓ "CI/CD" - 85% de las ofertas
✓ "Cloud (AWS/GCP/Azure)" - 80% de las ofertas
✓ "Kubernetes" - 60% de las ofertas
2. Cultura DevOps
Antes:
Dev: "Funciona en mi máquina"
Ops: "No funciona en producción"
Ahora (DevOps):
- Mismo entorno en todas partes (Docker)
- Despliegue automático (CI/CD)
- Infraestructura como Código
3. Velocidad
Sin CI/CD:
- Despliegue manual: 2 horas
- Riesgo de error humano
- Estrés los viernes
Con CI/CD:
- Despliegue automático: 5 minutos
- Reproducible
- Despliegue cuando quiera
🗺️ Progresión en la Formación
¡Módulo 12 = Su aplicación accesible al mundo!
📖 Cómo Abordar Este Módulo
Progresión Recomendada
- Capítulo 1 → Comprender el empaquetado
- Capítulo 2 + TP12.1 → Dominar Docker
- Capítulo 3 + TP12.2 → Pipeline CI/CD
- Capítulo 4 → Opciones de despliegue
Prerrequisitos Técnicos
# Verifique que tiene:
docker --version # Docker Desktop
git --version # Git
java -version # Java 17+
mvn -version # Maven
✅ Autoevaluación
Antes de comenzar, responda:
- ¿Tiene Docker instalado? ☐ Sí ☐ No
- ¿Tiene una cuenta de GitHub? ☐ Sí ☐ No
- ¿Sabe qué es un Dockerfile? ☐ Sí ☐ No
- ¿Conoce CI/CD? ☐ Sí ☐ No
- ¿Ya ha desplegado una app? ☐ Sí ☐ No
¡Este módulo le hará competente en todo esto!
🎯 Próximo Paso
¿Listo para desplegar en producción?
➡️ Comenzar con el Capítulo 1: Preparación Producción