Compartir a través de


Inicio rápido: inicie su primera aplicación de microservicio Java con componentes Java administrados en Azure Container Apps

En esta guía rápida, aprenderá a implementar una aplicación en Azure Container Apps que utiliza componentes Java para administrar la configuración, la detección de servicios y el estado y las métricas. La aplicación de muestra utilizada en este ejemplo es Java PetClinic, que utiliza el patrón de arquitectura de microservicios. El siguiente diagrama muestra la arquitectura de la aplicación PetClinic en Azure Container Apps:

Diagrama de la relación entre los componentes Java y las aplicaciones de microservicio.

La aplicación PetClinic incluye las siguientes características:

  • El front-end es una aplicación web Node.js independiente alojada en la aplicación de puerta de enlace API.
  • La puerta de enlace de la API dirige las solicitudes a las aplicaciones de servicios de back-end.
  • Las aplicaciones back-end se crean con Spring Boot.
  • Cada aplicación back-end utiliza una base de datos HyperSQL como almacén persistente.
  • Las aplicaciones utilizan componentes Java administrados en Azure Container Apps, incluido un registro de servicios, un Config Server y un servidor de administración.
  • El Config Server lee datos de un repositorio Git.
  • Un área de trabajo de Log Analytics registra los datos del servidor.

En este tutorial ha:

  • Crear un Config Server, un servidor Eureka, un servidor de administración y componentes de administración
  • Crear una serie de aplicaciones de microservicios
  • Vincule los componentes del servidor a sus aplicaciones de microservicios
  • Implemente la colección de aplicaciones
  • Revisar las aplicaciones implementadas

Al final de este artículo, habrá implementado una aplicación web y tres aplicaciones back-end configuradas para trabajar con tres componentes Java diferentes. A continuación, puede administrar cada componente a través de Azure Portal.

Requisitos previos

  • Cuenta Azure: si no tiene una cuenta Azure, cree una gratis. Necesita el permiso de Colaborador oPropietario en la suscripción de Azure para utilizar este inicio rápido. Para más información, consulte Asignación de roles de Azure mediante Azure Portal.
  • CLI de Azure: instale CLI de Azure.
  • Extensión CLI de Azure Container Apps. Utilice la versión 0.3.47 o superior. Use el comando az extension add --name containerapp --upgrade --allow-preview para instalar la versión más reciente.

Configurar

Para crear variables de entorno, un grupo de recursos y un entorno de Azure Container Apps, siga estos pasos:

  1. Las variables de entorno contienen sus valores personalizados, así que sustituya los valores de marcador de posición rodeados por <> con sus propios valores antes de ejecutar los siguientes comandos:

    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. Ahora crea más variables de entorno que contengan la configuración de su aplicación de microservicios. Estos valores se utilizan para definir los nombres y las configuraciones de los componentes Java y las Azure Container Apps que se utilizan para implementar los microservicios. Cree estas variables de entorno utilizando los siguientes comandos:

    export CONFIG_SERVER_COMPONENT=configserver
    export ADMIN_SERVER_COMPONENT=admin
    export EUREKA_SERVER_COMPONENT=eureka
    export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git
    export CUSTOMERS_SERVICE=customers-service
    export VETS_SERVICE=vets-service
    export VISITS_SERVICE=visits-service
    export API_GATEWAY=api-gateway
    export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service
    export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service
    export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service
    export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
    
  3. Use el siguiente comando para iniciar sesión en la CLI de Azure y elija su suscripción activa:

    az login
    
  4. Cree un grupo de recursos para organizar sus servicios Azure mediante el siguiente comando:

    az group create \
        --name $RESOURCE_GROUP \
        --___location $LOCATION
    
  5. Cree su entorno Azure Container Apps, que aloja tanto los componentes Java como sus aplicaciones de contenedor, mediante el siguiente comando:

    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --___location $LOCATION
    

Crear componentes Java

Ahora crea los siguientes componentes Java que dan soporte a su aplicación:

  • Config Server. Se utiliza para administrar los ajustes de configuración de sus aplicaciones de microservicios.
  • Servidor Eureka. Se utiliza para administrar el registro y la detección de servicios.
  • Servidor de administración. Se utiliza para supervisar y administrar el estado y las métricas de sus aplicaciones de microservicios.

Para crear estos componentes de servidor, siga estos pasos:

  1. Cree el Config Server para sus componentes Java utilizando el siguiente comando:

    az containerapp env java-component config-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $CONFIG_SERVER_COMPONENT \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
    
  2. Cree el servidor Eureka para sus componentes Java utilizando el siguiente comando:

    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Cree el servidor de administración para sus componentes Java utilizando el siguiente comando:

    az containerapp env java-component admin-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    

