Évaluer une application web avec l’outil Azure App Service Migration Assistant

Effectué

Dans cette unité, nous passons en revue de manière générale les défis potentiels que vous pouvez rencontrer durant la migration d’applications web hébergées localement sur votre propre serveur. Nous mettrons en contexte les genres de dépendance que les applications web peuvent avoir vis à vis des fonctionnalités d’IIS (Internet Information Services), et nous verrons pourquoi cela pose un problème. Ces informations d’arrière-plan critiques fournissent le contexte dont vous pouvez avoir besoin pour mieux comprendre la nécessité d’une évaluation.

Pourquoi déplacer une application web vers Azure App Service ?

Azure App Service est une plateforme complètement managée pour vos applications web. Vous pouvez l’utiliser pour exécuter et mettre à l’échelle vos applications web avec une installation minimale. Microsoft gère l’infrastructure, les mises à jour du système d’exploitation, l’équilibrage de charge ainsi que la logique de scale-up/scale-down selon les besoins.

Vous pouvez configurer les paramètres dans une interface utilisateur simplifiée et explorer le niveau de performance de l’application pendant son exécution, mais vous avez peu d’autres choses à faire de votre côté. Ainsi, Azure App Service constitue une alternative intéressante à l’exécution de vos applications dans votre propre environnement serveur. C’est dans cet environnement que vous devez gérer la configuration et les coûts matériels, l’installation, la mise à jour et la configuration du système d’exploitation, l’installation, les mises à jour et la configuration du logiciel serveur, etc.

Plusieurs fonctionnalités permettent de tirer profit de la puissance d’Azure App Service.

La fonctionnalité de mise à l’échelle automatique permet à un administrateur de définir le nombre maximal d’instances vers lesquelles l’application web doit être autorisée à effectuer une mise à l’échelle, ainsi que les seuils de trafic. La décision d’effectuer un scale-up ou un scale-down dépend ensuite de la logique de prise de décision d’App Service.

Les emplacements de déploiement permettent aux opérations ou DevOps de déployer une nouvelle version de l’application web sur un environnement de test ou de préproduction en direct dans lequel des tests d’intégration manuels ou automatisés peuvent être effectués. Une fois que la nouvelle version a réussi tous les tests, les opérations peuvent permuter les emplacements en plaçant l’application en préproduction en phase de production. Si des problèmes surviennent après le déploiement, les opérations peuvent à nouveau permuter les emplacements pour remettre la version précédente en production.

Les diagnostics App Service fournissent une interface interactive dans laquelle l’utilitaire de résolution des problèmes peut apporter des réponses à quelques questions. L’interface génère un rapport de diagnostic complet spécifique au type de problème rencontré par votre application. De plus, les outils tels que le contrôle d’intégrité, Application Insights et le Navigateur (diagramme de dépendances interactif) vous aident à comprendre où se trouvent les problèmes.

Qu’est-ce que l’outil Azure App Service Migration Assistant ?

L’outil Azure App Service Migration Assistant fait partie d’une suite d’applications plus étendue qui facilite la transition des organisations vers le cloud. Via une expérience utilisateur guidée, l’outil Migration Assistant effectue deux tâches :

  1. Il effectue l’évaluation d’une application web spécifique installée sur Windows Server. Il évalue les dépendances de l’application web pour déterminer si une migration vers Azure App Service est possible sans modification de l’application web.
  2. Si l’évaluation prouve que l’application web peut être migrée, l’outil Migration Assistant effectue la migration. Vous devez fournir à l’Assistant Migration l’accès à votre compte Azure, sélectionner le groupe de ressources à utiliser et sélectionner un nom pour l’application web, parmi d’autres détails.

L’outil Azure App Service Migration Assistant génère un modèle Azure Resource Manager que vous pouvez utiliser pour migrer l’application web de manière plus automatisée et répétable.

Pourquoi effectuer une évaluation ?

Dans certaines organisations, les applications web ont été initialement générées en partant du principe qu’elles ont toujours accès aux fonctionnalités de bas niveau d’IIS. Par exemple, certains développeurs ont créé des fonctionnalités telles que la supervision, la journalisation et la sécurité en plus des filtres ISAPI. Les filtres permettaient d’accéder aux requêtes entrantes avant qu’elles ne soient passées à l’application ASP.NET. Ils permettaient également d’accéder aux réponses sortantes générées par l’application ASP.NET.

Toutefois, l’un des avantages de l’utilisation d’une offre PaaS (Platform as a Service) telle qu’Azure App Service vient du fait que le fournisseur de cloud (Microsoft, dans le cas présent) gère le matériel et les logiciels à votre place. Cela vous permet de réduire les coûts et de gagner du temps. Toutefois, cela signifie que vos applications ont accès à moins de fonctionnalités de Windows Server et d’IIS de niveau inférieur. Si vos applications dépendent de ces fonctionnalités de niveau inférieur, vous ne pourrez peut-être pas bénéficier d’Azure App Service sans apporter certaines modifications.

Quels sont les types de problème recherchés par l’évaluation ?

L’outil Migration Assistant recherche les fonctionnalités spécifiques d’une application web pour vérifier qu’Azure App Service peut les prendre en charge, ou qu’il peut lui-même les migrer automatiquement. Le tableau suivant fournit des insights sur les vérifications effectuées par l’outil Migration Assistant :

