Lire en anglais

Partager via


Démarrage rapide : Lancer votre première application de microservices Java avec des composants Java managés dans Azure Container Apps

Dans ce guide de démarrage rapide, vous allez apprendre à déployer une application dans Azure Container Apps qui utilise des composants Java pour gérer la gestion de la configuration, la découverte de services et l’intégrité et les métriques. L’exemple d’application utilisé dans cet exemple est Java PetClinic, qui utilise le modèle d’architecture de microservices. Le diagramme suivant illustre l’architecture de l’application PetClinic sur Azure Container Apps :

Diagramme de la relation entre les composants Java et les applications de microservices.

L'application PetClinic propose les fonctionnalités suivantes :

  • Le serveur frontal est une application web autonome Node.js hébergée sur l’application passerelle d’API.
  • La passerelle d’API achemine les demandes vers les applications de service back-end.
  • Les applications principales sont créées avec Spring Boot.
  • Chaque application principale utilise une base de données HyperSQL comme magasin persistant.
  • Les applications utilisent des composants Java managés sur Azure Container Apps, notamment un registre de services, un serveur de configuration et un serveur d’administration.
  • Le serveur de configuration lit les données à partir d’un référentiel Git.
  • Un espace de travail Log Analytics journalise les données du serveur.

Dans ce tutoriel, vous allez :

  • Créer un serveur de configuration, un serveur Eureka, un serveur d’administration et des composants d’administration
  • Créer une série d’applications de microservices
  • Lier les composants serveur à vos applications de microservices
  • Déployer la collection d’applications
  • Vérifier les applications déployées

À la fin de cet article, vous déployez une application web et trois applications principales qui sont configurées pour fonctionner avec trois composants Java différents. Vous pouvez ensuite gérer chaque composant via le portail Azure.

Prérequis

  • Compte Azure : Si vous n’avez pas de compte Azure, créez-en un gratuitement. Vous avez besoin de l’autorisation Contributeur ou Propriétaire sur l’abonnement Azure pour utiliser ce démarrage rapide. Pour plus d'informations, consultez Attribuer des rôles Azure en utilisant le portail Azure.
  • Azure CLI : installez l'interface Azure CLI.
  • Extension CLI d'Azure Container Apps. Utilisez la version 0.3.47 ou ultérieure. Utilisez la commande az extension add --name containerapp --upgrade --allow-preview pour installer la dernière version.

Programme d’installation

Pour créer des variables d’environnement, un groupe de ressources et un environnement Azure Container Apps, procédez comme suit :

  1. Les variables d’environnement contiennent vos valeurs personnalisées. Remplacez donc les valeurs d’espace réservé entourées de <> par vos propres valeurs avant d’exécuter les commandes suivantes :

    Bash
    export RESOURCE_GROUP=<RESOURCE_GROUP>
    export LOCATION=<LOCATION>
    export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
    
  2. Vous créez maintenant d’autres variables d’environnement qui contiennent les paramètres de votre application de microservices. Ces valeurs sont utilisées pour définir les noms et les configurations des composants Java et d’Azure Container Apps que vous utilisez pour déployer les microservices. Créez ces variables d’environnement à l’aide des commandes suivantes :

    Bash
    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. Connectez-vous à Azure CLI et sélectionnez votre abonnement actif à l’aide de la commande suivante :

    Azure CLI
    az login
    
  4. Créez un groupe de ressources pour organiser vos services Azure à l’aide de la commande suivante :

    Azure CLI
    az group create \
        --name $RESOURCE_GROUP \
        --location $LOCATION
    
  5. Créez votre environnement Azure Container Apps, qui héberge à la fois les composants Java et vos applications conteneur, à l’aide de la commande suivante :

    Azure CLI
    az containerapp env create \
        --resource-group $RESOURCE_GROUP \
        --name $CONTAINER_APP_ENVIRONMENT \
        --location $LOCATION
    

Créer des composants Java

Vous créez maintenant les composants Java suivants qui prennent en charge votre application :

  • Serveur de configuration. Utilisé pour gérer les paramètres de configuration de vos applications de microservices.
  • Serveur Eureka. Utilisé pour gérer le registre et la découverte de services.
  • Serveur d’administration. Utilisé pour surveiller et gérer l’intégrité et les métriques de vos applications de microservices.

Pour créer ces composants serveur, procédez comme suit :

  1. Créez le serveur de configuration pour vos composants Java à l’aide de la commande suivante :

    Azure CLI
    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. Créez le serveur Eureka pour vos composants Java à l’aide de la commande suivante :

    Azure CLI
    az containerapp env java-component eureka-server-for-spring create \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_SERVER_COMPONENT
        --environment $CONTAINER_APP_ENVIRONMENT \
    
  3. Créez le serveur d'administration pour vos composants Java à l’aide de la commande suivante :

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