Implementación de las aplicaciones de microservicio

Para implementar las aplicaciones de microservicio Java en Azure Container Apps utilizando las imágenes de contenedor predefinidas, siga estos pasos:

Nota:

En este artículo, se utiliza una serie de imágenes creadas para las aplicaciones de microservicios Spring Petclinic. También tiene la opción de personalizar el código de muestra y utilizar sus propias imágenes. Para obtener más información, consulte el Repositorio GitHub azure-container-apps-java-samples.

  1. Cree la aplicación de datos del cliente utilizando el siguiente comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Cree la aplicación para servicios veterinarios utilizando el siguiente comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Cree la aplicación de visitas utilizando el siguiente comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Cree la aplicación de puerta de enlace API utilizando el siguiente comando:

    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $API_GATEWAY_IMAGE \
        --ingress external \
        --target-port 8080 \
        --query properties.configuration.ingress.fqdn 
    

Vinculación de aplicaciones contenedoras a componentes Java

Luego, vincule los componentes Java a sus aplicaciones contenedoras. Los enlaces que se crean en esta sección proporcionan la siguiente funcionalidad:

  • Inyectar datos de configuración en cada aplicación desde el servidor de configuración administrado al inicio.
  • Registre la aplicación en el servidor Eureka administrado para la detección de servicios.
  • Habilitar el servidor de administración para supervisar la aplicación.

Utilice el comando containerapp update para crear enlaces para cada aplicación siguiendo los siguientes pasos:

  1. Agregue enlaces a la aplicación de datos del cliente mediante el siguiente comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Agregue enlaces al servicio veterinario utilizando el siguiente comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Agregue enlaces al servicio de visitas mediante el siguiente comando:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. Agregue enlaces a la puerta de enlace API. Utilice el siguiente comando para devolver la URL de la aplicación front-end, y luego abra esta ubicación en su navegador:

    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $API_GATEWAY \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \
        --query properties.configuration.ingress.fqdn 
    

Comprobación del estado de la aplicación

Siga estos pasos para verificar el estado de la aplicación:

  1. Utilizando la URL devuelta por el comando de la puerta de enlace az containerapp update de la API, visualice la aplicación front-end en su navegador. La aplicación debería parecerse a la siguiente captura de pantalla:

    Captura de pantalla de la página de inicio de la aplicación para clínicas veterinarias.

  2. Consulte el panel de control del servidor Eureka siguiendo estos pasos:

    Importante

    Para ver el panel de Servidor Eureka y el panel de Admin para Spring, debe tener al menos la función Microsoft.App/managedEnvironments/write asignada a su cuenta en el recurso de entorno administrado. Puede asignar explícitamente el rol Owner o Contributor en el recurso. También puede seguir los pasos para crear una definición de roles personalizada y asignarla a su cuenta.

    1. Ejecute el siguiente comando para obtener la URL del panel de control:

      az containerapp env java-component eureka-server-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $EUREKA_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Abra la URL en su navegador. Debería ver una aplicación parecida a la siguiente captura de pantalla:

      Captura de pantalla de la aplicación para Clínicas veterinarias en Eureka Server.

  3. Siga estos pasos para ver el panel de control de Administración para Spring:

    1. Utilice el siguiente comando para obtener la URL del panel de control:

      az containerapp env java-component admin-for-spring show \
          --resource-group $RESOURCE_GROUP \
          --name $ADMIN_SERVER_COMPONENT \
          --environment $CONTAINER_APP_ENVIRONMENT \
          --query properties.ingress.fqdn
      
    2. Abra la URL en su navegador. Debería ver una aplicación parecida a la siguiente captura de pantalla:

      Captura de pantalla del panel de administración de la clínica veterinaria que muestra cinco servicios, junto con la información de la versión de cuatro de los servicios.

Opcional: configurar componentes Java

Puede configurar los componentes Java creados en este inicio rápido a través de Azure Portal utilizando la sección Configuraciones.

Captura de pantalla de la sección Configuraciones, mostrando los cuadros de texto Nombre y Valor de la propiedad, y la posibilidad de eliminar una propiedad.

Para obtener más información sobre la configuración de los tres componentes Java que ha creado en este inicio rápido, consulte los siguientes vínculos:

Limpieza de recursos

Los recursos creados en este inicio rápido repercuten en su factura de Azure. Si no va a utilizar estos servicios a largo plazo, utilice el siguiente comando para eliminar todo lo creado en este inicio rápido:

az group delete --resource-group $RESOURCE_GROUP