Exercice - Déployer l’application Spring Boot Redis sur Azure
Maintenant que tout fonctionne au niveau local, vous pouvez déployer l’application dans le cloud et tester son comportement en production.
Créer une instance d’Azure App Service
Créez une instance Azure App Service pour héberger votre application. Utilisez le code Azure CLI suivant pour créer un plan App Service de base qui utilise Linux, puis ajoutez une instance de Java sur App Service dans ce plan.
Pour utiliser Java 11 ou Java 17 à la place de Java 8, utilisez "JAVA|<version>-java<version>"
au lieu de "JAVA|8-jre8"
comme runtime d’application web.
az appservice plan create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp-plan \
--is-linux \
--sku B1
az webapp create \
--resource-group $AZ_RESOURCE_GROUP \
--name $AZ_REDIS_NAME-webapp \
--runtime "JAVA|8-jre8" \
--plan $AZ_REDIS_NAME-webapp-plan
Notes
Le code précédent réutilise la variable $AZ_REDIS_NAME
pour nommer le plan App Service et l’instance App Service, mais vous pouvez utiliser des noms différents. Le nom de l’instance App Service fait partie de l’URL, laquelle doit être unique dans Azure.
Vous pouvez effectuer l’étape suivante pendant que le déploiement se poursuit.
Déployer l’application Spring Boot sur Azure App Service
Dans le fichier pom.xml de votre projet, ajoutez le nouveau plug-in suivant dans la section
<plugins>
:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>2.11.0</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>${env.AZ_RESOURCE_GROUP}</resourceGroup> <appName>${env.AZ_REDIS_NAME}-webapp</appName> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
Notes
La configuration précédente utilise les variables d’environnement que vous avez configurées plus tôt. Pour que cette configuration fonctionne, vérifiez que vos variables
$AZ_RESOURCE_GROUP
et$AZ_REDIS_NAME
sont correctement configurées.Une fois le déploiement d’App Service terminé, exécutez la commande suivante pour créer un package de votre application et la déployer sur Azure :
./mvnw package azure-webapp:deploy
La ligne suivante est retournée à l’issue du déploiement :
Successfully deployed the artifact to https://<redisName>-webapp.azurewebsites.net
Notez l’URL de votre application en cours d’exécution (voir sortie précédente). Vous en aurez besoin dans la section suivante.
Tester l’application sur Azure
Utilisez l’URL de votre application pour exécuter les mêmes commandes cURL (client URL) dans le cloud que celles utilisées sur votre serveur local.
Pour ajouter un élément de données, exécutez la commande suivante :
curl -d '{"description":"another description", "details":"some more details"}' -H "Content-Type: application/json" -X POST https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Pour récupérer les données, exécutez :
curl https://$AZ_REDIS_NAME-webapp.azurewebsites.net
Pour incrémenter votre session, exécutez plusieurs fois la commande suivante :
curl -b cookie.txt -c cookie.txt https://$AZ_REDIS_NAME-webapp.azurewebsites.net/session
Votre serveur local et votre service cloud utilisant la même instance Redis, ils sont mis en cluster. Les données que vous écrivez dans une instance sont disponibles dans l’autre instance. Le service cloud peut effectuer un scale-out en ajoutant d’autres nœuds qui utilisent tous la même instance Redis pour stocker des données métier et des données de session.