Déployer des applications de microservices

Pour déployer les applications de microservices Java sur Azure Container Apps à l’aide des images conteneur prédéfinies, procédez comme suit :

Notes

Dans cet article, vous utilisez une série d’images générées pour les applications de microservice Spring Petclinic. Vous avez également la possibilité de personnaliser l’exemple de code et d’utiliser vos propres images. Pour plus d’informations, consultez le référentiel GitHub azure-container-apps-java-samples.

  1. Créez l’application de données client à l’aide de la commande suivante :

    Azure CLI
    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $CUSTOMERS_SERVICE_IMAGE
    
  2. Créez l'application vétérinaire à l’aide de la commande suivante :

    Azure CLI
    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VETS_SERVICE_IMAGE
    
  3. Créez l'application de visites à l’aide de la commande suivante :

    Azure CLI
    az containerapp create \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --environment $CONTAINER_APP_ENVIRONMENT \
        --image $VISITS_SERVICE_IMAGE
    
  4. Créez l’application de passerelle d’API à l’aide de la commande suivante :

    Azure CLI
    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 
    

Lier des applications conteneur à des composants Java

Ensuite, liez les composants Java à vos applications conteneur. Les liaisons que vous créez dans cette section fournissent les fonctionnalités suivantes :

  • Injectez des données de configuration dans chaque application à partir du serveur de configuration managé au démarrage.
  • Inscrivez l’application auprès du serveur Eureka géré pour la découverte du service.
  • Activez le serveur d’administration pour surveiller l’application.

Utilisez la commande containerapp update pour créer des liaisons pour chaque application en procédant comme suit :

  1. Ajoutez des liaisons à l’application de données client à l’aide de la commande suivante :

    Azure CLI
    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $CUSTOMERS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  2. Ajoutez des liaisons au service vétérinaire à l’aide de la commande suivante :

    Azure CLI
    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VETS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  3. Ajoutez des liaisons au service de visites à l’aide de la commande suivante :

    Azure CLI
    az containerapp update \
        --resource-group $RESOURCE_GROUP \
        --name $VISITS_SERVICE \
        --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
    
  4. Ajoutez des liaisons à la passerelle d’API. Utilisez la commande suivante pour retourner l’URL de l’application frontale, puis ouvrez cet emplacement dans votre navigateur :

    Azure CLI
    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 
    

Vérifier l’état de l’application

Pour vérifier le statut de l'application, procédez comme suit :

  1. À l’aide de l’URL retournée à partir de la commande az containerapp update de la passerelle d'API, affichez l’application frontale dans votre navigateur. L'application doit ressembler à la capture d’écran suivante :

    Capture d’écran de la page d’accueil de l’application de la clinique vétérinaire.

  2. Affichez le tableau de bord du serveur Eureka en procédant comme suit :

    Important

    Pour afficher le tableau de bord du serveur Eureka et le tableau de bord Administration gérée pour Spring, vous devez disposer au moins du rôle Microsoft.App/managedEnvironments/write attribué à votre compte sur la ressource d’environnement managé. Vous pouvez attribuer explicitement le rôle Owner ou Contributor sur la ressource. Vous pouvez également suivre les étapes pour créer une définition de rôle personnalisé et l’attribuer à votre compte.

    1. Exécutez la commande suivante pour retourner l’URL du tableau de bord :

      Azure CLI
      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. Ouvrez l’URL dans votre navigateur. Vous devez voir une application qui ressemble à la capture d’écran suivante :

      Capture d’écran du serveur Eureka pour l’application de clinique vétérinaire.

  3. Affichez le tableau de bord Administration gérée pour Spring en procédant comme suit :

    1. Exécutez la commande suivante pour retourner l'URL du tableau de bord :

      Azure CLI
      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. Ouvrez l’URL dans votre navigateur. Vous devez voir une application qui ressemble à la capture d’écran suivante :

      Capture d’écran du tableau de bord de l’administrateur de la clinique vétérinaire montrant cinq services, ainsi que les informations de version pour quatre des services.

Facultatif : Configurer des composants Java

Vous pouvez configurer les composants Java créés dans ce guide de démarrage rapide via le portail Azure à l’aide de la section Configurations.

Capture d’écran de la section Configurations, montrant les zones de texte Nom de propriété et Valeur, ainsi que la possibilité de supprimer une propriété.

Pour plus d’informations sur la configuration des trois composants Java que vous avez créés dans ce guide de démarrage rapide, consultez les liens suivants :

Nettoyer les ressources

Les ressources créées dans ce démarrage rapide ont un effet sur votre facture Azure. Si vous n’allez pas utiliser ces services à long terme, utilisez la commande suivante pour supprimer tout ce qui a été créé dans ce démarrage rapide :

Azure CLI
az group delete --resource-group $RESOURCE_GROUP