Inicio rápido: implementación de aplicaciones de microservicios en Azure Spring Apps

Nota

Las primeras 50 horas de vCPU y 100 GB de memoria al mes son gratuitos. Para más información, consulte el artículo Price Reduction - Azure Spring Apps does more, costs less! ("Reducción de precios: Azure Spring Apps te da más por menos") en el Blog de Apps on Azure.

Nota

Azure Spring Apps es el nuevo nombre del servicio Azure Spring Cloud. Aunque el servicio tiene un nuevo nombre, verá el nombre antiguo en algunos lugares durante un tiempo mientras trabajamos para actualizar recursos, como capturas de pantalla, vídeos y diagramas.

En este artículo se explica cómo implementar aplicaciones de microservicios en Azure Spring Apps mediante la aplicación de ejemplo muy conocida PetClinic.

El ejemplo Pet Clinic muestra el patrón de arquitectura de microservicios. En el siguiente diagrama, se muestra la arquitectura de la aplicación PetClinic en el plan Enterprise de Azure Spring Apps.

Diagrama que muestra la arquitectura del ejemplo PetClinic en el plan Enterprise de Azure Spring Apps.

En el diagrama se muestran los siguientes flujos arquitectónicos y las relaciones del ejemplo de Pet Clinic:

  • Usa Azure Spring Apps para administrar las aplicaciones front-end y back-end. Las aplicaciones de back-end se compilan con Spring Boot y cada aplicación usa HSQLDB como almacén persistente. La aplicación de front-end renovada se basa en la aplicación de puerta de enlace de API de Pet Clinic con Node.js que sirve como una aplicación web de front-end independiente.
  • Usa los componentes administrados en Azure Spring Apps, incluidos Registro del servicio, Servicio de configuración de aplicaciones, Spring Cloud Gateway y Application Live View. El Servicio de configuración de aplicaciones lee la configuración del repositorio de Git.
  • Expone la dirección URL de Spring Cloud Gateway para enrutar la solicitud a las aplicaciones de servicio back-end y expone la dirección URL de Application Live View para supervisar las aplicaciones de back-end.
  • Analiza los registros mediante el área de trabajo de Log Analytics.
  • Supervisa el rendimiento con Application Insights.

Nota:

En este artículo se usa una versión simplificada de PetClinic, mediante una base de datos en memoria que no está lista para producción para implementarse rápidamente en Azure Spring Apps.

Las Herramientas de desarrollo de Tanzu exponen el acceso público a Application Live View, que es un punto de riesgo. El entorno de producción debe proteger el acceso. Para obtener más información, consulte la sección Configurar portal de Herramientas de desarrollo de Configurar Herramientas de desarrollo de Tanzu en el plan Enterprise de Azure Spring Apps.

El ejemplo Pet Clinic muestra el patrón de arquitectura de microservicios. En el siguiente diagrama, se muestra la arquitectura de la aplicación PetClinic en el plan Estándar de Azure Spring Apps.

Diagrama que muestra la arquitectura del ejemplo PetClinic en el plan Estándar de Azure Spring Apps.

En el diagrama se muestran los siguientes flujos arquitectónicos y las relaciones del ejemplo de Pet Clinic:

  • Usa Azure Spring Apps para administrar las aplicaciones de Spring Boot. Cada aplicación usa HSQLDB como almacén persistente.
  • Usa los componentes administrados de Eureka Service Registry y Config Server de Spring Cloud en Azure Spring Apps. Config Server lee la configuración del repositorio de Git.
  • Expone la dirección URL de la puerta de enlace de API para equilibrar la carga de las solicitudes a las aplicaciones de servicio y expone la dirección URL del servidor de administración para administrar las aplicaciones.
  • Analiza los registros mediante el área de trabajo de Log Analytics.
  • Supervisa el rendimiento con Application Insights.

Nota:

En este artículo se usa una versión simplificada de PetClinic, mediante una base de datos en memoria que no está lista para producción para implementarse rápidamente en Azure Spring Apps.

La aplicación implementada admin-server expone el acceso público, que es un punto de riesgo. El entorno de producción necesita proteger la aplicación Spring Boot Admin.

