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:

Publicaciones Similares

  • Cómo corregir latencia entre guacamole y vnc con nginx de proxy

    Escenario Hemos configurado un acceso remoto a un ordenador de la oficina usando Guacamole y TightVNC. Apache Guacamole hace de puerta de entrada a un escritorio, sin necesidad de instalar un cliente, basta con un navegador web. Permite protocolos estándares como VNC, RDP, y SSH. Problema Los usuarios reportaban un marcado retraso entre el tecleo…

  • Instalación certificado SSL de un vendedor

    Escenario Tienes una web con un certificado de un vendedor que va a expirar, o no tienes certificado y, por la razón que sea, quieres uno de pago. Objetivo Necesitas instalar o renovar un certificado SSL proporcionado por uno de los vendedores tradiciones, Comodo, Symantec, Geotrust, etc… Usaremos a modo de ejemplo el subdominio ssl.technoage.net….

  • Hibernate no puede resolver la propiedad…

    Escenario En una aplicación Spring Boot v2.3.4 hay dos entidades Balance y Shop. Una tienda (shop) puede tener varios saldos y un saldo (Balance) ha de estar relacionado con una tienda. Además existen panaderías (Bakery) y sastrerías (TailorShop) que extienden la clase Shop:

    Y necesito saber cuál es la fecha del…

Deja una respuesta

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