1. Explicación

Contexto de la práctica

En esta práctica se trabaja con un flujo real de desarrollo profesional, similar al que se utiliza en entornos empresariales.

El objetivo no es solo crear una aplicación, sino aprender cómo se integra, prueba y despliega automáticamente un proyecto Java en la nube a partir de cambios en el repositorio.

La práctica combina tres elementos clave:

 
Idea fundamental

El principio base de esta práctica es el siguiente:

El código se escribe y se prueba en local.
El pipeline valida y despliega automáticamente.

Nunca se programa dentro del pipeline.

El pipeline no arregla errores, solo los detecta.

Si el proyecto no funciona en local, no funcionará en la nube.

 
Flujo real de trabajo (visión general)

El flujo completo que se sigue es el siguiente:

  1. El desarrollador trabaja en su ordenador

  2. Los cambios se suben al repositorio

  3. GitHub ejecuta el pipeline automáticamente

  4. Si todo es correcto, la aplicación se despliega en AWS

Este flujo se repite en cada cambio del proyecto.

 
Fase 1: Desarrollo en local

Todo comienza en el entorno local del alumno.

En esta fase se realizan las siguientes tareas:

  • Creación de una API REST mínima con Spring Boot

  • Configuración del proyecto con Maven

  • Ejecución de pruebas locales con:

mvn test

Debemos de comprobar que:

  • El proyecto compila correctamente

  • La aplicación arranca sin errores

  • Los endpoints funcionan en local

Esta fase es obligatoria antes de continuar.

 
Fase 2: Control de versiones (Git)

Una vez validado el proyecto en local:

  • Se registran los cambios con git commit

  • Se suben al repositorio remoto con git push

Cada push al repositorio principal es el disparador del pipeline.

Aquí no se ejecuta nada manualmente: todo el proceso posterior es automático.

Fase 3: Integración Continua con GitHub Actions

Cuando se realiza un push, GitHub ejecuta el workflow definido en el repositorio.

Este workflow realiza las siguientes acciones:

  1. Descarga el código del repositorio

  2. Configura Java 17

  3. Compila el proyecto con Maven

  4. Ejecuta los tests

  5. Genera el artefacto (JAR)

Si alguna de estas fases falla, el pipeline se detiene y no se despliega nada.

Este proceso garantiza que solo código válido llegue a producción.

Fase 4: Despliegue Continuo en AWS Elastic Beanstalk

Cuando el pipeline finaliza correctamente:

  • El JAR generado se empaqueta

  • Se despliega automáticamente en un entorno de Elastic Beanstalk

  • AWS se encarga de:

    • La máquina virtual

    • El servidor web

    • El arranque de la aplicación

    • La exposición del servicio por HTTP

El alumno no gestiona servidores, solo su aplicación.

El resultado final es una API accesible públicamente desde Internet.

El objetivo principal es...

Con esta práctica el alumno demuestra que:

  • Sabe desarrollar una API REST real

  • Entiende el concepto de Integración Continua (CI)

  • Comprende el Despliegue Continuo (CD)

  • Es capaz de trabajar con pipelines automáticos

  • Puede desplegar aplicaciones en la nube de forma profesional

No es una simulación: es un flujo real de CI/CD.

 Idea clave final
El desarrollador controla el código.
El pipeline controla la calidad.
La nube ejecuta la aplicación.

Este es el mismo modelo que se utiliza en proyectos profesionales.