En este artículo se proporcionan las siguientes opciones para la implementación en Azure Spring Apps:

  • La opción de Azure Portal es la manera más sencilla y rápida de crear recursos e implementar aplicaciones con un solo clic. Esta opción es adecuada para los desarrolladores de Spring que desean implementar rápidamente aplicaciones para los servicios en la nube de Azure.
  • La opción Azure Portal y complemento Maven es una manera más convencional de crear recursos e implementar aplicaciones paso a paso. Esta opción es adecuada para los desarrolladores de Spring que usan servicios en la nube de Azure por primera vez.
  • La opción CLI de Azure utiliza una potente herramienta de línea de comandos para administrar los recursos de Azure. Esta opción es adecuada para los desarrolladores de Spring que están familiarizados con los servicios en la nube de Azure.
  • La opción Azure Portal y complemento Maven es una manera más convencional de crear recursos e implementar aplicaciones paso a paso. Esta opción es adecuada para los desarrolladores de Spring que usan servicios en la nube de Azure por primera vez.
  • La opción de la Azure Developer CLI es una manera más eficaz de crear recursos e implementar aplicaciones automáticamente a través de comandos sencillos. La Azure Developer CLI usa una plantilla para aprovisionar los recursos de Azure necesarios e implementar el código de la aplicación. Esta opción es adecuada para los desarrolladores de Spring que están familiarizados con los servicios en la nube de Azure.

1. Prerrequisitos

2. Preparar el proyecto Spring

Siga los pasos que se indican a continuación para preparar el ejemplo en el sistema local:

  1. Clone el proyecto de ejemplo mediante el siguiente comando:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. Vaya al directorio raíz del proyecto y, a continuación, use el siguiente comando para ejecutar el proyecto de ejemplo localmente:

    bash ./scripts/run_all_without_infra.sh
    
  3. Una vez completado correctamente el script, vaya a http://localhost:8080 en el explorador para acceder a la aplicación Pet Clinic.

3. Preparar el entorno en la nube

En esta sección se describe cómo crear una instancia de servicio de Azure Spring Apps y preparar el entorno en la nube de Azure.

3.1. Inicio de sesión en Azure Portal

Vaya a Azure Portal y escriba sus credenciales para iniciar sesión en el portal. La vista predeterminada es el panel del servicio.

3.2. Creación de una instancia de Azure Spring Apps

Siga estos pasos para crear la instancia de servicio:

  1. En la esquina de Azure Portal, seleccione Crear un recurso.

  2. En la pestaña Servicios de Azure, seleccione Proceso>Azure Spring Apps.

    Captura de pantalla de Azure Portal que muestra la página de Crear recursos con Azure Spring Apps resaltado.

  3. En la página Crear Azure Spring Apps, rellene el formulario en la pestaña Aspectos básicos.

    Captura de pantalla de Azure Portal que muestra la página Crear Azure Spring Apps con la pestaña Aspectos básicos seleccionada.

    Use la tabla siguiente como guía para completar el formulario. El plan recomendado es Estándar.

    Configuración Valor sugerido Descripción
    Suscripción El nombre de su suscripción. La suscripción de Azure que desea usar para el servidor. Si tiene varias suscripciones, elija aquella en la que quiera que se le facture el recurso.
    Grupos de recursos myresourcegroup Un nuevo nombre de grupo de recursos o uno existente de la suscripción.
    Nombre myasa Nombre único que identifica la instancia de Azure Spring Apps. El nombre debe tener entre 4 y 32 caracteres, y solo puede contener números, letras minúsculas y guiones. El primer carácter del nombre del servicio debe ser una letra y el último debe ser una letra o un número.
    Plan Estándar El plan de precios determina los recursos y el coste asociados a la instancia.
    Región La región más cercana a los usuarios. La ubicación más cercana a los usuarios.
    Redundancia de zona No seleccionado Crea el servicio Azure Spring Apps en una zona de disponibilidad de Azure. Actualmente no se admite en todas las regiones.
  4. Vaya a la pestaña Configuración de diagnósticos de la página Crear Azure Spring Apps y seleccione Crear nuevo para crear una nueva instancia de áreas de trabajo de Log Analytics. En la página Crear nueva área de trabajo de Log Analytics, actualice el nombre del área de trabajo de Log Analytics según sea necesario y, a continuación, seleccione Aceptar para confirmar la creación.

    Captura de pantalla de Azure Portal que muestra la página Crear Azure Spring Apps con la pestaña Diagnósticos seleccionada y el botón Crear nuevo resaltado.

  5. Vaya a la pestaña Application Insights de la página Crear Azure Spring Apps y, a continuación, seleccione Crear nuevo para crear una nueva instancia de Application Insights. En la página Crear nuevo recurso de Application Insights, actualice el nombre de Application Insights según sea necesario, seleccione Basado en área de trabajo para Modo de recurso y, a continuación, seleccione Aceptar para confirmar la creación.

    Captura de pantalla de Azure Portal que muestra la página Crear Azure Spring Apps con el panel de recursos mostrando Crear nueva Application Insights.

  6. Seleccione Revisar y crear para revisar las selecciones. A continuación, seleccione Crear para aprovisionar la instancia de Azure Spring Apps.

  7. Seleccione el icono de Notificaciones (una campana) para supervisar el proceso de implementación. Una vez realizada la implementación, puede seleccionar Anclar al panel para crear un acceso directo en el panel de Azure Portal a la página Información general del servicio.

    Captura de pantalla de Azure Portal que muestra una implementación de un recurso y el panel de notificaciones con los botones Ir al recurso y Anclar al panel.

  8. Seleccione Ir al recurso para ir a la página Información general de Azure Spring Apps.

  9. Seleccione Config Server en el panel de navegación.

  10. En la página Config Server, para URI, escriba https://github.com/Azure-Samples/spring-petclinic-microservices-config.gity seleccione Validar.

    Captura de pantalla de Azure Portal que muestra la página Config Server con el URI predeterminado y el botón Validar resaltado.

  11. Después de la validación, seleccione Aplicar para finalizar la configuración de Config Server.

