Exercice - Déployer une application monolithique sur App Service
Nous avons abordé un peu les architectures monolithiques et de microservices. Nous allons maintenant déployer une application monolithique et nous pencher plus en détail sur la façon dont nous pouvons la faire évoluer en une architecture de microservices.
Récemment, Fabrikam a ajouté le service de drone dans son application existante.
Dans cet exercice, nous déployonsr une application monolithique sur Azure App Service et activer Azure Monitor pour obtenir une visibilité des données de télémétrie et des performances de l’application.
Déployer une application monolithique sur Azure App Service
Commençons par déployer l’application. Tout d’abord, nous devons créer les ressources Azure qui permettront d’héberger l’application.
Exécutez la commande suivante pour déployer les ressources nécessaires pour cette application. Ce déploiement prend quelques minutes.
az deployment group create \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --template-uri https://raw.githubusercontent.com/MicrosoftDocs/mslearn-microservices-architecture/master/deployment/azuredeploy.json
Maintenant que nous avons créé les ressources, nous allons déployer l’application. Tout d’abord, exécutez la commande suivante pour extraire le code source de l’exemple de référentiel.
git clone https://github.com/MicrosoftDocs/mslearn-microservices-architecture.git ~/mslearn-microservices-architecture cd ~/mslearn-microservices-architecture/src/before
Exécutez la commande suivante pour décompresser le code de l’application que nous utilisons pour déployer sur le service d’application.
zip -r DroneDelivery-before.zip .
Exécutez la commande suivante pour définir une variable avec le nom de votre service d’application.
APPSERVICENAME="$(az webapp list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --query '[].name' \ --output tsv)"
Exécutez la commande suivante afin de configurer le service d’application pour exécuter une build dans le cadre du déploiement.
az webapp config appsettings set \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
À présent, exécutez la commande suivante pour déployer l’application sur App Service. Ce déploiement prend quelques minutes.
az webapp deploy \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --name $APPSERVICENAME \ --src-path DroneDelivery-before.zip
Une fois le déploiement terminé, vérifiez que le déploiement a réussi en visitant le site web de votre service d’application. Exécutez la commande suivante pour obtenir l’URL, puis sélectionnez-la pour ouvrir la page.
echo https://$(az webapp config hostname list \ --resource-group "<rgn>[sandbox resource group]</rgn>" \ --webapp-name $APPSERVICENAME \ --query [].name \ --output tsv)
Réaliser un test de charge sur l’application
Nous allons maintenant tester les performances de l’application dans son architecture monolithique.
Dans la page d’accueil de votre application déployée, sélectionnez Send Requests (Envoyer des demandes). Cette action simule la soumission de 100 demandes via l’application.
Pour la première demande, vous verrez un résultat d’environ 8 à 12 secondes pour traiter 100 messages. Si vous actualisez la page et que vous la renvoyez si vous y êtes invité, ce nombre peut diminuer de moitié environ. Cela prend toujours environ cinq secondes par demande.
Fabrikam soupçonne l’architecture monolithique d’empêcher la mise à l’échelle des services fortement utilisés, ce qui se traduit par les mauvaises performances constatées ici.