Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=3dc26b59-c82b-4a7c-9b81-3d4575de53b2

Tutorial: Cómo desplegar tu aplicación Spring Boot a Azure: paso a paso

Nota: este artículo está basado en diversas partes de la documentación oficial de Microsoft. Por supuesto, existen más maneras de desplegar aplicaciones Java y Spring a Azure, pero este tutorial se centra en el producto específico llamado Spring Boot Cloud que está especializado en esta tarea y ofrece la manera más sencilla posible no solo de desplegar, sino de monitorizar escalar, etc... este tipo de aplicaciones, especialmente si se trata de microservicios.

Imagen ornamental de portadaAzure Spring Cloud facilita enormemente la puesta en marcha y despliegue de aplicaciones basadas en Spring Boot, usando Azure. Además, no necesitarás hacer cambios en el código de tu aplicación o servicio Web respecto a otros tipos de despliegue. Azure Spring Cloud administra automáticamente la infraestructura necesaria para que puedas centrarte en tu código y olvidarte de la parte de sistemas/devOps. También te proporciona supervisión y diagnóstico muy completos, así como administración de la configuración, detección de servicios, integración de CI/CD o despliegues blue-green, entre otras características útiles.

En este tutorial paso a paso vamos a mostrar cómo crear una aplicación Spring Boot sencilla de ejemplo y cómo podemos desplegarla con facilidad a Azure para ponerla en producción y accesible desde Internet. Usaremos IntelliJ Idea para trabajar con el ejemplo.

Necesitarás un equipo con:

1.- Creación del proyecto Spring Boot de ejemplo

Vamos a comenzar, como es habitual, con Spring Initializr, con el que generaremos un nuevo proyecto con las dependencias recomendadas para Azure Spring Cloud (ya estarán preseleccionadas si usas el enlace anterior):

La pantalla de Spring Initializr

En este ejemplo hemos seleccionado la versión 8 de Java por ser la más habitual aún hoy en día, pero puedes elegir otra superior si lo prefieres.

Haz clic en el botón Generate y descarga y descomprime el ZIP en una carpeta.

Si necesitas ayuda con estos pasos, mira nuestro artículo y vídeo: ¿Qué son Spring framework y Spring Boot? Tu primer programa Java con este framework.

2.- Creación de una instancia de Azure Spring Cloud

Ahora vamos a crear una instancia de Azure Spring Cloud para poder desplegar la aplicación. Vamos a hacerlo a mano desde el portal...

Para ello accede al Portal de Azure y busca "Azure Spring Cloud" en el cuadro de búsqueda que tienes arriba:

Azure Spring Cloud localizado en los resultados de búsqueda

En la página que te aparece pulsa el botón de Crear:

El botón Create resaltado

En el formulario de creación debes introducir los datos que te solicitan, en concreto:

  • Suscripción: la suscripción adecuada en la que se te va a facturar el recurso. Aquí tienes los precios. No es gratuita, pero para esa prueba gastarás unos pocos céntimos de euro si la eliminas al terminar.
  • Grupo de recursos: el nombre del grupo de recursos que vas a utilizar. Normalmente usarás uno nuevo salvo que lo quieras meter en uno existente para compartir recursos con él, en cuyo caso puedes elegirlo de la lista.
  • Detalles o nombre del servicio: especifica el nombre que le quieres dar al servicio (entre 4 y 32 caracteres, y solo puede contener números, letras minúsculas y guiones, ¡nada de espacios!).
  • Ubicación: selecciona la región en la que se ejecutará el servicio. Si estás en Europa quizá te interese North Europe, por los precios, que suelen ser más baratos que en West Europe, y en este caso lo son. En la figura siguiente se ha elegido West US de todos modos.

Las opciones elegidas

Pulsa el botón Revisar y Crear, marcado en la figura anterior, abajo a la izquierda.

3.- Compilación y despliegue de la aplicación

Para ello vamos a utilizar IntelliJ IDEA y su complemento específico para Azure Spring Cloud, mencionado al principio.

Arranca IntelliJ y en el cuadro de diálogo de bienvenida utiliza la opción de Importar Proyecto (Import Project) para importar el proyecto que nos descargamos en el primer paso (por defecto le llamamos hellospring):

El diálogo de importación de IntelliJ IDEA

Ahora crea un nuevo controlador web en tu aplicación de ejemplo, añadiendo el archivo HelloController.java dentro de src/main/java/com/example/hellospring/ con este código:

package com.example.hellospring;

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

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Greetings from Azure Spring Cloud!";
    }

}

Ejecuta la aplicación con IntelliJ para ver que está funcionando correctamente y se muestra el "Hola mundo" que acabamos de añadir.