Vérification de la préparation Explication
Liaisons de port Dans la mesure où Azure App Service autorise uniquement le trafic web standard, cette vérification de la préparation permet de garantir que l’application web écoute uniquement sur les ports 80 (pour le trafic HTTP) et 443 (pour le trafic HTTPS).
Protocoles Dans la mesure où Azure App Service fonctionne uniquement avec les protocoles HTTP et HTTPS, cette vérification de la préparation permet de garantir que l’application web prend uniquement en charge les protocoles HTTP. Par exemple, si votre application web dépend de Windows Communication Foundation, elle ne réussit pas cette vérification de disponibilité.
Certificats Azure App Service peut gérer les certificats de sécurité, mais cette vérification de la disponibilité vous avertit que l’Assistant Migration ne migre pas automatiquement le certificat à votre place.
Balises d’emplacement Les balises d’emplacement vous permettent d’héberger la configuration de toutes les applications web sur un serveur dans un seul fichier plutôt que dans des fichiers web.config individuels pour chaque application web. Les applications Azure App Service utilisent un fichier IIS applicationhost.config préconfiguré et ne prennent pas en charge la fonctionnalité des balises d’emplacement. Les paramètres de chaque application web que vous migrez doivent être déplacés dans des fichiers web.config individuels. Cette vérification de la préparation identifie l’utilisation des balises d’emplacement.
Filtres ISAPI Azure App Service fournit une prise en charge des filtres ISAPI, mais elle dépend de la façon dont le filtre ISAPI a été implémenté. L’Assistant Migration ne migre pas une application qui dépend d’un filtre ISAPI. Vous devez d’abord supprimer le filtre ISAPI de votre application, effectuer la migration, puis ajouter manuellement le filtre ISAPI dans Azure App Service.
Pools d’applications Dans la mesure où Azure App Service prend en charge un seul pool d’applications par application, cette vérification de la préparation permet de garantir que votre application web ne repose que sur un seul pool d’applications.
Identité du pool d’applications Les applications Azure App Service sont hébergées dans un processus de travail IIS qui s’exécute dans un compte managé par le système associé au pool d’applications. Il s’agit également de l’identité par défaut utilisée par les installations locales d’IIS. Cette vérification de la préparation permet de garantir que l’application web est configurée pour s’exécuter dans l’identité par défaut.
Type d’authentification Les applications Azure App Service ne prennent pas en charge le même ensemble de types d’authentification que les applications hébergées sur IIS s’exécutant localement. Cette vérification de la préparation permet de garantir qu’une application web est configurée pour utiliser l’authentification anonyme. Après la migration, vous pouvez configurer manuellement le type d’authentification sur Azure App Service.
Paramètres d’application Cette vérification de la préparation vous signale les paramètres d’application personnalisés du fichier web.config qui doivent être déplacés plutôt vers Azure App Service>Configuration>Paramètre d’application.
Chaînes de connexion Cette vérification de la préparation détermine si les chaînes de connexion de base de données stockées dans le fichier web.config pointent vers des bases de données locales. Si tel est le cas, l’Assistant Migration vous permet de configurer des connexions hybrides.
Frameworks L’outil Migration Assistant prend uniquement en charge ASP.NET et PHP. Si votre application utilise un autre framework, vous ne pouvez pas effectuer la migration automatique.
Erreur de configuration L’Assistant Migration vérifie que votre instance locale d’IIS est correctement configurée et qu’elle ne retourne pas d’erreur durant l’analyse. Cette vérification de la préparation permet de garantir qu’il n’existe aucun problème sous-jacent avec l’application web avant la migration.
Répertoires virtuels Azure App Service stocke tous les fichiers dans une structure de répertoire fixe. L’Assistant Migration déplace les fichiers dans les sous-répertoires appropriés. Toutefois, il ne peut pas migrer des applications ayant des répertoires virtuels qui reposent sur des partages UNC.

Les informations de ce tableau ont été récapitulées à partir du wiki de l’outil Azure App Service Migration Assistant.

Que se passe-t-il si l’évaluation détecte un problème ?

Si l’outil Azure App Service Migration Assistant détecte des problèmes durant l’évaluation de votre application web, vous pouvez :

  • Mettre à jour l’application pour remplacer les fonctionnalités qui dépendent de fonctionnalités d’extensibilité de niveau inférieur d’IIS. Cette tâche peut être relativement simple selon la fonctionnalité en question. Par exemple, vous pouvez remplacer les fonctionnalités de journalisation personnalisée qui étaient dépendantes d’un filtre ISAPI par Azure Application Insights. Application Insights nécessite seulement l’ajout de quelques lignes de code à une application, puis fournit une multitude de rapports actionnables.
  • Mettre à jour l’application en désactivant temporairement la fonctionnalité qui bloque la migration. L’outil Migration Assistant peut vous aider à effectuer cette opération.
  • Déployer l’application en l’état sur une machine virtuelle Azure. Dans ce cas de figure, même si vous ne bénéficiez pas des avantages liés à l’utilisation d’Azure App Service et même si vous devez effectuer la maintenance du système d’exploitation, vous n’avez plus besoin de vous occuper de la maintenance du matériel. Vous disposez également d’un seul point de gestion pour tous vos services web.

Le wiki de l’outil Azure App Service Migration Assistant contient des étapes de correction potentielle pour la plupart des problèmes détectés au cours d’une évaluation.

Récapitulatif

Voici les points les plus importants à retenir dans cette unité :

  • L’Assistant Migration Azure App Service recherche les incompatibilités entre vos applications web locales et ce qu’Azure App Service prend en charge. Si un problème est détecté, vous pouvez généralement le résoudre localement (ou désactiver la fonctionnalité qui le provoque). Vous pouvez ensuite retenter d’exécuter l’outil Migration Assistant.
  • S’il n’existe aucun problème bloquant, l’Assistant Migration migre votre application web vers Azure App Service à votre place.