Azure Web Apps : slot de déploiement et livraison continue avec Visual Studio Team Services
par
, 14/01/2017 à 16h01 (2411 Affichages)
Dans l’un de mes précédents billets de blog, j’ai présenté les slots de déploiement dans Azure Web Apps. Leur intégration dans une stratégie de livraison continue est assez pratique. En effet, ils permettent d’éviter lors du déploiement d’avoir à arrêter son site Web et le redémarrer après le déploiement.
Le déploiement peut se faire dans un premier temps sur un slot intermédiaire, ensuite un swap automatique est effectué pour passer le récent déploiement en production. La version initialement en production sera rétrogradée sur le slot intermédiaire. De ce fait, en cas de problème en production, vous serez en mesure de switcher en quelques secondes et refaire passer la version précédente en production.
Pour mettre cela en œuvre, vous devez ajouter à votre projet le script PowerShell suivant, qui permettra d’effectuer l'échange des emplacements après le déploiement. Rassurez-vous que ce script soit copié dans le répertoire de génération de votre application, avant de commiter ce dernier.
Ensuite, vous devez modifier votre Build definition et ajouter une nouvelle tâche de type Copy Files. Cette dernière permettra de copier le fichier PowerShell dans le dossier qui est utilisé comme source pour publier l’artefact. Vous devez donc renseigner le dossier dans lequel se trouve le fichier PowerShell et le dossier de destination.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 param ( [string] $AzureWebsiteName, [string] $From, [string] $To ) Switch-AzureWebsiteSlot -Name $AzureWebsiteName -Slot1 $From -Slot2 $To -Force -Verbose
Ceci fait, vous devez modifier la tâche Azure Web App Deployment pour ajouter le nom du slot (staging) que vous avez créé précédemment à partir du portail Azure.
Ensuite, vous devez ajouter une nouvelle tâche à cette release, qui se chargera d’exécuter le script PowerShell de Swap.
Vous devez donc renseigner l’emplacement du script PowerShel dans le champ Script Path, et passer en paramètre dans la zone Script argument le nom de votre website Azure, le slot de départ et le slot de destination :
-AzureWebsiteName Sampledevapp -From staging -To production
Ainsi, chaque fois qu’un déploiement automatisé sera lancé, votre application sera déployée dans un premier temps sur le slot staging et ensuite il y aura un swap avec le slot de production, faisant passer l’application en production de façon transparente et sans aucune interruption. Et en cas de problème en production, un swap en quelques clics à partir du portail Azure permettra de faire repasser la version précédente en production.
Pour en savoir plus sur VSTS, je vous conseille de lire mes billets :