Démarrage rapide : déployer des applications de microservices sur Azure Spring Apps

Notes

Les 50 premières heures de processeur virtuel et 100 Go de mémoire sont gratuites chaque mois. Pour plus d’informations, consultez Price Reduction - Azure Spring Apps does more, costs less! sur le blog Apps on Azure.

Notes

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article vous explique comment déployer des applications de microservices sur Azure Spring Apps en utilisant l’exemple d’application bien connu PetClinic.

L’exemple Pet Clinic illustre le modèle d’architecture de microservice. Le diagramme suivant illustre l’architecture de l’application PetClinic sur le plan Entreprise Azure Spring Apps.

Diagramme qui montre l'architecture de l'exemple PetClinic sur le plan Azure Spring Apps Enterprise.

Le diagramme montre les flux architecturaux et les relations suivants de l’exemple Pet Clinic :

  • Il utilise Azure Spring Apps pour gérer les applications front-end et back-end. Les applications back-ends sont créées avec Spring Boot et chaque application utilise HSQLDB comme magasin persistant. L’application front-end reformée s’appuie sur l’application de passerelle API Pet Clinic avec Node.js qui sert d’application web front-end autonome.
  • Elle utilise les composants managés sur Azure Spring Apps, notamment Service Registry, le service de configuration des applications, la passerelle Spring Cloud et Application Live View. Le service de configuration des applications lit la configuration du référentiel Git.
  • Il expose l’URL de la passerelle Spring Cloud pour acheminer la demande vers les applications de service back-end et il expose l’URL d’Application Live View pour surveiller les applications principales.
  • Permet d’analyser des journaux en utilisant l’espace de travail Log Analytics.
  • Permet de surveiller le niveau de performance avec Application Insights.

Remarque

Cet article utilise une version simplifiée de PetClinic, à l’aide d’une base de données en mémoire qui n’est pas prête pour la production et pour un déploiement rapide sur Azure Spring Apps.

Les outils de développement Tanzu exposent l’accès public pour Application Live View, qui est un point de risque. L’environnement de production doit sécuriser l’accès. Pour plus d’informations, consultez la section Configurer le portail des outils de développement de Configurer les outils de développement Tanzu dans le plan Entreprise Azure Spring Apps.

L’exemple Pet Clinic illustre le modèle d’architecture de microservice. Le diagramme suivant illustre l’architecture de l’application PetClinic sur le plan Standard Azure Spring Apps.

Diagramme qui montre l'architecture de l'exemple PetClinic sur le plan standard Azure Spring Apps.

Le diagramme montre les flux architecturaux et les relations suivants de l’exemple Pet Clinic :

  • Permet d’utiliser Azure Spring Apps pour gérer les applications Spring Boot. Chaque application utilise HSQLDB comme magasin persistant.
  • Permet d’utiliser les composants managés Spring Cloud Config Server et Eureka Service Registry sur Azure Spring Apps. Le serveur Config Server lit la configuration du référentiel Git.
  • Permet d’exposer l’URL de la passerelle API pour équilibrer la charge des requêtes adressées aux applications de service et expose l’URL du serveur d’administration pour gérer les applications.
  • Permet d’analyser des journaux en utilisant l’espace de travail Log Analytics.
  • Permet de surveiller le niveau de performance avec Application Insights.

Remarque

Cet article utilise une version simplifiée de PetClinic, à l’aide d’une base de données en mémoire qui n’est pas prête pour la production et pour un déploiement rapide sur Azure Spring Apps.

L’application déployée admin-server expose l’accès public, qui est un point de risque. L’environnement de production doit sécuriser l’application Spring Boot Administrateur.

Cet article fournit les options suivantes pour le déploiement sur Azure Spring Apps :

  • L’option Portail Azure est la méthode la plus simple et la plus rapide pour créer des ressources et déployer des applications en un seul clic. Cette option convient aux développeurs Spring qui souhaitent déployer rapidement des applications sur des services cloud Azure.
  • L'option Portail Azure + Plugin Maven est un moyen plus conventionnel de créer des ressources et de déployer des applications étape par étape. Cette option convient aux développeurs Spring qui utilisent les services cloud Azure pour la première fois.
  • L'option Azure CLI utilise un puissant outil de ligne de commande pour gérer les ressources Azure. Cette option convient aux développeurs Spring qui sont familiarisés avec les services cloud Azure.
  • L'option Portail Azure + Plugin Maven est un moyen plus conventionnel de créer des ressources et de déployer des applications étape par étape. Cette option convient aux développeurs Spring qui utilisent les services cloud Azure pour la première fois.
  • L’option Azure Developer CLI est un moyen plus efficace de créer automatiquement des ressources et de déployer des applications par le biais de commandes simples. Azure Developer CLI utilise un modèle pour provisionner les ressources Azure nécessaires et déployer le code de l’application. Cette option convient aux développeurs Spring qui sont familiarisés avec les services cloud Azure.

