Exercice - Déployer un exemple d’application Spring Boot
Dans cet exercice, vous allez utiliser un workflow automatisé pour générer et déployer votre exemple d’application Spring Boot.
Configurer une action GitHub pour déployer l’exemple d’application
Maintenant que vous avez provisionné vos ressources Azure, vous pouvez déployer votre exemple d’application Spring Boot.
Pour créer votre flux de travail GitHub Maven, vous allez utiliser l’outil intégré d’intégration continue et de livraison continue (CI/CD) disponible dans le Centre de déploiement dans le portail Azure App Service.
Le Centre de déploiement Azure App Service génère automatiquement un fichier de flux de travail GitHub Actions basé sur votre pile d’applications. Le Centre de déploiement enregistre ensuite le fichier dans votre dépôt GitHub dans le répertoire approprié. Le Centre de déploiement lie également votre action GitHub à un profil de publication Azure App Service.
Dans le portail Azure, accédez à votre application web Azure App Service.
Dans le volet gauche, développez Déploiement et sélectionnez Centre de déploiement.
Dans la liste déroulante Source , sous Déploiement continu (CI/CD), sélectionnez GitHub.
Sélectionnez GitHub Actions. (Il doit s’agir de la valeur par défaut, mais si ce n’est pas le cas, sélectionnez Modifier le fournisseur pour charger les options du fournisseur.)
Sous Paramètres, dans les listes déroulantes, procédez comme suit :
a) Sélectionnez votre référentiel GitHub.
b. Pour la branche, sélectionnez main.
v. Pour la pile d’applications, sélectionnez JAVA 8.Sur la dernière page, examinez vos sélections et affichez un aperçu du fichier de workflow qui sera validé dans le référentiel.
Sélectionnez Enregistrer pour valider le fichier de flux de travail dans le référentiel, puis commencez immédiatement à générer et déployer votre application.
Remarque
Vous pouvez également déclencher le flux de travail GitHub Actions dans votre référentiel en sélectionnant l’onglet Actions , en sélectionnant le flux de travail de génération et de déploiement , puis en sélectionnant Réexécuter les travaux.
Confirmer la build GitHub Actions
Dans votre dépôt GitHub, sélectionnez l’onglet Actions , puis, sur le côté gauche, sous Tous les flux de travail, sélectionnez « Générer et déployer une application JAR sur Azure Web App ».
Ensuite, dans la table de droite, sous Flux de travail, sélectionnez l’exécution du flux de travail Ajouter ou mettre à jour la configuration du flux de travail de déploiement App Service.
Attendez que l’exécution du flux de travail soit terminée, puis, sous le travail Déployer dans l’exécution du flux de travail, copiez l’URL du travail Déployer qui affiche l’URL de l’application web Azure.
Enfin, ouvrez l’URL dans un navigateur et vérifiez que votre application Java est déployée, connectée à votre base de données MySQL et retourne des données.
Étapes suivantes
Félicitations! Vous disposez maintenant de deux flux de travail GitHub Actions : une action d’approvisionnement et une action de génération et de déploiement.
Chaque fois que vous entrez une git push
commande pour valider votre code, votre action de génération et de déploiement est déclenchée et votre application est déployée.
Important
Réexécuter l’approvisionnement de votre action GitHub ne recrée pas vos ressources si elles existent déjà. Vous devez supprimer manuellement votre groupe de ressources ou vos ressources, puis réexécuter l’action GitHub.
La réexécution de votre action GitHub build-and-deploy remplace votre application.
Si vous recréez votre instance App Service, vous devez également passer au nouveau profil de publication. Vous devez modifier uniquement la ligne suivante :
publish-profile: ${{ secrets.AzureAppService_PublishProfile_c1ee8d191003493b9c9e13a9b78ad2c3 }}
Configurer un pipeline Azure pour déployer l’exemple d’application
Comme précédemment, vous devez créer un pipeline Azure pour générer et déployer votre application.
Dans Azure DevOps, accédez à votre projet, sélectionnez « Pipelines » et sélectionnez « Nouveau pipeline » (coin supérieur droit).
Vous recevrez maintenant quatre onglets pour configurer votre pipeline :
- Sous l’onglet Connecter, sélectionnez GitHub (fichier YAML).
- Sous l’onglet Sélectionner, sélectionnez le dépôt GitHub contenant votre modèle.
- Sous l’onglet Configurer, sélectionnez l’option Fichier YAML Azure Pipelines existant pour utiliser un fichier YAML Azure Pipelines existant.
- Dans le chemin d’accès, cette fois, sélectionnez « /azuredevops/build_deploy.yml »
- Sélectionnez Continuer pour accéder à l’onglet « *Révision » et passer en revue votre pipeline avant de l’exécuter.
Sur l'écran Revue de votre pipeline YAML, inspectez le fichier YAML que vous allez utiliser pour créer votre pipeline :
name: Build and Deploy
trigger:
- main
stages:
# Build your Spring Boot App using Maven
- stage: Build
displayName: Build stage
jobs:
- job: MavenPackageAndPublishArtifacts
displayName: Maven Package and Publish Artifacts
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Maven@3
displayName: 'Maven Package'
inputs:
mavenPomFile: 'pom.xml'
- task: CopyFiles@2
displayName: 'Copy Files to artifact staging directory'
inputs:
SourceFolder: '$(System.DefaultWorkingDirectory)'
Contents: '**/target/*.?(war|jar)'
TargetFolder: $(Build.ArtifactStagingDirectory)
- upload: $(Build.ArtifactStagingDirectory)
artifact: drop
# Deploy to Azure using the AzureWebApp task using your Service Connection
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: DeployLinuxWebApp
displayName: Deploy Linux Web App
environment: 'production'
pool:
vmImage: 'ubuntu-latest'
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy'
inputs:
azureSubscription: $(serviceConnection)
appType: webAppLinux
appName: '$(webAppName)'
package: '$(Pipeline.Workspace)/drop/**/target/*.?(war|jar)'
Examinons certains des champs que nous utilisons dans la configuration « Générer » :
- azureSubscription : Votre abonnement Azure
- appType : Votre type d’application web
- appName : nom de votre service d’application existant
- package : Chemin du fichier de package ou d’un dossier stockant le contenu de votre service d’application
Ajouter des variables de build
Comme avec notre pipeline d’approvisionnement, avant d’enregistrer et d’exécuter le pipeline de génération et de déploiement, vous devez ajouter les variables de votre pipeline :
- Sélectionnez Variables en haut à droite.
- Ajoutez une variable nommée serviceConnection avec la valeur comme nom de votre connexion de service.
- Sélectionnez OK dans le coin inférieur droit pour enregistrer la variable.
- Ajoutez une deuxième variable nommée webAppName avec votre nom App Service (même valeur définie dans votre variable Terraform « application_name »).
- Sélectionnez OK pour enregistrer la variable.
- Sélectionnez Enregistrer dans le coin inférieur droit pour enregistrer les deux variables.
Observer l’exécution du pipeline
- Sélectionnez && pour enregistrer et exécuter le pipeline
- Comme vous l'avez fait pour votre pipeline Provision, tracez le processus de génération à travers chacune des phases et étapes.
- Vérifiez que votre application Java est déployée, connectée à votre base de données MySQL et retourne des données.
Étapes suivantes
Félicitations! Vous disposez maintenant de deux flux de travail Azure Pipeline : un pipeline d’approvisionnement et un pipeline de build et de déploiement.
Chaque fois que vous entrez une git push
commande pour valider votre code dans la branche principale , votre pipeline de build et de déploiement est déclenché et votre application est déployée.
Important
La réexécution du pipeline de provisionnement ne recréera pas vos ressources si elles existent déjà. Vous devez supprimer votre groupe de ressources ou vos ressources manuellement, puis réexécuter le pipeline. Vous trouverez plus d’informations sur la façon de mieux réaliser cette opération en production dans la section Résumé.
La réexécution de votre pipeline de génération et de déploiement remplace votre application.
L’unité suivante est un contrôle des connaissances pour voir ce que vous avez appris dans ce module.