Despliegue aplicación Spring Boot

Escenario

Queremos desplegar en la nube una aplicación desarrollada con Spring Boot cuyo código está bajo control de versiones. Para este artículo usaremos ubuntu 16.04 y java 8, pero el procedimiento debería ser el mismo con versiones más actuales.

Problema

Ninguno. Realmente es sencillo desplegar una aplicación de este tipo si se dispone de las herramientas adecuadas.

Solución

Instalamos java
maven
y git

Aplicación

Vamos a poner que se llama techonage, crearemos un directorio en la máquina donde la clonaremos y compilaremos: Para renforzar la seguridad crearemos un usuario que sólo tenga acceso a las aplicaciones de spring boot:

Instalación del servicio

Creamos el siguiente fichero en /etc/systemd/system/technoage.service
Para que el servicio pueda pasar las variables de entorno a la aplicación, estás han de estar declaradas en el fichero. A modo de ejemplo he puesto dos variables usadas por el APÌ de aws. Nótese también que especificamos el puerto por el que debe escuchar la aplicación. En el caso de technoage, el 8070. De este modo podemos tener varias aplicaciones corriendo, cada una con su puerto sin necesidad de tocar el código. Además hemos especificado el usuario dado de alta anteriormente para que controle la aplicación.
Para arrancar el servicio usaremos el comando: y para pararlo. Cada vez que hagamos una modificación el fichero de configuración deberemos ejecutar . Para que el servicio arranque automáticamente después de cada reboot:

Proxy web

Usaremos nginx para que haga de proxy para las aplicaciones del tomcat y éstas sean accesibles por los puertos http y/o https. Para obtener la última versión de nginx, hay que seguir estos pasos: Y añadidos estas dos líneas al final del fichero: Importamos la clave pública de nginx para poder actualizar el repositorio, e instalamos nginx:
Estos pasos tuve que hacerlos con ubuntu 16.04, para 18.04 basta con
Esta sería una configuración básica para technoage en /etc/nginx/conf.d/technoage.conf:

Instalación del certificado ssl

Usaremos letsencrypt porque funciona muy bien y es gratuito. Una vez instalado, obtenemos el certificado (siempre usando el ejemplo de technoage) con el siguiente comando: Si seguimos las instrucciones de cerbot y escogemos que se fuerce el tráfico por https, éste modificará el fichero de configuración de nginx con las directivas pertinentes. Debería tener esta pinta:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *