Applications Web Azure : Déploiements sans faille avec des emplacements de déploiement

Supposons que vous travailliez pour une entreprise de santé qui fournit ses services via une plateforme web. L’interface utilisateur de cette plateforme est configurée comme une application web PHP hébergée dans Azure App Services. Des mises à jour fréquentes du code source de l’application sont déployées en production pour améliorer les fonctionnalités ou corriger des bogues.Cependant, ces mises à jour introduisent parfois des problèmes :

  • Bogues non détectés : Malgré des tests rigoureux, les testeurs manquent parfois des bogues critiques, entraînant des problèmes dans l’environnement de production.
  • Temps d’arrêt : Lorsque des bogues sont identifiés, le retour en arrière des modifications provoque des interruptions de service, ce qui frustre les utilisateurs finaux.
  • Déploiements lents : Le processus de déploiement et de compilation affecte la réactivité de l’application, en particulier pendant les périodes de forte utilisation, entraînant une insatisfaction des utilisateurs.

Existe-t-il une meilleure solution pour garantir des mises à jour fluides sans interrompre les services ? Oui ! Microsoft Azure propose une fonctionnalité puissante appelée fentes de déploiement.

Fentes de déploiement Azure

Microsoft Azure les emplacements de déploiement offrent un moyen efficace et fiable de gérer les mises à jour des applications. Avec les emplacements de déploiement, vous pouvez maintenir à la fois les nouvelles et les anciennes versions de votre application simultanément. Échanger entre les deux versions est aussi simple que quelques clics de souris, éliminant ainsi le besoin de retours en arrière longs et fastidieux.

Qu’est-ce que les emplacements de déploiement et comment fonctionnent-ils ?

Les emplacements de déploiement Azure sont une fonctionnalité dans Azure App Services qui vous permet de créer des environnements distincts pour déployer et tester votre application web avant de la rendre disponible à tous les utilisateurs finaux. Chaque emplacement de déploiement fonctionne comme une instance indépendante de votre application, qui peut être personnalisée à des fins spécifiques, telles que :

  • Pré-production : Pour tester et valider les changements avant de passer à la production.
  • Production : Pour servir les utilisateurs finaux avec une version stable de l’application.
  • Emplacements supplémentaires : Selon votre plan tarifaire, vous pouvez créer des emplacements pour l’assurance qualité, les tests ou d’autres environnements.

Fonctionnalités clés des emplacements de déploiement

Instances préchauffées

Lorsque vous déployez dans un slot de staging, le slot est préchauffé. Cela signifie que l’application est entièrement initialisée et prête à gérer les demandes des utilisateurs avec une latence minimale.

Échanger le slot de staging en production garantit qu’il n’y a pas de temps d’arrêt ni de délai de démarrage à froid.

Redirection de Trafic Transparente

Lors de l’échange, la redirection du trafic entre les slots est transparente, garantissant qu’aucune demande d’utilisateur n’est perdue.

Capacité de Rétrogradation

Si des problèmes inattendus surviennent après l’échange d’une nouvelle version en production, vous pouvez immédiatement revenir à la configuration « dernière bonne connue ».

Comment les Slots de Déploiement Résolvent le Problème

Détection de Bugs Avant la Production

En déployant le nouveau code dans un slot de staging, les testeurs peuvent valider l’application dans un environnement qui reflète la production. Cela minimise le risque de bugs non détectés.

Aucune Interruption de Service

Comme l’application est préchauffée dans le slot de staging, l’échange vers la production se fait sans temps d’arrêt, offrant des services ininterrompus aux utilisateurs finaux.

Déploiements Plus Rapides

L’échange de slots est instantané par rapport aux méthodes de déploiement traditionnelles, réduisant significativement le temps nécessaire au déploiement et améliorant la réactivité.

Configurer et Mettre en Place une Application Web Azure

1. Créer une application Web

Connectez-vous au portail Azure avec votre compte. Recherchez App Services et cliquez dessus.


Cliquez sur Application Web.

Sélectionnez de 1 à 7 valeurs selon les besoins de votre application, puis cliquez sur Examiner + créer, suivi de Créer. Le nom de l’application Web dans cette démo est webappdemotosrs.

Click on Go to resource.

webappdemotosrs (Application Web) peut être accessible via l’URL du domaine par défaut.

2. Création de slots de déploiement

Cliquez sur le slot de déploiement panneau.

Cliquez sur Ajouter un slot.

Donnez un nom au slot.


Choisissez si vous souhaitez cloner les paramètres d’un autre slot. Si vous choisissez de cloner, les paramètres sont copiés dans votre nouveau slot depuis le slot que vous spécifiez.

Cliquez sur Ajouter.


Le slot est créé avec le nom donné.

Configurer les paramètres de déploiement de l’application Web

Dans cette tâche, vous allez configurer les paramètres de déploiement de l’application Web. Les paramètres de déploiement permettent un déploiement continu. Cela garantit que le service d’application dispose de la dernière version de l’application. Dans le slot de staging, sélectionnez Centre de déploiement puis sélectionnez Paramètres. Dans la liste déroulante Source, sélectionnez Git externe. Remarquez les autres choix.

  • Dans le champ du dépôt, entrez : https://github.com/Azure-Samples/php-docs-hello-world.
  • Dans le champ de la branche, entrez master. Sélectionnez Enregistrer.
  • Depuis le slot de staging, sélectionnez Aperçu.
  • Sélectionnez le lien du domaine par défaut et ouvrez l’URL dans un nouvel onglet.
  • Vérifiez que l’emplacement de pré-production affiche Bonjour le Monde.

3. Échange de Fentes de Déploiement

Cliquez sur Échanger.

Cliquez sur Démarrer l’échange.

Une fois l’échange terminé, une notification s’affichera montrant son statut.

4. Après Échange de Fentes de Déploiement

Production URL du domaine par défaut en production:

Pré-production L’URL du domaine par défaut en pré-production sera comme ci-dessous


Cela démontre qu’après un échange de fentes de déploiement, la fente de production commence à exécuter le nouveau code tandis que la fente de pré-production revient à l’ancien code.

Résumé

Dans cet article, nous avons appris à créer et utiliser des slots de déploiement dans Azure App Service. Nous avons utilisé des slots pour tester et préparer de nouvelles versions de notre application et avons échangé ces slots de déploiement. Nous pouvons échanger des slots pour déployer une application testée en production et revenir à une application déployée lorsque des problèmes inattendus surviennent.Lors de l’utilisation des slots de déploiement, rappelez-vous qu’Azure réchauffe une application avant un échange, et que la redirection du trafic est instantanée. Le résultat est que votre application est déployée sans interruptions de service ni baisse de performance.

Source:
https://dzone.com/articles/azure-web-apps-deployment-slots