Saltar al contenido principal

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:

  1. ✅ Preparar una aplicación para producción
  2. ✅ Crear imágenes Docker optimizadas
  3. ✅ Configurar un pipeline CI/CD
  4. ✅ Desplegar en la nube (Heroku, Railway, AWS)
  5. ✅ 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​

TipoDuración
Teoría3h30 (4 capítulos)
Práctica3h (2 TPs)
Total6h30 (~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​

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

  1. ¿Tiene Docker instalado? ☐ Sí ☐ No
  2. ¿Tiene una cuenta de GitHub? ☐ Sí ☐ No
  3. ¿Sabe qué es un Dockerfile? ☐ Sí ☐ No
  4. ¿Conoce CI/CD? ☐ Sí ☐ No
  5. ¿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


⬅️ Volver al Plan de Curso