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.
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.
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.
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 :
Clonez l’exemple de projet à l’aide de la commande suivante :
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
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
Une fois le script terminé, accédez à http://localhost:8080
dans votre navigateur pour accéder à l’application PetClinic.
Suivez les étapes suivantes pour initialiser l’application Pet Clinic à l’aide des modèles Azure Developer CLI :
Dans la fenêtre Bash, créez un dossier vide, puis accédez-y.
Utilisez la commande ci-dessous pour initialiser le projet :
azd init --template Azure-Samples/spring-petclinic-microservices
La liste suivante décrit l’interaction de commande :
-
Entrez un nouveau nom d’environnement : fournissez un nom d’environnement, qui est utilisé comme suffixe pour le groupe de ressources créé pour contenir toutes les ressources Azure. Ce nom doit être unique dans votre abonnement Azure.
La console génère des messages similaires à l’exemple suivant :
Initializing a new project (azd init)
Downloading template code to: <your-local-path>
(✓) Done: Initialized git repository
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
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 auportail Azure, entrez vos informations d’identification et connectez-vous 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 :
Sélectionnez Créer une ressource dans le coin du portail Azure.
Sous l’onglet Services Azure, sélectionnez Calculer>Azure Spring Apps.
Dans la page Créer Azure Spring Apps, remplissez le formulaire sous l’onglet Informations de base.
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. |
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.
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.
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.
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.
Sélectionnez Accéder à la ressource pour accéder à la page Vue d’ensemble d’Azure Spring Apps.
Sélectionnez Config Server dans le volet de navigation.
Sur la page Config Server, pour URI, entrez https://github.com/Azure-Samples/spring-petclinic-microservices-config.git, puis sélectionnez Valider.
Après la validation, sélectionnez Appliquer pour terminer la configuration du Config Server.
Pour créer les ressources requises, procédez comme suit :
Utilisez la commande suivante pour vous connecter à Azure avec OAuth2. Ignorez cette étape si vous vous êtes déjà connecté.
azd auth login
La console génère des messages similaires à l’exemple suivant :
Logged in to Azure.
Utilisez la commande suivante pour empaqueter une copie déployable de votre application, provisionner l’infrastructure du modèle sur Azure, puis déployer le code de l’application sur les nouvelles ressources provisionnées :
azd provision
La liste suivante décrit les interactions de commande :
-
Sélectionnez un abonnement Azure à utiliser : utilisez les flèches pour vous déplacer, tapez du texte pour filtrer, puis appuyez sur Entrée.
-
Sélectionnez un emplacement Azure à utiliser : utilisez les flèches pour vous déplacer, tapez du texte pour filtrer, puis appuyez sur Entrée.
La console génère des messages similaires à l’exemple suivant :
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Remarque
Cette commande peut prendre un certain temps. Un indicateur de progression s’affiche au fur et à mesure de l’approvisionnement des ressources Azure.
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 :
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
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.
Utilisez la commande suivante pour générer et déployer chaque application :
./mvnw azure-spring-apps:deploy
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
Utilisez la procédure ci-dessous pour empaqueter l’application, approvisionner les ressources Azure requises par l’application web, puis déployer sur Azure Spring Apps :
Utilisez la commande suivante pour empaqueter une copie déployable de votre application :
azd package
La console génère des messages similaires à l’exemple suivant :
SUCCESS: Your application was packaged for Azure in xx minutes xx seconds.
Utilisez la commande suivante pour déployer le code d’application sur les nouvelles ressources approvisionnées :
azd deploy
La console génère des messages similaires à l’exemple suivant :
Deploying services (azd deploy)
(✓) Done: Deploying service admin-server
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io
(✓) Done: Deploying service api-gateway
- Endpoint: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io
(✓) Done: Deploying service customers-service
- No endpoints were found
(✓) Done: Deploying service vets-service
- No endpoints were found
(✓) Done: Deploying service visits-service
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
Notes
Vous pouvez également utiliser azd up
pour combiner les trois commandes précédentes : azd package
(empaquette une copie déployable de votre application), azd provision
(provisionne les ressources Azure) et azd deploy
(déploie le code de l’application). Pour plus d’informations, consultez Azure-Samples/spring-petclinic-microservices.
2. Préparer le projet Spring
Le bouton Déployer vers Azure de la section suivante lance une expérience de portail Azure qui déploie le code source à partir du référentiel Spring PetClinic. Aucune étape de préparation locale n’est nécessaire.
Effectuez ces étapes sur votre ordinateur local lorsque vous souhaitez vérifier l’application avant de la déployer dans le cloud :
Utilisez la commande suivante pour cloner l’application Pet Clinic à partir de GitHub :
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
Accédez au répertoire racine du projet, puis utilisez la commande suivante pour générer le projet :
./mvnw clean package -DskipTests
Procédez comme suit si vous souhaitez exécuter l’application localement. Sinon, vous pouvez ignorer ces étapes.
Ouvrez une nouvelle fenêtre Bash, puis utilisez la commande suivante pour démarrer Config Server :
./mvnw spring-boot:run -pl spring-petclinic-config-server
Ouvrez une nouvelle fenêtre Bash, puis utilisez la commande suivante pour démarrer le serveur de détection :
./mvnw spring-boot:run -pl spring-petclinic-discovery-server
Pour les clients, les vétérinaires, les visites et les services Spring Cloud Gateway, ouvrez une nouvelle fenêtre Bash et utilisez les commandes suivantes pour démarrer les services :
./mvnw spring-boot:run -pl spring-petclinic-customers-service
./mvnw spring-boot:run -pl spring-petclinic-vets-service
./mvnw spring-boot:run -pl spring-petclinic-visits-service
./mvnw spring-boot:run -Dspring-boot.run.profiles=default,development \
-pl spring-petclinic-api-gateway
Ouvrez une nouvelle fenêtre Bash et accédez au répertoire spring-petclinic-frontend
du projet. Utilisez les commandes suivantes pour installer les dépendances et exécuter l’application front-end :
npm install
npm run start
Une fois le script terminé, accédez à http://localhost:8080
dans votre navigateur pour accéder à l’application PetClinic.
Effectuez ces étapes sur votre ordinateur local lorsque vous souhaitez vérifier l’application avant de la déployer dans le cloud :
Utilisez la commande suivante pour cloner l’application Pet Clinic à partir de GitHub :
git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
Accédez au répertoire racine du projet, puis utilisez la commande suivante pour générer le projet :
./mvnw clean package -DskipTests
Procédez comme suit si vous souhaitez exécuter l’application localement. Sinon, vous pouvez ignorer ces étapes.
Ouvrez une nouvelle fenêtre Bash, puis utilisez la commande suivante pour démarrer Config Server :
./mvnw spring-boot:run -pl spring-petclinic-config-server
Ouvrez une nouvelle fenêtre Bash, puis utilisez la commande suivante pour démarrer le serveur de détection :
./mvnw spring-boot:run -pl spring-petclinic-discovery-server
Pour les clients, les vétérinaires, les visites et les services Spring Cloud Gateway, ouvrez une nouvelle fenêtre Bash et utilisez les commandes suivantes pour démarrer les services :
./mvnw spring-boot:run -pl spring-petclinic-customers-service
./mvnw spring-boot:run -pl spring-petclinic-vets-service
./mvnw spring-boot:run -pl spring-petclinic-visits-service
./mvnw spring-boot:run -Dspring-boot.run.profiles=default,development \
-pl spring-petclinic-api-gateway
Ouvrez une nouvelle fenêtre Bash et accédez au répertoire spring-petclinic-frontend
du projet. Utilisez les commandes suivantes pour installer les dépendances et exécuter l’application front-end :
npm install
npm run start
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
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 auportail Azure, entrez vos informations d’identification et connectez-vous 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 :
Sélectionnez le bouton Déployer sur Azure suivant pour lancer l’expérience de déploiement dans le Portail Microsoft Azure :
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. |
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.
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.
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 :
Sélectionnez Créer une ressource dans le coin du portail Azure.
Sélectionnez Calcul>Azure Spring Apps.
Remplissez 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. |
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. |
Région |
La région la plus proche de vos utilisateurs. |
L’emplacement géographique le plus proche de vos utilisateurs. |
Options et plans d’hébergement |
Entreprise |
Plan tarifaire qui détermine la ressource et le coût associés à votre instance. |
Redondant interzone |
Non sélectionné |
Option permettant de créer votre service Azure Spring Apps dans une zone de disponibilité Azure. Cette fonctionnalité n’est actuellement pas prise en charge dans toutes les régions. |
Forfait IP logiciel |
Paiement à l’utilisation |
Plan tarifaire qui vous permet de payer au fur et à mesure à l’aide d’Azure Spring Apps. |
Déployer l’exemple de projet |
Non sélectionné |
Option permettant d’utiliser l’exemple d’application intégré. |
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.
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.
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.
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.
Sélectionnez Accéder à la ressource pour accéder à la page Vue d’ensemble d’Azure Spring Apps.
Les sections suivantes vous montrent comment configurer l’instance de service.
Créer les applications
Pour créer les applications, procédez comme suit :
Dans le volet de navigation, sélectionnez Applications, puis sélectionnez Créer une application.
Dans la page Créer une application, pour le Nom de l’application, utilisez front-end et laissez tous les autres champs avec leurs valeurs par défaut.
Répétez l’étape précédente à l’aide de chacun des noms d’application suivants :
customers-service
vets-service
visits-service
Sélectionnez Créer pour terminer la création de l’application.
Pour configurer Service Registry, procédez comme suit :
Dans le volet de navigation, sélectionnez Service Registry.
Sélectionnez Liaison d’application, sélectionnez Lier l’application, sélectionnez customers-service
dans la liste, puis sélectionnez Appliquer.
Répétez l’étape précédente pour lier les applications suivantes :
vets-service
visits-service
Pour configurer le service de configuration des applications, procédez comme suit :
Dans le volet de navigation, sélectionnez Service de configuration des applications, puis Paramètres.
Renseignez le référentiel avec les informations suivantes, puis sélectionnez Valider :
Après validation, sélectionnez Appliquer pour terminer la configuration du service de configuration des applications.
Sélectionnez Liaison d’application, sélectionnez Lier l’application, sélectionnez customers-service
dans la liste, puis sélectionnez Appliquer.
Répétez l’étape précédente pour lier les applications suivantes :
vets-service
visits-service
Définir les modèles de fichier de configuration pour les applications
Pour définir les modèles de fichier de configuration, procédez comme suit :
Dans le volet de navigation, sélectionnez Applications, puis sélectionnez l’application customers-service
.
Dans la page Vue d’ensemble de l’application, sélectionnez Configuration, sélectionnezModèles de fichier de configuration sous l’onglet Paramètres généraux, puis sélectionnez Application et customers-service
. Sélectionnez Enregistrer pour définir les modèles de fichier de configuration.
Répétez l’étape précédente pour enregistrer les modèles de fichier de configuration pour les applications suivantes :
-
vets-service
: sélectionnez Application et vets-service
.
-
visits-service
: sélectionnez Application et visits-service
.
Cette section vous montre comment configurer Spring Cloud Gateway.
Tout d’abord, procédez comme suit pour affecter un point de terminaison pour l’accès à la passerelle :
Dans le volet de navigation, sélectionnez Spring Cloud Gateway.
Sous l’onglet Vue d’ensemble, sélectionnez Oui pour affecter un point de terminaison. Enregistrez l’URL du point de terminaison à utiliser ultérieurement.
Ensuite, configurez le routage pour Spring Cloud Gateway. Étant donné que le portail Microsoft Azure ne prend actuellement pas en charge la configuration de la route pour Spring Cloud Gateway, ouvrez une fenêtre Bash et utilisez les étapes Azure CLI suivantes pour configurer le routage :
Utilisez la commande suivante pour vous connecter à Azure CLI :
az login
Utilisez les commandes suivantes pour installer l’extension Azure Spring Apps pour Azure CLI et inscrire l’espace de noms Microsoft.SaaS
:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
Utilisez la commande suivante pour accepter les conditions d’utilisation et la déclaration de confidentialité :
Remarque
Cette étape est nécessaire uniquement si votre abonnement n’a jamais été utilisé pour créer une instance de niveau Entreprise d’Azure Spring Apps.
az term accept \
--publisher vmware-inc \
--product azure-spring-cloud-vmware-tanzu-2 \
--plan asa-ent-hr-mtr
Créez des variables destinées à contenir les noms de ressources à l’aide des commandes suivantes. Veillez à remplacer les espaces réservés par vos valeurs.
export SUBSCRIPTION_ID=<subscription-ID>
export RESOURCE_GROUP=<resource-group-name>
export SPRING_APPS_NAME=<Azure-Spring-Apps-instance-name>
export APP_CUSTOMERS_SERVICE=customers-service
export APP_VETS_SERVICE=vets-service
export APP_VISITS_SERVICE=visits-service
export APP_FRONTEND=frontend
Utilisez la commande suivante pour définir votre abonnement par défaut :
az account set --subscription ${SUBSCRIPTION_ID}
Utilisez la commande suivante pour définir le routage de l’application customers-service
:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_CUSTOMERS_SERVICE} \
--app-name ${APP_CUSTOMERS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/customer/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application vets-service
:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_VETS_SERVICE} \
--app-name ${APP_VETS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/vet/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application visits-service
:
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_VISITS_SERVICE} \
--app-name ${APP_VISITS_SERVICE} \
--routes-json \
'[
{
"predicates": [
"Path=/api/visit/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application front-end :
az spring gateway route-config create \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_FRONTEND} \
--app-name ${APP_FRONTEND} \
--routes-json \
'[
{
"predicates": [
"Path=/**"
],
"filters": [
"StripPrefix=0"
],
"order": 1000
}
]'
Procédez comme suit pour configurer les outils de développement.
Dans le volet de navigation, sélectionnez Outils de développement.
Sélectionnez Affecter un point de terminaison pour affecter un point de terminaison pour les Outils de développement.
Enregistrez le point de terminaison d’App Live View pour l’utiliser ultérieurement.
3.1. Donner des noms à chaque ressource
Créez des variables destinées à contenir les noms de ressources à l’aide des commandes suivantes. Veillez à remplacer les espaces réservés par vos valeurs.
export LOCATION=<location>
export RESOURCE_GROUP=myresourcegroup
export SPRING_APPS=myasa
export APP_FRONTEND=frontend
export APP_CUSTOMERS_SERVICE=customers-service
export APP_VETS_SERVICE=vets-service
export APP_VISITS_SERVICE=visits-service
export GIT_CONFIG_REPO=default
3.2. Se connecter à Azure CLI
Pour vous connecter, effectuez les étapes suivantes :
Utilisez la commande suivante pour vous connecter à Azure CLI :
az login
Utilisez la commande suivante pour répertorier tous les abonnements disponibles, puis déterminez l’ID d’abonnement à utiliser :
az account list --output table
Utilisez la commande suivante pour définir votre abonnement par défaut :
az account set --subscription <subscription-ID>
3.3. Création d’un groupe de ressources
Procédez comme suit pour créer un groupe de ressources :
Utilisez la commande suivante pour définir la localisation par défaut :
az configure --defaults location=${LOCATION}
Utilisez la commande suivante pour créer un groupe de ressources :
az group create --resource-group ${RESOURCE_GROUP}
Utilisez la commande suivante pour définir le groupe de ressources nouvellement créé comme groupe de ressources par défaut :
az configure --defaults group=${RESOURCE_GROUP}
3.4. Installer l’extension et inscrire l’espace de noms
Utilisez les commandes suivantes pour installer l’extension Azure Spring Apps pour Azure CLI et inscrire l’espace de noms Microsoft.SaaS
:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
3.5. Créer une instance Azure Spring Apps
Utilisez la procédure suivante pour créer une instance de service :
Utilisez la commande suivante pour accepter les conditions d’utilisation et la déclaration de confidentialité du plan Entreprise :
Remarque
Cette étape est nécessaire uniquement si votre abonnement n’a jamais été utilisé pour créer une instance de niveau Entreprise d’Azure Spring Apps.
az term accept \
--publisher vmware-inc \
--product azure-spring-cloud-vmware-tanzu-2 \
--plan asa-ent-hr-mtr
Utilisez la commande suivante pour créer une instance de service Azure Spring Apps avec les composants Tanzu nécessaires :
az spring create \
--name ${SPRING_APPS} \
--sku Enterprise \
--enable-application-configuration-service \
--enable-service-registry \
--enable-gateway \
--enable-application-live-view
Effectuez les étapes suivantes pour configurer l’instance de service :
Utilisez la commande suivante pour configurer les paramètres de diagnostic pour l’instance Azure Spring Apps :
export SPRING_APPS_RESOURCE_ID=$(az spring show \
--name ${SPRING_APPS} \
--query id \
--output tsv)
az monitor diagnostic-settings create \
--resource ${SPRING_APPS_RESOURCE_ID} \
--name logs-and-metrics \
--workspace ${SPRING_APPS} \
--logs '[
{
"category": "ApplicationConsole",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
},
{
"category": "SystemLogs",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
},
{
"category": "IngressLogs",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
]' \
--metrics '[
{
"category": "AllMetrics",
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
]'
Utilisez les commandes suivantes pour créer des applications pour l’instance Azure Spring Apps :
az spring app create --service ${SPRING_APPS} --name ${APP_FRONTEND}
az spring app create --service ${SPRING_APPS} --name ${APP_CUSTOMERS_SERVICE}
az spring app create --service ${SPRING_APPS} --name ${APP_VETS_SERVICE}
az spring app create --service ${SPRING_APPS} --name ${APP_VISITS_SERVICE}
Utilisez les commandes suivantes pour lier des applications pour le Registre de services :
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_CUSTOMERS_SERVICE}
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_VETS_SERVICE}
az spring service-registry bind --service ${SPRING_APPS} --app ${APP_VISITS_SERVICE}
Utilisez la commande suivante pour créer un référentiel de configuration pour le service de configuration d’application :
az spring application-configuration-service git repo add \
--service ${SPRING_APPS} \
--name ${GIT_CONFIG_REPO} \
--patterns application,api-gateway,customers-service,vets-service,visits-service \
--uri https://github.com/Azure-Samples/spring-petclinic-microservices-config.git \
--label master
Utilisez les commandes suivantes pour lier des applications au service de configuration d’application :
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_CUSTOMERS_SERVICE}
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_VETS_SERVICE}
az spring application-configuration-service bind \
--service ${SPRING_APPS} \
--app ${APP_VISITS_SERVICE}
Utilisez la commande suivante pour attribuer un point de terminaison à Spring Cloud Gateway :
az spring gateway update --service ${SPRING_APPS} --assign-endpoint
Utilisez la commande suivante pour définir le routage de l’application customers-service
:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_CUSTOMERS_SERVICE} \
--app-name ${APP_CUSTOMERS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/customer/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application vets-service
:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_VETS_SERVICE} \
--app-name ${APP_VETS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/vet/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application visits-service
:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_VISITS_SERVICE} \
--app-name ${APP_VISITS_SERVICE} \
--routes-json '[
{
"predicates": [
"Path=/api/visit/**"
],
"filters": [
"StripPrefix=2"
]
}
]'
Utilisez la commande suivante pour définir le routage de l’application frontend
:
az spring gateway route-config create \
--service ${SPRING_APPS} \
--name ${APP_FRONTEND} \
--app-name ${APP_FRONTEND} \
--routes-json '[
{
"predicates": [
"Path=/**"
],
"filters": [
"StripPrefix=0"
],
"order": 1000
}
]'
Utilisez la commande suivante pour attribuer un point de terminaison à Application Live View :
az spring dev-tool update --service ${SPRING_APPS} --assign-endpoint
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.
Utilisez la procédure suivante pour le déploiement en utilisant le plug-in Maven pour Azure Spring Apps :
Accédez au répertoire racine du projet puis exécutez la commande suivante pour configurer les applications dans Azure Spring Apps :
./mvnw -P spring-apps-enterprise com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
La liste suivante décrit les interactions de commande :
-
Sélectionnez les modules enfants à configurer : appuyez sur Entrée pour tout sélectionner.
-
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.
-
Utiliser Azure Spring Apps dans Azure : appuyez sur y (oui) pour utiliser l’instance Azure Spring Apps existante.
-
Sélectionnez des applications pour exposer l’accès public : appuyez sur Entrée pour sélectionner aucun.
-
Confirmez pour enregistrer toutes les configurations ci-dessus : appuyez sur y (oui). Si vous entrez N, la configuration n’est pas enregistrée dans les fichiers POM.
Utilisez la commande suivante pour déployer les applications back-end :
./mvnw azure-spring-apps:deploy
Une fois la commande exécutée, les messages de journal suivants indiquent que le déploiement a réussi :
[INFO] Start deploying artifact(customers-service-3.0.1.jar) to deployment(default) of app(customers-service)...
[INFO] Artifact(customers-service-3.0.1.jar) is successfully deployed to deployment(default) of app(customers-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
...
[INFO] Start deploying artifact(vets-service-3.0.1.jar) to deployment(default) of app(vets-service)...
[INFO] Artifact(vets-service-3.0.1.jar) is successfully deployed to deployment(default) of app(vets-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
...
[INFO] Start deploying artifact(visits-service-3.0.1.jar) to deployment(default) of app(visits-service)...
[INFO] Artifact(visits-service-3.0.1.jar) is successfully deployed to deployment(default) of app(visits-service).
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
Le portail Microsoft Azure ne prend pas en charge le déploiement des applications front-end. Utilisez donc la commande Azure CLI suivante pour déployer l’application front-end :
az spring app deploy \
--resource-group ${RESOURCE_GROUP} \
--service ${SPRING_APPS_NAME} \
--name ${APP_FRONTEND} \
--source-path spring-petclinic-frontend \
--build-env BP_WEB_SERVER=nginx
Une fois la commande exécutée, les messages de journal suivants indiquent que le déploiement a réussi :
[5/5] Updating deployment in app "frontend" (this operation can take a while to complete)
Azure Spring Apps will use rolling upgrade to update your deployment, you have 1 instance, Azure Spring Apps will update the deployment in 1 round.
The deployment is in round 1, 1 old instance is deleted/deleting and 1 new instance is started/starting
Your application is successfully deployed.
Pour déployer les applications, effectuez les étapes suivantes :
Entrez le répertoire racine du projet et utilisez la commande suivante pour générer et déployer l’application front-end :
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_FRONTEND} \
--build-env BP_WEB_SERVER=nginx \
--source-path ./spring-petclinic-frontend
Utilisez la commande suivante pour générer et déployer l’application customers-service
:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_CUSTOMERS_SERVICE} \
--source-path \
--config-file-pattern application,customers-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-customers-service \
BP_JVM_VERSION=17
Utilisez la commande suivante pour générer et déployer l’application vets-service
:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_VETS_SERVICE} \
--source-path \
--config-file-pattern application,vets-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-vets-service \
BP_JVM_VERSION=17
Utilisez la commande suivante pour générer et déployer l’application visits-service
:
az spring app deploy \
--service ${SPRING_APPS} \
--name ${APP_VISITS_SERVICE} \
--source-path \
--config-file-pattern application,visits-service \
--build-env \
BP_MAVEN_BUILT_MODULE=spring-petclinic-visits-service \
BP_JVM_VERSION=17
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 :
Ouvrez l’URL de la passerelle. L’application doit ressembler à la capture d’écran suivante :
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 :
5.3. Surveiller les applications
Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :
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 :
5.1. Accéder aux applications
Utilisez le point de terminaison affecté à partir de Spring Cloud Gateway, par exemple https://<your-Azure-Spring-Apps-instance-name>-gateway-xxxxx.svc.azuremicroservices.io
. L’application doit ressembler à la capture d’écran suivante :
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 :
5.3. Surveiller les applications
Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :
Ouvrez l’URL Application Live View exposée par les outils de développement pour surveiller les runtimes d’application, comme illustré dans la capture d’écran suivante :
5.1. Accéder aux applications
Utilisez les commandes suivantes pour récupérer l’URL de Spring Cloud Gateway :
export GATEWAY_URL=$(az spring gateway show \
--service ${SPRING_APPS} \
--query properties.url \
--output tsv)
echo "https://${GATEWAY_URL}"
L’application doit ressembler à la capture d’écran suivante :
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 :
5.3. Surveiller les applications
Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :
Utilisez les commandes suivantes pour récupérer l’URL d’Application Live View :
export DEV_TOOL_URL=$(az spring dev-tool show \
--service ${SPRING_APPS} \
--query properties.url \
--output tsv)
echo "https://${DEV_TOOL_URL}/app-live-view"
Ouvrez l’URL d’Application Live View pour monitorer les runtimes d’application, comme illustré dans la capture d’écran suivante :
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 :
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 :
5.3. Surveiller les applications
Application Insights surveille les dépendances de l’application, comme le montre la carte de suivi d’application suivante :
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 :
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 :
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.
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.
Utilisez la commande suivante pour supprimer toutes les ressources Azure utilisées dans cet exemple d’application :
azd down
La liste suivante décrit l’interaction de commande :
-
Total des ressources à supprimer : <resources-total>, êtes-vous sûr de vouloir continuer ? : appuyez sur O.
La console génère des messages similaires à l’exemple suivant :
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
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 :
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.
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.
Effectuez les étapes suivantes pour supprimer l’intégralité du groupe de ressources :
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.
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.
Utilisez la commande suivante pour supprimer le groupe de ressources :
az group delete --name ${RESOURCE_GROUP}
7. Étapes suivantes
Pour plus d’informations, consultez les articles suivants :