4. Implementar las aplicaciones en Azure Spring Apps

Ahora puede implementar la aplicación en Azure Spring Apps.

Siga estos pasos para implementar las aplicaciones de microservicios mediante el complemento Maven para Azure Spring Apps:

  1. Vaya al directorio del proyecto de ejemplo y, a continuación, use el siguiente comando para configurar las aplicaciones para Azure Spring Apps:

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. En la lista siguiente se describen las interacciones del comando:

    • Seleccione módulos secundarios para configurar (números de entrada separados por comas, por ejemplo: [1-2,4,6]; ENTRAR para seleccionar TODO): presione Entrar para seleccionar todo.
    • Inicio de sesión de OAuth2: autorice el inicio de sesión a Azure en función del protocolo OAuth2.
    • Seleccionar suscripción: seleccione el número de lista de suscripciones de la instancia de Azure Spring Apps que creó, que tiene como valor predeterminado la primera suscripción de la lista. Si usa el número predeterminado, presione Entrar directamente.
    • Seleccione Azure Spring Apps para la implementación: seleccione el número de lista de la instancia de Azure Spring Apps que creó. Si usa el número predeterminado, presione Entrar directamente.
    • Seleccione las aplicaciones para exponer el acceso público: (números de entrada separados por comas, por ejemplo: [1-2,4,6]; ENTRAR para seleccionar NINGUNO): escriba 1,5 para admin-server y api-gateway.
    • Confirme para guardar todas las configuraciones anteriores (Y/N): presione y. Si presiona n, la configuración no se guardará en los archivos POM.
  3. Use el siguiente comando para compilar e implementar cada aplicación:

    ./mvnw azure-spring-apps:deploy
    
  4. Para la solicitud Inicio de sesión de OAuth2, autorice el inicio de sesión a Azure en función del protocolo OAuth2.

    Nota

    La implementación en Azure Spring Apps podría tardar hasta 25 minutos.

Una vez ejecutado el comando, un registro mostrará una salida similar al ejemplo siguiente, que indica que todas las implementaciones se realizaron correctamente:

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. Preparar el proyecto Spring

El botón Implementar en Azure de la siguiente sección inicia una experiencia de Azure Portal que descarga un paquete JAR desde la página de ASA-Samples-Web-Application en GitHub. No se necesitan pasos de preparación locales.

3. Preparar el entorno en la nube

El recurso principal que necesita para ejecutar este ejemplo es una instancia de Azure Spring Apps. En esta sección se describe cómo crear este recurso.

En esta sección se usa un botón Implementar en Azure para iniciar una experiencia de implementación en Azure Portal. Esta experiencia usa una plantilla de ARM para crear recursos de Azure.

3.1. Inicio de sesión en Azure Portal

Vaya a Azure Portal y escriba sus credenciales para iniciar sesión en el portal. La vista predeterminada es el panel del servicio.

3.2. Creación de recursos de Azure

Siga estos pasos para crear todos los recursos de Azure de los que depende la aplicación:

  1. Seleccione el botón Implementar en Azure para iniciar la experiencia de implementación en Azure Portal:

    Botón para implementar la plantilla de Resource Manager en Azure.

  2. Rellene el formulario en la pestaña Aspectos básicos. Use la siguiente tabla como guía para completar el formulario:

    Configuración Valor sugerido Descripción
    Suscripción El nombre de su suscripción. La suscripción de Azure que desea usar para el servidor. Si tiene varias suscripciones, elija aquella en la que quiere que se le facture el recurso.
    Grupos de recursos myresourcegroup Un nuevo nombre de grupo de recursos o uno existente de la suscripción.
    Región La región más cercana a los usuarios. La región se usa para crear el grupo de recursos.

    Captura de pantalla de Azure Portal que muestra la página Implementación personalizada.

  3. Seleccione Revisar y crear para revisar las selecciones. A continuación, seleccione Crear para implementar la aplicación en Azure Spring Apps.

  4. En la barra de herramientas, seleccione el símbolo de Notificaciones (una campana) para supervisar el proceso de implementación. Una vez realizada la implementación, puede seleccionar Anclar al panel para crear un mosaico para este servicio en el panel de Azure Portal como un acceso directo a la página Información general del servicio. Seleccione Ir al recurso para abrir la página Información general del servicio.

    Captura de pantalla de Azure Portal que muestra la página Información general con el panel de notificaciones de implementación personalizadas abierto.

