Tutoriel : Déployer une application conteneur avec intégration et déploiement continus sur un cluster Service Fabric

Deuxième d’une série, ce tutoriel explique comment configurer l’intégration et le déploiement continus d’une application conteneur Azure Service Fabric à l’aide de Visual Studio et d’Azure DevOps. Une application Service Fabric existante est requise. L’application créée dans Déployer une application .NET dans un conteneur Windows sur Azure Service Fabric est utilisée à titre d’exemple.

Dans ce deuxième volet, vous apprenez à :

  • Ajouter le contrôle de code source à votre projet
  • Créer une définition de build dans Visual Studio Team Explorer
  • Créer une définition de mise en production dans Visual Studio Team Explorer
  • Déployer et mettre à niveau une application automatiquement

Prérequis

Avant de commencer ce tutoriel :

Préparer un profil de publication

Maintenant que vous avez déployé une application conteneur, vous pouvez configurer l’intégration continue. Tout d’abord, préparez au sein de votre application un profil de publication destiné au processus de déploiement qui s’exécute dans Azure DevOps. Le profil de publication doit être configuré pour cibler le cluster que vous avez précédemment créé. Démarrez Visual Studio et ouvrez un projet d’application Service Fabric existant. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur l’application, puis sélectionnez Publier... .

Choisissez au sein de votre projet d’application un profil cible à utiliser pour votre flux de travail d’intégration continue (Cloud, par exemple). Spécifiez le point de terminaison de connexion du cluster. Cochez la case Mettre à niveau l’application pour que votre application soit mise à niveau pour chaque déploiement dans Azure DevOps. Cliquez sur le lien hypertexte Enregistrer pour enregistrer les paramètres dans le profil de publication, puis cliquez sur Annuler pour fermer la boîte de dialogue.

Push profile

Partager votre solution Visual Studio dans un nouveau référentiel Git Azure DevOps

Partagez les fichiers sources de votre application dans un projet d’équipe Azure DevOps afin de pouvoir générer des builds.

Créez un dépôt Git local pour votre projet en sélectionnant Ajouter au contrôle de code source ->Git dans la barre d’état située dans le coin inférieur droit de Visual Studio.

Dans la vue Envoi (push) de Team Explorer, sélectionnez le bouton Publier le référentiel Git sous Push sur Azure DevOps.

Screenshot of the Team Explorer - Synchronization window in Visual Studio. Under Push to Azure DevOps, the Publish to Git Repo button is highlighted.

Vérifiez votre adresse e-mail et sélectionnez votre organisation dans la liste déroulante Compte. Vous aurez peut-être à configurer une organisation si vous n’en avez pas déjà une. Entrez le nom de votre dépôt et sélectionnez Publier le dépôt.

Screenshot of the Push to Azure DevOps window. The settings for Email, Account, Repository name, and the Publish Repository button are highlighted.

La publication du référentiel entraîne la création d’un projet d’équipe portant le même nom que le référentiel local dans votre compte. Pour créer le référentiel dans un projet d’équipe existant, cliquez sur Avancé à côté du Nom du référentiel et sélectionnez un projet d’équipe. Vous pouvez afficher votre code sur le web en sélectionnant See it on the web (Visualiser sur le web).

Configurer la livraison continue avec Azure Pipelines

Une définition de build Azure DevOps décrit un workflow qui se compose d’un ensemble d’étapes de génération exécutées séquentiellement. Créez une définition de build qui produit un package d’application Service Fabric et les autres artefacts à déployer sur un cluster Service Fabric. En savoir plus sur les définitions de build Azure DevOps

Une définition de mise en production Azure DevOps décrit un workflow qui déploie un package d’application sur un cluster. Lorsqu’elles sont utilisées ensemble, la définition de version et la définition de génération exécutent le flux de travail dans son ensemble, depuis le déploiement des fichiers source jusqu’à l’exécution de l’application dans votre cluster. En savoir plus sur les définitions de mise en production Azure DevOps