1. Prérequis

2. Préparer le projet Spring

Utilisez les étapes suivantes pour préparer l’exemple localement :

  1. Clonez l’exemple de projet à l’aide de la commande suivante :

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. Accédez au répertoire racine du projet, puis utilisez la commande suivante pour exécuter l’exemple de projet localement :

    bash ./scripts/run_all_without_infra.sh
    
  3. Une fois le script terminé, accédez à http://localhost:8080 dans votre navigateur pour accéder à l’application PetClinic.

3. Préparer l’environnement cloud

Cette section décrit comment créer une instance de service Azure Spring Apps et préparer l’environnement cloud Azure.

3.1. Connectez-vous au portail Azure.

Accédez au Portail Microsoft Azure et entrez vos informations d’identification pour vous connecter au portail. Il s’ouvre par défaut sur le tableau de bord des services.

3.2. Créer une instance Azure Spring Apps

Utilisez la procédure suivante pour créer une instance de service :

  1. Sélectionnez Créer une ressource dans le coin du portail Azure.

  2. Sous l’onglet Services Azure, sélectionnez Calculer>Azure Spring Apps.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Créer une ressource avec Azure Spring Apps en surbrillance.

  3. Dans la page Créer Azure Spring Apps, remplissez le formulaire sous l’onglet Informations de base.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Créer des Azure Spring Apps avec l'onglet Bases sélectionné.

    Utilisez le tableau suivant comme guide afin de remplir le formulaire. Le plan recommandé est Standard.

    Paramètre Valeur suggérée Description
    Abonnement Nom de votre abonnement. Abonnement Azure que vous souhaitez utiliser pour votre serveur. Si vous disposez de plusieurs abonnements, choisissez celui pour lequel vous souhaitez que la ressource soit facturée.
    Groupe de ressources myresourcegroup Un nouveau nom de groupe de ressources ou un nom de groupe existant dans votre abonnement.
    Nom myasa Nom unique qui identifie votre instance Azure Spring Apps. Le nom doit comporter entre 4 et 32 caractères, et contenir uniquement des lettres minuscules, des chiffres et des traits d’union. Le premier caractère du nom du service doit être une lettre, et le dernier doit être une lettre ou un chiffre.
    Planification Standard Le plan tarifaire détermine les ressources et le coût associés à votre instance.
    Région La région la plus proche de vos utilisateurs. L’emplacement géographique le plus proche de vos utilisateurs.
    Redondant interzone Non sélectionné Permet de créer votre service Azure Spring Apps dans une zone de disponibilité Azure. Non pris en charge actuellement dans toutes les régions.
  4. Accédez à l’onglet Paramètres de diagnostic dans la page Créer Azure Spring Apps, puis sélectionnez Créer pour créer une instance d’espace de travail Log Analytics. Dans la page Créer un espace de travail Log Analytics, mettez à jour le nom de l’espace de travail Log Analytics en fonction des besoins, puis sélectionnez OK pour confirmer la création.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Créer des Azure Spring Apps avec l'onglet Diagnostics sélectionné et le bouton Créer nouveau mis en surbrillance.

  5. Accédez à l’onglet Application Insights dans la page Créer Azure Spring Apps, puis sélectionnez Créer pour créer une instance Application Insights. Dans la page Créer une ressource Application Insights, mettez à jour le nom Application Insights en fonction des besoins, sélectionnez Basé sur l’espace de travail pour le Mode de ressources, puis sélectionnez OK pour confirmer la création.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Créer des Azure Spring Apps avec le volet de ressources Créer un nouveau Application Insights affiché.

  6. Sélectionnez Vérifier et créer pour passer en revue vos sélections. Ensuite, sélectionnez Créer pour provisionner l’instance d’application Azure Spring.

  7. Sélectionnez l’icône Notifications (en forme de cloche) pour surveiller le processus de déploiement. Une fois le déploiement terminé, vous pouvez sélectionner Épingler au tableau de bord pour créer un raccourci sur le tableau de bord de votre Portail Microsoft Azure vers la page Présentation du service.

    Capture d'écran du Portail Microsoft Azure qui montre un déploiement d'une ressource et le volet de notification avec les boutons Aller à la ressource et Épingler au tableau de bord.

  8. Sélectionnez Accéder à la ressource pour accéder à la page Vue d’ensemble d’Azure Spring Apps.

  9. Sélectionnez Config Server dans le volet de navigation.

  10. Sur la page Config Server, pour URI, entrez https://github.com/Azure-Samples/spring-petclinic-microservices-config.git, puis sélectionnez Valider.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Config Server avec l'URI par défaut et le bouton Valider en surbrillance.

  11. Après la validation, sélectionnez Appliquer pour terminer la configuration du Config Server.