4. Implementar las aplicaciones en Azure Spring Apps

El botón Implementar en Azure de la sección anterior inicia una experiencia de Azure Portal que incluye la implementación de aplicaciones, por lo que no se necesita nada más.

5. Validar las aplicaciones

En las secciones siguientes, se describe cómo validar la implementación.

5.1. Acceso a las aplicaciones

Una vez finalizada la implementación, puede encontrar la dirección URL de Spring Cloud Gateway en las salidas de implementación, como se muestra en la captura de pantalla siguiente:

Captura de pantalla de Azure Portal que muestra la página Salidas de implementación.

Abra la dirección URL de la puerta de enlace. La aplicación debería ser similar a la captura de pantalla siguiente:

Captura de pantalla de la aplicación PetClinic ejecutándose en el plan Enterprise de Azure Spring Apps.

5.2. Consulta de los registros de la aplicación

Después de examinar cada función de Pet Clinic, el área de trabajo de Log Analytics recopila registros de cada aplicación. Es posible comprobar los registros mediante consultas personalizadas, tal y como se muestra en la captura de pantalla siguiente:

Captura de pantalla de Azure Portal que muestra la página Registros de la consulta en la aplicación PetClinic y los resultados del plan Enterprise.

5.3. Supervisión de las aplicaciones

Application Insights supervisa las dependencias de las aplicaciones, tal y como se muestra en la siguiente asignación de seguimiento de aplicaciones:

Captura de pantalla de Azure Portal que muestra la página Mapa de aplicaciones para el plan Enterprise de Azure Spring Apps.

Puede encontrar la URL de Application Live View en los resultados de la implementación. Abra la dirección URL de Application Live View para supervisar los runtimes de la aplicación, como se muestra en la captura de pantalla siguiente:

Captura de pantalla de Application Live View para la aplicación PetClinic.

5.1. Acceso a las aplicaciones

Con la información de la dirección URL de la salida del registro de implementación, abra la dirección URL expuesta por la aplicación denominada api-gateway. Por ejemplo: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io. La aplicación debería ser similar a la captura de pantalla siguiente:

Captura de pantalla de la aplicación PetClinic ejecutándose en Azure Spring Apps.

5.2. Consulta de los registros de la aplicación

Después de examinar cada función de Pet Clinic, el área de trabajo de Log Analytics recopila registros de cada aplicación. Es posible comprobar los registros mediante consultas personalizadas, tal y como se muestra en la captura de pantalla siguiente:

Captura de pantalla de Azure Portal que muestra la página Registros de la consulta en la aplicación PetClinic y los resultados.

5.3. Supervisión de las aplicaciones

Application Insights supervisa las dependencias de las aplicaciones, tal y como se muestra en la siguiente asignación de seguimiento de aplicaciones:

Captura de pantalla de Azure Portal que muestra la página de asignación de aplicaciones para Application Insights.

Abra la dirección URL expuesta por la aplicación admin-server para administrar las aplicaciones a través del servidor de administración de Spring Boot, tal y como se muestra en la captura de pantalla siguiente:

Captura de pantalla de la página del servidor de administración de Spring Boot para la aplicación PetClinic que muestra las instancias de aplicación actuales.

6. Limpieza de recursos

Si planea seguir trabajando en otros inicios rápidos y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no necesite los recursos, puede limpiar los recursos innecesarios para evitar cargos de Azure.

Siga los siguientes pasos para eliminar todo el grupo de recursos, incluyendo la instancia de servicio recién creada:

  1. Elimine el grupo de recursos en Azure Portal. En el menú de navegación, seleccione Grupos de recursos y, a continuación, seleccione el nombre del grupo de recursos.

  2. En la página Grupo de recursos, seleccione Eliminar. Escriba el nombre del grupo de recursos en el cuadro de texto para confirmar la eliminación, luego seleccione Eliminar.

Asegúrate de eliminar los recursos creados en este tutorial cuando ya no los necesites. Puede eliminar el grupo de recursos de Azure, lo que incluye todos los recursos del grupo de recursos.

Siga estos pasos para eliminar todo el grupo de recursos:

  1. Elimine el grupo de recursos en Azure Portal. En el menú de navegación, seleccione Grupos de recursos y, a continuación, seleccione el nombre del grupo de recursos.

  2. En la página Grupo de recursos, seleccione Eliminar. Escriba el nombre del grupo de recursos en el cuadro de texto para confirmar la eliminación, luego seleccione Eliminar.

7. Pasos siguientes

Para más información, consulte los siguientes artículos.