Nous allons maintenant détailler la mise en place de VSTS (Azure DevOps), notre outil ALM, pour notre projet Service Fabric.
Intégrations
Premier besoin, un outil de gestion de version. J’ai utilisé Git et le pattern d’utilisation GitFlow pour la gestion des branches. Ce pattern propose une façon d’utiliser Git. Pour mes besoins je n’ai utilisé que les branche Develop et Master.
J’ai donc créé un projet sur VSTS. il faut ensuite utiliser l’URL du dépôt pour s’y connecter depuis Team Services de Visual Studio et pousser son code.
J’ai ensuite configuré mon build à partir du template Azure Service Fabric :
En exécution ça donne ça :
Déploiements
Pour le déploiement vers notre environnement Cloud Service Fabric c’est très simple, une seule étape VSTS suffit :
Bien sur dans un vrai contexte projet le pipeline sera plus fournis, avec de multiples environnement : dev, qualification, intégration, pre-production …
Pour la configuration de ma tache de déploiement, il faudra configurer correctement la section Cluster Connexion qui fera le lien entre VSTS et ma plateforme Azure :
Les informations demandées par cet écran sont expliquées par les infobulle. Si vous n’avez pas associé de mot de passe à votre certificat, laissez le champ vide.
Pendant l’étape de déploiement de notre projet Service Fabric, l’Explorer affichera également des informations sur le déploiement :
La mise à jour se fait sans interruption de service puisque le déploiement se fait par nœud. A un instant T du déploiement il y aura donc deux versions de votre application en exécution simultanée. A chaque mise à jour de nœuds, Azure Service Fabric réalise des tests pour vérifier que votre installation s’est bien passée. Si l’update à échoué, un rollback vers la précédente version est automatiquement réalisé.
Pour une gestion plus poussée des montée de version, on pourra mettre en place le « Blue / Green Deployment » qui nous permettra de valider la version à jour de notre service (par des tests sur l’interface swagger par exemple) sur un nœud précis avant de la déployer sur les autres.
Pour aller plus loin
Canary Release / Blue Green Deployment
A bientôt !
Thomas