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.
![Intégration et déploiement continu avec Azure Service Fabric 15 1 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/15-1.jpg)
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 :
![Intégration et déploiement continu avec Azure Service Fabric 14 1 1024x701 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/14-1-1024x701.png)
En exécution ça donne ça :
![Intégration et déploiement continu avec Azure Service Fabric 13 1 1024x549 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/13-1-1024x549.png)
Déploiements
Pour le déploiement vers notre environnement Cloud Service Fabric c’est très simple, une seule étape VSTS suffit :
![Intégration et déploiement continu avec Azure Service Fabric 11 1 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/11-1.png)
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 :
![Intégration et déploiement continu avec Azure Service Fabric 9 1 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/9-1.png)
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 :
![Intégration et déploiement continu avec Azure Service Fabric 8 - Intégration et déploiement continu avec Azure Service Fabric](http://thomasrannou.azurewebsites.net/wp-content/uploads/2019/03/8.png)
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