En este tema, aprenderás cómo desplegar una aplicación Spring Boot en Heroku, una plataforma como servicio (PaaS) que permite a los desarrolladores construir, ejecutar y operar aplicaciones completamente en la nube.

  1. ¿Qué es Heroku?

Heroku es una plataforma en la nube que permite a los desarrolladores desplegar, gestionar y escalar aplicaciones sin preocuparse por la infraestructura subyacente. Ofrece soporte para múltiples lenguajes de programación, incluyendo Java, y es especialmente popular por su facilidad de uso y su integración con Git.

  1. Prerrequisitos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Una cuenta en Heroku (puedes registrarte en Heroku).
  • Git instalado en tu máquina.
  • Heroku CLI (Command Line Interface) instalado. Puedes descargarlo desde Heroku CLI.

  1. Configuración del Proyecto Spring Boot

3.1. Crear un Proyecto Spring Boot

Si aún no tienes un proyecto Spring Boot, puedes crear uno utilizando Spring Initializr:

curl https://start.spring.io/starter.zip -d dependencies=web -d name=heroku-demo -d packageName=com.example.heroku -o heroku-demo.zip
unzip heroku-demo.zip -d heroku-demo
cd heroku-demo

3.2. Configurar el pom.xml

Asegúrate de que tu archivo pom.xml tenga las siguientes dependencias básicas:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

3.3. Crear un Controlador Simple

Crea un controlador simple para verificar que tu aplicación funciona correctamente:

package com.example.heroku;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/")
    public String hello() {
        return "Hello, Heroku!";
    }
}

  1. Desplegar en Heroku

4.1. Iniciar Sesión en Heroku

Abre una terminal y ejecuta el siguiente comando para iniciar sesión en Heroku:

heroku login

4.2. Crear una Aplicación en Heroku

Navega al directorio raíz de tu proyecto y ejecuta el siguiente comando para crear una nueva aplicación en Heroku:

heroku create

4.3. Configurar el Procfile

Crea un archivo llamado Procfile en el directorio raíz de tu proyecto. Este archivo le dice a Heroku cómo ejecutar tu aplicación. Añade la siguiente línea:

web: java -Dserver.port=$PORT -jar target/*.jar

4.4. Construir el Proyecto

Construye tu proyecto utilizando Maven:

./mvnw clean package

4.5. Desplegar la Aplicación

Añade, confirma y empuja tu código a Heroku utilizando Git:

git init
git add .
git commit -m "Initial commit"
git push heroku master

4.6. Verificar el Despliegue

Una vez que el despliegue se haya completado, puedes abrir tu aplicación en el navegador:

heroku open

Deberías ver el mensaje "Hello, Heroku!".

  1. Ejercicio Práctico

Ejercicio

  1. Crea un nuevo proyecto Spring Boot con un controlador que devuelva un mensaje personalizado.
  2. Configura el proyecto para desplegarlo en Heroku.
  3. Despliega la aplicación en Heroku y verifica que funcione correctamente.

Solución

  1. Crear el proyecto Spring Boot:
curl https://start.spring.io/starter.zip -d dependencies=web -d name=heroku-exercise -d packageName=com.example.herokuexercise -o heroku-exercise.zip
unzip heroku-exercise.zip -d heroku-exercise
cd heroku-exercise
  1. Añadir un controlador:
package com.example.herokuexercise;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CustomController {

    @GetMapping("/")
    public String customMessage() {
        return "Welcome to Heroku!";
    }
}
  1. Crear el Procfile:
web: java -Dserver.port=$PORT -jar target/*.jar
  1. Construir y desplegar:
./mvnw clean package
git init
git add .
git commit -m "Initial commit"
heroku create
git push heroku master
heroku open

  1. Conclusión

Desplegar aplicaciones Spring Boot en Heroku es un proceso sencillo que puede ser realizado en pocos pasos. Heroku se encarga de la infraestructura, permitiéndote concentrarte en el desarrollo de tu aplicación. En el siguiente tema, aprenderemos cómo desplegar aplicaciones Spring Boot en AWS, otra plataforma popular para el despliegue en la nube.

Curso de Spring Boot

Módulo 1: Introducción a Spring Boot

Módulo 2: Conceptos Básicos de Spring Boot

Módulo 3: Construyendo Servicios Web RESTful

Módulo 4: Acceso a Datos con Spring Boot

Módulo 5: Seguridad en Spring Boot

Módulo 6: Pruebas en Spring Boot

Módulo 7: Funciones Avanzadas de Spring Boot

Módulo 8: Despliegue de Aplicaciones Spring Boot

Módulo 9: Rendimiento y Monitoreo

Módulo 10: Mejores Prácticas y Consejos

© Copyright 2024. Todos los derechos reservados