Antes de poder desplegarla necesitamos loguearnos en la extensión de Azure Spring Cloud desde IntelliJ. Para ello vete al menú Tools > Azure > Azure Sign In... o utiliza la barra lateral de Azure Explorer y pulsa el botón con una flecha apuntando a un cuadradito. Introduce tus credenciales de Azure:

La imagen muestra las opciones indicadas en el texto

Selecciona Inicio de Sesión de Dispositivo (Device Login):

La pantalla en cuestión

En el diálogo que aparece al pulsar Sign In verás un código de dispositivo que podrás copiar. Al darle a Siguiente se abrirá tu navegador y podrás pegar el código de dispositivo y elegir la suscripción de Azure que quieres asociar a la extensión. Asegúrate de elegir la misma en la que has creado la instancia de Azure Spring Cloud en el paso 2.

Ahora que ya está la extensión asociada a la cuenta de Azure, haz clic con el botón secundario en el nodo del proyecto de IntelliJ y en el menú contextual elije, abajo del todo, el submenú Azure y, dentro de este, Deploy to Azure Spring Cloud, como muestra esta captura:

El menú mencionado

  • El nombre que sugiere por defecto para la aplicación puedes dejarlo como está. Hace referencia a la configuración, no al nombre de la aplicación en sí (es algo confuso) así que no tienes que tocarle por regla general.
  • En el campo Artifact, selecciona, por ejemplo, hellospring-0.0.1-SNAPSHOT.jar.
  • Asegúrate de que la suscripción de Azure elegida es la correcta (debería serlo si solo tienes una).
  • En el campo Spring Cloud, selecciona la instancia de Azure Spring Cloud que creaste en el paso 2 (en la figura siguiente se ve un nombre comodín).
  • En el desplegable Application (Aplicación) selecciona la opción Create application... . Esto lanzará un diálogo (se ve en la figura siguiente) para darle un nombre en Azure. Escribe, por ejemplo, hellospring, como el proyecto.
  • En Public EndPoint, elije la opción Enable (Habilitar) para que sea accesible desde Internet.

Este es el aspecto de este diálogo:

El diálogo con todos los campos necesarios rellenados como se ha descrito

Ahora ya puedes darle al botón de Run. Esto ejecutará Maven (mvn package) para crear el paquete .jar de la aplicación y lo desplegará a Azure.

Una vez terminado el proceso ya puedes ver la aplicación en funcionamiento abriendo tu navegador favorito y escribiendo la dirección: https://<nombre-instancia>-hellospring.azuremicroservices.io/, siendo nombre-instancia el nombre que le diste en el paso 2 al crear la instancia de Azure Spring Cloud:

La aplicación funcionando, con el hola mundo que le pusimos en el código

Enhorabuena, ¡Ya tienes la aplicación en funcionamiento en Internet!

Pero no te vayas, que aún hay más...

4.- Obteniendo logs en tiempo real

Ahora vamos a recibir en tiempo real información de lo que pasa en la aplicación: la vamos a instrumentar.

Para ello, en IntelliJ IDEA, vete al explorador de Azure en el lateral y localiza tu aplicación que se está ejecutando en Spring Cloud. Pulsa en ella con el botón secundario y, en el menú contextual, elige la opción Streaming Logs. Se abre un pequeño diálogo en el que deberás elegir la instancia apropiada en Azure (sólo tendrás una en este ejemplo):

El diálogo para enlazar con el log en tiempo real

A partir de ese momento podrás ver el registro en tiempo real en el panel de salida de IntelliJ:

la imagen muestra el panel de salida de IntelliJ con los mensajes de log que se van recibiendo

Puedes ver opciones de log avanzadas en el portal de Azure, aunque allí los log tienen un decalaje de unos pocos minutos:

El blade de consultas de logs del portal de Azure

Aquí puedes ver muchos más detalles sobre la instumentación de aplicaciones en Azure Spring Cloud.

5.- Limpia tus huellas al terminar

Como dijimos el principio, Azure Spring Cloud tiene coste. Si has seguido este tutorial paso a paso no te habrá llevado más que unos pocos minutos, media hora como mucho si te has parado un poco, así que te habrá costado unos 10 céntimos de euro 😉

Si no quieres incurrir en costes adicionales, elimina los recursos que has creado utilizando la esta instrucción de Azure CLI desde la línea de comandos:

az group delete --name nombre-de-tu-grupo-de-recursos --yes

¡Listo!

En este tutorial te hemos mostrado lo sencillo que es desplegar tus aplicaciones Spring Boot a Azure y disfrutar de todas las ventajas que te proporciona.

Fecha de publicación:
campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Lenguajes y plataformas

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.