Bewerten einer Web-App mit dem Azure App Service Migration Assistant
In dieser Lerneinheit werden die möglichen Herausforderungen bei einer Migration von lokal auf Ihrem eigenen Server gehosteten Webanwendungen allgemein erläutert. Sie erhalten Informationen zu den verschiedenen Abhängigkeiten von Webanwendungen von den Features der Internetinformationsdienste (IIS) sowie dazu, warum diese zu Problemen führen. Diese wichtigen Hintergrundinformationen bieten den Kontext, den Sie möglicherweise benötigen, um die Notwendigkeit einer Bewertung besser zu verstehen.
Warum sollten Webanwendungen zu Azure App Service migriert werden?
Azure App Service ist eine vollständig verwaltete Plattform für Web-Apps. Sie können diesen Dienst verwenden, um Ihre Web-Apps mit minimalem Einrichtungsaufwand auszuführen und zu skalieren. Microsoft verwaltet nach Bedarf die Infrastruktur, Betriebssystemupdates, den Lastenausgleich und die Logik für das Hoch- und Herunterskalieren.
Zwar können Sie über eine vereinfachte Benutzeroberfläche Einstellungen konfigurieren und die Leistung der Anwendung während der Ausführung untersuchen, allerdings müssen Sie sich ansonsten um relativ wenig kümmern. Dadurch stellt Azure App Service eine attraktive Alternative für das Ausführen Ihrer Anwendungen in Ihrer eigenen Serverumgebung dar. In Ihrer eigenen Serverumgebung müssen Sie sich unter anderem um Hardwarekosten, Einrichtung, Betriebssysteminstallation, -updates und -konfiguration sowie Serversoftwareinstallation, -updates und -konfiguration kümmern.
Es gibt einige Features, die das Arbeiten mit Azure App Service besonders effektiv machen.
Mit dem Autoskalierungsfeature können Administrator*innen die maximale Anzahl von Instanzen, auf die die Web-App skaliert werden darf, sowie die Schwellenwerte für den Datenverkehr angeben. Die Entscheidungslogik von App Service entscheidet dann, ob hoch- oder wieder herunterskaliert werden soll.
Mit Bereitstellungsslots können die Operations- oder DevOps-Teams eine neue Version der Webanwendung in einer aktiven Test- oder Stagingumgebung bereitstellen, in der manuelle oder automatische Integrationstests durchgeführt werden können. Wenn die neue Version alle Tests bestanden hat, können die Slots getauscht und die gestagete App in die Produktionsumgebung verschoben werden. Wenn nach der Bereitstellung Probleme auftreten, kann das Operations-Team noch einmal die Slots tauschen, um die vorherige Version wieder in die Produktionsumgebung zu verschieben.
Die App Service-Diagnosen bieten eine interaktive Schnittstelle, über die die Problembehandlung einige Fragen beantworten kann. Die Schnittstelle erzeugt einen vollständigen Diagnosebericht, der spezifisch für die Art des Problems ist, das in Ihrer Anwendung auftritt. Darüber hinaus helfen Ihnen Tools wie die Integritätsprüfung, Application Insights und Navigator (das interaktive Abhängigkeitsdiagramm) dabei zu verstehen, wo Probleme liegen.
Was ist der Azure App Service Migration Assistant?
Der Azure App Service Migration Assistant ist Teil einer größeren Suite von Anwendungen, die Organisationen bei der Umstellung auf die Cloud unterstützen. Er bietet eine geführte, assistentenähnliche Benutzeroberfläche, die zwei Aufgaben übernimmt:
- Sie führt eine Bewertung einer bestimmten unter Windows Server installierten Web-App durch. Außerdem wertet sie die Abhängigkeiten der Web-App aus, um festzustellen, ob eine Migration zu Azure App Service ohne Änderungen an der Web-App möglich ist.
- Wenn die Bewertung ergibt, dass die Web-App migriert werden kann, führt der Migration Assistant die Migration durch. Sie müssen dem Migration Assistant Zugriff auf Ihr Azure-Konto gewähren sowie die zu verwendende Ressourcengruppe, einen Namen für die Web-App und weitere Details auswählen.
Alternativ generiert der Azure App Service Migration Assistant eine Resource Manager-Vorlage, mit der Sie die Webanwendung automatisierter und wiederholbarer migrieren können.
Warum sollte eine Bewertung durchgeführt werden?
In einigen Organisationen wurden Webanwendungen ursprünglich mit der Annahme erstellt, dass die Anwendungen immer auf spezifische Features der IIS zugreifen können wird. Einige Entwickler haben beispielsweise Features wie Überwachung, Protokollierung und Sicherheit zusätzlich zu ISAPI-Filtern erstellt. Die Filter ermöglichten den Zugriff auf eingehende Anforderungen, bevor sie an die ASP.NET-Anwendung übermittelt wurden. Zudem stellten sie Zugriff auf ausgehende Antworten zur Verfügung, die die ASP.NET-Anwendung generiert hat.
Einer der Vorteile der Verwendung eines PaaS-Angebots (Platform as a Service) wie Azure App Service ist jedoch, dass der Cloudanbieter (in diesem Fall Microsoft) die Hardware und Software verwaltet, sodass Sie sich nicht darum kümmern müssen. Dadurch sparen Sie Zeit und Kosten. Dies bedeutet jedoch, dass Ihre Anwendungen auf weniger der spezifischeren Features von Windows Server und der IIS zugreifen können. Wenn Ihre Anwendungen von diesen spezifischeren Features abhängen, können Sie Azure App Service möglicherweise ohne Änderungen nicht nutzen.
Auf welche Arten von Problemen wird bei der Bewertung geachtet?
Der Migration Assistant sucht nach bestimmten Features einer Webanwendung, um sicherzustellen, dass Azure App Service diese Features bereitstellen oder der Migration Assistant sie automatisch migrieren kann. In der folgenden Tabelle sind einige der vom Migration Assistant durchgeführten Bewertungen aufgeführt.
Bereitschaftsprüfung | Erklärung |
---|---|
Portbindungen | Da Azure App Service nur Standardwebdatenverkehr zulässt, stellt diese Bereitschaftsprüfung sicher, dass die Web-App nur auf Port 80 (für HTTP-Datenverkehr) und Port 443 (für HTTPS-Datenverkehr) lauscht. |
Protokolle | Da Azure App Service nur mit HTTP- und HTTPS-Protokollen funktioniert, stellt diese Bereitschaftsprüfung sicher, dass die Web-App nur HTTP-basierte Protokolle verarbeitet. Wenn Ihre Web-App z. B. von der Windows Communication Foundation abhängt, besteht sie diese Bereitschaftsprüfung nicht. |
Zertifikate | Azure App Service kann zwar Sicherheitszertifikate verarbeiten, diese Bereitschaftsprüfung warnt Sie allerdings, dass der Migration Assistant das Zertifikat nicht automatisch für Sie migriert. |
Ortstags | Mit Ortstags können Sie die Konfigurationen für alle Web-Apps, die auf einem Server gehostet werden, in einer einzigen Datei speichern statt in separaten web.config-Dateien für die jeweiligen Web-Apps. Azure App Service-Apps verwenden eine vorkonfigurierte applicationhost.config-Datei für IIS und unterstützen das Ortstagfeature nicht. Die Einstellungen für die einzelnen zu migrierenden Web-Apps sollten in separate web.config-Dateien verschoben werden. Diese Bereitschaftsprüfung stellt fest, ob Ortstags verwendet werden. |
ISAPI-Filter | Azure App Service unterstützt ISAPI-Filter in gewissem Umfang. Dies hängt aber von der Implementierung der ISAPI-Filter ab. Der Migration Assistant migriert keine Anwendungen, die von ISAPI-Filtern abhängig sind. Sie müssen zuerst den ISAPI-Filter aus der Anwendung entfernen, dann die Anwendung migrieren und schließlich den ISAPI-Filter manuell in Azure App Service hinzufügen. |
Anwendungspools | Da Azure App Service einen Anwendungspool pro App unterstützt, wird durch diese Bereitschaftsprüfung sichergestellt, dass Ihre Web-App nur einen Anwendungspool verwendet. |
Anwendungspoolidentität | Azure App Service-Apps werden in einem IIS-Arbeitsprozess gehostet, der in einem systemseitig verwalteten Konto ausgeführt wird, das dem Anwendungspool zugeordnet ist. Dabei handelt es sich auch um die von lokalen IIS-Installationen verwendete Standardidentität. Diese Bereitschaftsprüfung stellt sicher, dass die Web-App für die Ausführung mit der Standardidentität konfiguriert ist. |
Authentifizierungstyp | Azure App Service-Apps unterstützen andere Authentifizierungstypen als Apps, die lokal in IIS gehostet werden. Diese Bereitschaftsprüfung stellt sicher, dass die Web-App für die Verwendung der anonymen Authentifizierung konfiguriert ist. Nach der Migration können Sie in Azure App Service den Authentifizierungstyp manuell konfigurieren. |
Anwendungseinstellungen | Diese Bereitschaftsprüfung warnt Sie vor benutzerdefinierten Anwendungseinstellungen in der Datei „web.config“, die stattdessen in Azure App Service>Konfiguration>Anwendungseinstellungen verschoben werden sollten. |
Verbindungszeichenfolgen | Diese Bereitschaftsprüfung stellt fest, ob in der Datei „web.config“ gespeicherte Datenbankverbindungszeichenfolgen auf lokale Datenbanken verweisen. Wenn dies der Fall ist, können Sie mit dem Migration Assistant Hybridverbindungen einrichten. |
Frameworks | Der Migration Assistant unterstützt ausschließlich ASP.NET und PHP. Wenn Ihre App ein anderes Framework verwendet, kann die automatische Migration nicht durchgeführt werden. |
Konfigurationsfehler | Der Migration Assistant stellt sicher, dass Ihre lokale IIS-Instanz richtig konfiguriert ist und bei der Überprüfung keine Fehler zurückgibt. Mit dieser Bereitschaftsprüfung wird sichergestellt, dass vor der Migration keine Probleme mit der Web-App vorliegen. |
Virtuelle Verzeichnisse | Azure App Service speichert alle Dateien in einer festen Verzeichnisstruktur. Der Migration Assistant verschiebt Dateien in die entsprechenden Unterverzeichnisse. Anwendungen mit virtuellen Verzeichnissen, die von UNC-Freigaben unterstützt werden, können jedoch nicht migriert werden. |
Die Informationen in dieser Tabelle sind eine Zusammenfassung der im Azure App Service Migration Assistant-Wiki verfügbaren Informationen.
Was passiert, wenn bei der Bewertung ein Problem gefunden wird?
Wenn der Azure App Service Migration Assistant Probleme bei der Bewertung Ihrer Webanwendung feststellt, können Sie Folgendes tun:
- Aktualisieren Sie die Anwendung, um Features zu ersetzen, die von spezifischeren Erweiterbarkeitsfeatures der IIS abhängen. Dies kann je nach betreffender Funktionalität relativ einfach sein. Beispielsweise können Sie die benutzerdefinierten Protokollierungsfeatures, die von einem ISAPI-Filter abhängig waren, durch Azure Application Insights ersetzen. Application Insights erfordert lediglich das Hinzufügen von ein paar Zeilen Code zu einer Anwendung und stellt außerdem umfangreiche verwertbare Berichte bereit.
- Aktualisieren Sie die Anwendung, indem Sie das Feature, das die Migration verhindert, vorübergehend deaktivieren. Der Migration Assistant kann Sie durch diesen Prozess führen.
- Stellen Sie die Anwendung unverändert auf einem virtuellen Azure-Computer bereit. Zwar können Sie die Vorteile der Verwendung von Azure App Service nicht nutzen und müssen das Betriebssystem verwalten, allerdings müssen Sie die Hardware nicht mehr verwalten. Außerdem verfügen Sie über einen einzigen Verwaltungspunkt für alle Ihre Webdienste.
Das Azure App Service Migration Assistant-Wiki enthält für viele der bei einer Bewertung gefundenen Probleme mögliche Schritte zur Behebung.
Zusammenfassung
Die wichtigsten Informationen in dieser Lerneinheit:
- Der Azure App Service Migration Assistant sucht nach Inkompatibilitäten zwischen Ihren lokalen Web-Apps und dem, was von Azure App Service unterstützt wird. Wenn ein Problem vorliegt, gibt es in der Regel eine Möglichkeit, dieses lokal zu beheben (oder das Feature zu deaktivieren, das das Problem verursacht). Anschließend können Sie den Migration Assistant noch mal ausführen.
- Wenn es keine gravierenden Probleme gibt, die eine Migration verhindern, migriert der Migration Assistant Ihre Web-App für Sie zu Azure App Service.