Créer une définition de build

Pour ouvrir votre nouveau projet d’équipe, accédez à https://dev.azure.com dans un navigateur web, puis sélectionnez votre organisation et votre nouveau projet.

Sélectionnez l’option Pipelines dans le volet gauche, puis cliquez sur Nouveau pipeline.

Notes

Si vous ne voyez pas le modèle de définition de build, assurez-vous que la fonctionnalité Nouvelle expérience de création de pipeline YAML soit désactivée. Cette fonctionnalité est configurée dans la section Fonctionnalités préliminaires de votre compte de DevOps.

New Pipeline

Sélectionnez la source Azure Repos Git, votre projet d’équipe, le dépôt de votre projet, puis la branche par défaut master pour les builds manuelles et planifiées. Puis, cliquez sur Continuer.

Dans Sélectionner un modèle, sélectionnez le modèle Application Azure Service Fabric avec prise en charge Docker et cliquez sur Appliquer.

Choose build template

Dans Tâches, sélectionnez Hébergée VS2017 pour Pool d’agents.

Select tasks

Cliquez sur Images Tag.

Dans Type de registre de conteneurs, sélectionnez Azure Container Registry. Sélectionnez un Abonnement Azure, puis cliquez sur Autoriser. Sélectionnez un service Azure Container Registry.

Select Docker Tag images

Cliquez sur Images Push.

Dans Type de registre de conteneurs, sélectionnez Azure Container Registry. Sélectionnez un Abonnement Azure, puis cliquez sur Autoriser. Sélectionnez un service Azure Container Registry.

Select Docker Push images

Sous l’onglet Déclencheurs, activez l’intégration continue en cochant la case Activer l’intégration continue. Dans la zone Filtres de branche, cliquez sur + Ajouter, et la zone Spécification de branche est alors définie par défaut sur la valeur maître.

Dans la boîte de dialogue Enregistrer le pipeline de build et mettre en file d’attente, cliquez sur Enregistrer et mettre en file d’attente pour lancer un build manuellement.

Select triggers

Les builds sont également déclenchées par envoi (push) ou par archivage. Pour vérifier la progression de votre build, basculez vers l’onglet Builds. Une fois que vous avez vérifié que la build s’exécute correctement, définissez une définition de mise en production assurant le déploiement de votre application sur un cluster.

Création d’une définition de version

Sélectionnez l’option Pipelines dans le volet gauche, cliquez sur Versions, puis sur +Nouveau pipeline. Sous Sélectionner un modèle, sélectionnez le modèle Déploiement Azure Service Fabric dans la liste, puis Appliquer.

Choose release template

Sélectionnez Tâches, puis Environnement 1 et + Nouveau pour ajouter une nouvelle connexion de cluster.

Add cluster connection

Sur la vue Ajouter une nouvelle connexion Service Fabric, sélectionnez l’authentification Basée sur les certificats ou Microsoft Entra ID. Spécifiez le nom de connexion « mysftestcluster » et le point de terminaison de cluster « tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000 » (ou celui du cluster sur lequel porte le déploiement).

Pour l’authentification basée sur les certificats, ajoutez l’empreinte du certificat de serveur utilisé pour créer le cluster. Dans Certificat client, ajoutez le codage en base 64 du fichier de certificat client. Consultez la fenêtre contextuelle d’aide de ce champ pour savoir comment obtenir cette représentation codée en base 64 du certificat. Ajoutez également le Mot de passe du certificat. Vous pouvez utiliser le certificat de serveur ou de cluster si vous ne disposez pas d’un certificat client distinct.

Dans les informations d’identification de Microsoft Entra, ajoutez l’empreinte du certificat de serveur utilisé pour créer le cluster et les informations d’identification à utiliser pour se connecter au cluster dans les champs Nom d’utilisateur et Mot de passe.

