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

  • Spring boot y websockets

    Escenario Un usuario se conecta con el móvil a su aplicación de empresa. Si es la primera vez que lo hace ésta le pide autorización para recabar su localización. La aplicación manda la localización al servidor y desde el servidor se informa a una página de monitorización. Dicha página está conectada por websocket con el…

  • Instalación y configuración de Guacamole 1.3

    Escenario Necesitamos acceder de manera remota a nuestro entorno de trabajo y hemos decidido que guacamole es nuestra mejor opción. Permite el uso de protocoles estándares como VNC, RDP y SSH No requiere instalar software en las máquinas de los usuarios. Gracias a HTML5, una vez instalado en un servidor, puedes acceder a tu escritorio…

  • |

    Actualización de Apache Guacamole server 1.0 → 1.2

    Escenario En el trabajo usamos Apache Guacamole para conectarnos a nuestros escritorios de la oficina desde casa. Apache Guacamole proporciona una puerta de entrada HTML5 para conectar con servicios de acceso remoto, como pueden ser VNC o RDP. Consta de dos : el servidor y el cliente que no tienen por qué correr en la…

  • Cómo recuperar ficheros borrados de Amazon Linux

    Escenario Tenemos una aplicación de tipo SpringBoot desplegada en una instancia ec2 de Amazon, con el sistema operativo Amazon Linux. Para sincronizar los cambios con el código desplegado en producción utilizo rsync en este script de bash:

    Ayer cuando desplegué, la aplicación no compilaba en el servidor remoto. Era debido a que una clase…

  • 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….

Deja una respuesta

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