4. Déployer les applications sur Azure Spring Apps

Vous pouvez maintenant déployer l’application sur Azure Spring Apps.

Utilisez la procédure suivante pour déployer les applications de microservices en utilisant le plug-in Maven pour Azure Spring Apps :

  1. Accédez au répertoire de l’exemple de projet, puis utilisez la commande suivante pour configurer les applications pour Azure Spring Apps :

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. La liste suivante décrit les interactions de commande :

    • Sélectionnez des modules enfants à configurer (nombres d’entrée séparés par des virgules, par exemple : [1-2,4,6], ENTRÉE pour sélectionner TOUT) : appuyez sur Entrée pour tout sélectionner.
    • Connexion OAuth2 : autorisez la connexion à Azure basée sur le protocole OAuth2.
    • Sélectionnez un abonnement : sélectionnez le numéro de liste d’abonnements de l’instance Azure Spring Apps créée, qui correspond par défaut au premier abonnement de la liste. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
    • Sélectionnez Azure Spring Apps pour le déploiement : sélectionnez le numéro de liste de l’instance Azure Spring Apps que vous avez créée. Si vous utilisez le nombre par défaut, appuyez directement sur Entrée.
    • Sélectionnez des applications pour exposer l’accès public : (nombres d’entrée séparés par des virgules, par exemple : [1-2,4,6], ENTRÉE pour sélectionner AUCUN) : entrez 1,5 pour admin-server et api-gateway.
    • Confirmez pour enregistrer toutes les configurations ci-dessus (O/N) : entrez O. Si vous entrez N, la configuration n’est pas enregistrée dans les fichiers POM.
  3. Utilisez la commande suivante pour générer et déployer chaque application :

    ./mvnw azure-spring-apps:deploy
    
  4. Pour l’invitation Connexion OAuth2, autorisez la connexion à Azure en fonction du protocole OAuth2.

    Notes

    Le déploiement sur Azure Spring Apps peut prendre jusqu’à 25 minutes.

Une fois la commande exécutée, un journal affiche une sortie similaire à l’exemple suivant, ce qui indique que tous les déploiements réussissent :