Cliquez sur Ajouter pour enregistrer la connexion du cluster.

Sous Phase de l’agent, cliquez sur Déployer une application Service Fabric. Cliquez sur Paramètres Docker, puis sur Configurer les paramètres Docker. Dans Source d’informations d’identification du Registre, sélectionnez Connexion au service Azure Resource Manager. Ensuite, sélectionnez votre abonnement Azure.

Release pipeline agent

Ensuite, ajoutez un artefact de build au pipeline afin de permettre à la définition de mise en production de trouver la sortie de la build. Sélectionnez Pipeline et Artefacts->+ Ajouter. Dans Source (définition de build), sélectionnez la définition de build que vous avez créée précédemment. Cliquez sur Ajouter pour enregistrer l’artefact de la build.

Add artifact

Activez un déclencheur de déploiement continu afin qu’une version soit créée automatiquement à la fin de la génération. Cliquez sur l’icône en forme d’éclair de l’artefact, activez le déclencheur, puis cliquez sur Enregistrer pour enregistrer la définition de mise en production.

Enable trigger

Sélectionnez + Mise en production ->Créer une mise en production ->Créer pour créer manuellement une mise en production. Vous pouvez surveiller la progression de la mise en production dans l’onglet Mises en production.

Vérifiez que le déploiement a réussi et que l’application est en cours d’exécution dans le cluster. Ouvrez un navigateur web et accédez à http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Notez la version de l’application. Dans cet exemple, il s’agit de la version 1.0.0.20170616.3.

Valider et envoyer les modifications, déclencher une mise en production

Vérifiez que le pipeline d’intégration continue fonctionne en archivant certaines modifications de code dans Azure DevOps.

Lorsque vous écrivez votre code, vos modifications sont suivies automatiquement par Visual Studio. Validez les modifications dans votre référentiel Git local en sélectionnant l’icône de modifications en attente (Pending changes icon shows a pencil and a number.) dans la barre d’état située en bas à droite.

Dans la vue Modifications de Team Explorer, ajoutez un message décrivant votre mise à jour, puis validez vos modifications.

Commit all

Sélectionnez l’icône des modifications non publiées (Unpublished changes) dans la barre d’état ou la vue Synchronisation de Team Explorer. Sélectionnez Envoi (push) pour mettre à jour votre code dans Azure DevOps.

Push changes

L’envoi (push) des modifications à Azure DevOps déclenche automatiquement une build. Une fois la définition de build terminée, une mise en production est créée automatiquement et commence la mise à niveau de l’application sur le cluster.

Pour vérifier la progression de votre build, basculez vers l’onglet Builds de Team Explorer dans Visual Studio. Une fois que vous avez vérifié que la build s’exécute correctement, spécifiez une définition de mise en production assurant le déploiement de votre application sur un cluster.

Vérifiez que le déploiement a réussi et que l’application est en cours d’exécution dans le cluster. Ouvrez un navigateur web et accédez à http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Notez la version de l’application. Dans cet exemple, il s’agit de la version 1.0.0.20170815.3.

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the app version

Mettre à jour l’application

Apportez des modifications au code de l’application. Enregistrez et validez les modifications en suivant les étapes décrites précédemment.

Une fois que la mise à niveau de l’application a commencé, vous pouvez suivre la progression dans Service Fabric Explorer :

Screenshot of the Voting app in Service Fabric Explorer. An

La mise à niveau de l’application peut prendre plusieurs minutes. Une fois la mise à niveau terminée, l’application exécute la version suivante. Dans cet exemple, 1.0.0.20170815.4.

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the updated app version

Étapes suivantes

Dans ce didacticiel, vous avez appris à :

  • Ajouter le contrôle de code source à votre projet
  • Créer une définition de build
  • Création d’une définition de version
  • Déployer et mettre à niveau une application automatiquement

Dans la partie suivante du didacticiel, vous apprendrez à configurer la surveillance pour votre conteneur.