[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. Préparer le projet Spring

Le bouton Déployer sur Azure dans la section suivante lance une expérience du portail Azure qui télécharge un package JAR à partir de la page des versions ASA-Samples-Web-Application sur GitHub. Aucune étape de préparation locale n’est nécessaire.

3. Préparer l’environnement cloud

Une instance Azure Spring Apps est la principale ressource dont vous avez besoin pour exécuter cet exemple. Cette section décrit comment créer cette ressource.

Cette section utilise un bouton Déployer sur Azure pour lancer une expérience de déploiement dans le portail Azure. Cette expérience utilise un modèle ARM pour créer des ressources Azure.

3.1. Connectez-vous au portail Azure.

Accédez au Portail Microsoft Azure et entrez vos informations d’identification pour vous connecter au portail. Il s’ouvre par défaut sur le tableau de bord des services.

3.2. Créer des ressources Azure

Pour créer toutes les ressources Azure dont dépend l’application, procédez comme suit :

  1. Sélectionnez le bouton Déployer sur Azure suivant pour lancer l’expérience de déploiement dans le Portail Microsoft Azure :

    Bouton pour déployer le modèle Resource Manager sur Azure.

  2. Renseignez le formulaire dans l’onglet Informations de base. Utilisez le tableau suivant comme guide afin de remplir le formulaire :

    Paramètre Valeur suggérée Description
    Abonnement Nom de votre abonnement. Abonnement Azure que vous souhaitez utiliser pour votre serveur. Si vous disposez de plusieurs abonnements, choisissez celui dans lequel vous souhaitez que la ressource soit facturée.
    Groupe de ressources myresourcegroup Un nouveau nom de groupe de ressources ou un nom de groupe existant dans votre abonnement.
    Région La région la plus proche de vos utilisateurs. La région est utilisée pour créer le groupe de ressources.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Déploiement personnalisé.

  3. Sélectionnez Vérifier et créer pour passer en revue vos sélections. Ensuite, sélectionnez Créer pour déployer l’application sur Azure Spring Apps.

  4. Dans la barre d’outils, sélectionnez l’icône Notifications (en forme de cloche) pour surveiller le processus de déploiement. Une fois le déploiement terminé, vous pouvez sélectionner Épingler au tableau de bord, ce qui crée une vignette pour ce service dans votre tableau de bord du Portail Microsoft Azure, en tant que raccourci vers la page Vue d’ensemble du service. Sélectionnez Accéder à la ressource pour ouvrir la page Vue d’ensemble du service.

    Capture d'écran du Portail Microsoft Azure qui affiche la page Présentation avec le volet de notifications de déploiement personnalisé ouvert.

4. Déployer les applications sur Azure Spring Apps

Le bouton Déployer sur Azure dans la section précédente lance une expérience du portail Azure qui inclut le déploiement d’applications. Vous n’avez donc rien d’autre à faire.

5. Valider l’intervenant

Les sections suivantes décrivent la procédure de validation du déploiement.

5.1. Accéder aux applications

Une fois le déploiement terminé, vous trouverez l’URL de Spring Cloud Gateway à partir des sorties de déploiement, comme illustré dans la capture d’écran suivante :

Capture d'écran du Portail Microsoft Azure qui affiche la page Résultats du déploiement.

Ouvrez l’URL de la passerelle. L’application doit ressembler à la capture d’écran suivante :

Capture d'écran de l'application PetClinic exécutée sur le plan Azure Spring Apps Enterprise.

5.2. Interroger les journaux d’application

Après avoir parcouru chaque fonction de PetClinic, l’espace de travail Log Analytics collecte les journaux de chaque application. Vous pouvez vérifier les journaux à l’aide de requêtes personnalisées, comme illustré dans la capture d’écran suivante :

Capture d'écran du Portail Microsoft Azure qui affiche la page Journaux de la requête sur l'application PetClinic et les résultats du plan Entreprise.

5.3. Surveiller les applications

Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :

Capture d'écran du Portail Microsoft Azure qui affiche la page Carte des applications pour le plan Azure Spring Apps Enterprise.

Vous pouvez trouver l’URL d’Application Live View à partir des sorties de déploiement. Ouvrez l’URL d’Application Live View pour monitorer les runtimes d’application, comme illustré dans la capture d’écran suivante :

Capture d'écran de l'application Live View pour l'application PetClinic.

5.1. Accéder aux applications

En tirant parti des informations d’URL dans la sortie du journal de déploiement, ouvrez l’URL exposée par l’application nommée api-gateway, par exemple, https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io. L’application doit ressembler à la capture d’écran suivante :

Capture d’écran de l’application PetClinic en cours d’exécution sur Azure Spring Apps.

5.2. Interroger les journaux d’application

Après avoir parcouru chaque fonction de PetClinic, l’espace de travail Log Analytics collecte les journaux de chaque application. Vous pouvez vérifier les journaux à l’aide de requêtes personnalisées, comme illustré dans la capture d’écran suivante :

Capture d'écran du Portail Microsoft Azure qui affiche la page Journaux de la requête sur l'application PetClinic et les résultats.

5.3. Surveiller les applications

Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :

Capture d'écran du Portail Microsoft Azure qui affiche la page Carte d'application pour une instance Application Insights.

Ouvrez l’URL exposée par l’application admin-server pour gérer les applications via Spring Boot Administration Server, comme illustré dans la capture d’écran suivante :

Capture d'écran de la page Spring Boot Admin Server pour l'application PetClinic répertoriant les instances d'application actuelles.

6. Nettoyer les ressources

Si vous prévoyez d’utiliser d’autres guides de démarrage rapide et tutoriels, vous pouvez conserver ces ressources. Lorsque vous n’avez plus besoin des ressources, vous pouvez supprimer les ressources inutiles pour éviter des frais Azure.

Procédez comme suit pour supprimer l’ensemble du groupe de ressources, y compris l’instance de service nouvellement créée :

  1. Localisez votre groupe de ressources dans le portail Azure. Dans le menu de navigation, sélectionnez Groupes de ressources, puis sélectionnez le nom de votre groupe de ressources.

  2. Dans la page Groupe de ressources, sélectionnez Supprimer. Entrez le nom de votre groupe de ressources dans la zone de texte pour confirmer la suppression, puis sélectionnez Supprimer.

Assurez-vous de supprimer les ressources que vous avez créées dans cet article lorsque vous n’en aurez plus besoin. Vous pouvez supprimer le groupe de ressources Azure qui inclut toutes les ressources du groupe de ressources.

Effectuez les étapes suivantes pour supprimer l’intégralité du groupe de ressources :

  1. Localisez votre groupe de ressources dans le portail Azure. Dans le menu de navigation, sélectionnez Groupes de ressources, puis sélectionnez le nom de votre groupe de ressources.

  2. Dans la page Groupe de ressources, sélectionnez Supprimer. Entrez le nom de votre groupe de ressources dans la zone de texte pour confirmer la suppression, puis sélectionnez Supprimer.

7. Étapes suivantes

Pour plus d’informations, consultez les articles suivants :