Utvärdera en webbapp med Azure App Service Migration Assistant

Slutförd

I den här lektionen går vi igenom de potentiella utmaningar som du kan stöta på när du migrerar webbprogram som finns lokalt på din egen server på en hög nivå. Vi går igenom de olika typer av beroenden som webbappar kan ha av ISS-funktioner (Internet Information Services) och varför de kan orsaka problem. Den här viktiga bakgrundsinformationen ger ett sammanhang som du kan behöva för att bättre förstå behovet av en utvärdering.

Varför ska du flytta en webbapp till Azure App Service?

Azure App Service är en fullständigt hanterad plattform för webbappar. Du kan använda den för att köra och skala dina webbappar med minimal konfiguration. Microsoft hanterar infrastrukturen, uppdateringar av operativsystemet, belastningsutjämning och logik för att skala upp eller ned efter behov.

Du kan konfigurera inställningar i ett förenklat användargränssnitt och utforska programmets prestanda när det körs, men det finns inte mycket annat att göra från din sida. Detta gör Azure App Service ett attraktivt alternativ till att köra program i en egen servermiljö. I en egen servermiljö måste du hantera kostnader för maskinvara, installation, installation av operativsystem, uppdatering och konfiguration, installation av serverprogramvara, uppdateringar, konfiguration osv.

Flera funktioner gör arbetet med Azure App Service kraftfullt.

Med funktionen autoskalning kan en administratör ange det maximala antalet instanser som webbappen ska tillåtas skala till och trafiktrösklarna. Beslutslogiken i App Services avgör sedan när du bör skala upp eller ned igen.

Distributionsfack gör det möjligt för Operations eller DevOps att distribuera en ny version av webbprogrammet till en livetestnings- eller mellanlagringsmiljö, där manuella eller automatiserade integreringstester kan utföras. När den nya versionen har klarat alla tester kan åtgärderna växla facken för att flytta den mellanlagrade appen till produktion. Om det uppstår problem efter distributionen kan åtgärderna återigen växla facken för att flytta tillbaka den tidigare versionen till produktion.

App Service-diagnostiken ger ett interaktivt gränssnitt där felsökaren kan svara på vissa frågor. Gränssnittet ger en fullständig diagnostisk rapport som är specifik för den typ av problem som programmet påträffar. Dessutom hjälper verktyg som hälsokontroll, Application Insights och Navigator (det interaktiva beroendediagrammet) dig att förstå var problemen finns.

Vad är Azure App Service Migration Assistant?

Azure App Service Migration Assistant är en del av en större uppsättning program som hjälper organisationer med sin övergång till molnet. Migration Assistant innehåller en guidad användarupplevelse som utför två uppgifter:

  1. Den utvärderar en specifik webbapp som är installerad på Windows Server. Den utvärderar webbappens beroenden för att avgöra om det går att migrera appen till Azure App Service utan några ändringar.
  2. Om utvärderingen visar att webbappen kan migreras, utför Migration Assistant migreringen. Du måste ge Migreringsassistenten åtkomst till ditt Azure-konto, välja vilken resursgrupp du vill använda och välja ett namn för webbappen, bland annat.

Azure App Service Migration Assistant kan också generera en Azure Resource Manager-mall som du kan använda till att migrera webbappen mer automatiserat och repeterbart.

Varför ska jag utföra en utvärdering?

I vissa organisationer skapades webbappar ursprungligen med antagandet att appen alltid skulle ha åtkomst till lågnivåfunktioner i IIS. Till exempel har vissa utvecklare byggt in funktioner som övervakning, loggning och säkerhet ovanpå ISAPI-filtren. Filtren gav åtkomst till inkommande begäranden innan de skickades till ASP.NET-programmet. De gav också åtkomst till de utgående svar som ASP.NET-programmet genererade.

En av fördelarna med att använda ett PaaS-erbjudande (plattform som en tjänst) som t.ex. Azure App Service, är dock att molnleverantören (i det här fallet Microsoft) hanterar maskin- och programvara åt dig. Det är där kostnads- och tidsbesparingarna finns. Men det innebär att dina program har åtkomst till färre av de lägre funktionerna i Windows Server och IIS. Om dina appar är beroende av dessa lågnivåfunktioner, kanske du inte kan använda Azure App Service utan att göra ändringar i appen.

Vilka typer av problem letar utvärderingen efter?

Migration Assistant letar efter specifika funktioner i en webbapp för att se till att Azure App Service kan hantera funktionen, eller att Migration Assistant automatiskt kan migrera funktionen. Följande tabell ger en inblick i de kontroller som Migration Assistant utför:

Beredskapskontroll Förklaring
Portbindningar Eftersom Azure App Service endast tillåter webbtrafik av standardtyp, säkerställer beredskapskontrollen att webbappen bara lyssnar på portarna 80 (för HTTP-trafik) och 443 (för HTTPS-trafik).
Protokoll Eftersom Azure App Service endast fungerar med HTTP- och HTTPS-protokoll, säkerställer beredskapskontrollen att webbappen bara hanterar HTTP-baserade protokoll. Om din webbapp till exempel är beroende av Windows Communication Foundation godkänns inte den här beredskapskontrollen.
Certifikat Azure App Service kan hantera säkerhetscertifikat, men den här beredskapskontrollen varnar dig om att Migration Assistant inte migrerar certifikatet automatiskt åt dig.
Platstaggar Med platstaggar kan konfigurationen för alla webbappar på en server finnas i en enda fil, i stället för att använda enskilda web.config-filer för varje webbapp. Appar i Azure App Service använder den förkonfigurerade IIS-filen applicationhost.config och saknar stöd för funktionen med platstaggar. Inställningarna för varje webbapp som du migrerar ska flyttas till enskilda web.config-filer. Beredskapskontrollen identifierar användningen av platstaggar.
ISAPI-filter Azure App Service har visst stöd för ISAPI-filter, men det beror på hur ISAPI-filtret implementerades. Migration Assistant migrerar inte ett program som är beroende av ett ISAPI-filter. Du måste först ta bort ISAPI-filtret från programmet, migrera det och sedan lägga till ISAPI-filtret manuellt i Azure App Service.
Programpooler Eftersom Azure App Service har stöd för en programpool per app, säkerställer den här beredskapskontrollen att webbappen endast använder en enda programpool.
Programpoolsidentitet Azure App Service-appar körs i en IIS-arbetsprocess som körs via ett systemhanterat konto som är associerat med programpoolen. Det här är även den standardidentitet som lokala IIS-installationer använder. Den här beredskapskontrollen säkerställer att webbappen är konfigurerad att köras i standardidentiteten.
Authentication type Azure App Service-appar har stöd för en annan uppsättning autentiseringstyper än IIS-appar som körs lokalt. Beredskapskontrollen säkerställer att webbappen är konfigurerad att använda anonym autentisering. Efter migreringen kan du konfigurera autentiseringstypen manuellt i Azure App Service.
Programinställningar Beredskapskontrollen varnar dig om anpassade programinställningar i filen web.config som bör flyttas till Azure App Service>Konfiguration>Programinställningar i stället.
Anslutningssträngar Beredskapskontrollen ser om anslutningssträngar för databaser som lagras i filen web.config pekar på lokala databaser. I så fall ger Migreringsassistenten möjlighet att konfigurera hybridanslutningar.
Ramverk Migration Assistant har bara stöd för ASP.NET och PHP. Om din app använder ett annat ramverk kan du inte utföra den automatiska migreringen.
Konfigurationsfel Migreringsassistenten ser till att din lokala IIS-instans är korrekt konfigurerad och inte returnerar något fel när den genomsöks. Beredskapskontrollen säkerställer att det inte finns några underliggande problem med webbappen före migreringen.
Virtuella kataloger Azure App Service lagrar alla filer i en fast katalogstruktur. Migration Assistant flyttar filer till lämpliga underkataloger. Det kan dock inte migrera program med virtuella kataloger som backas upp av UNC-resurser.

Informationen i den här tabellen har sammanställts från wikin för Azure App Service Migration Assistant.

Vad händer om utvärderingen hittar ett problem?

Om Azure App Service Migration Assistant hittar problem när du utvärderar webbappen kan du:

  • Uppdatera appen och ersätta funktioner som är beroende av lågnivåfunktioner i IIS. Det här kan vara relativt enkelt beroende på vilka funktioner det gäller. Du kan till exempel ersätta anpassade loggningsfunktionerna som är beroende av ett ISAPI-filter med Azure Application Insights. Med Application Insights behöver du bara lägga till några rader med kod i appen för att få en mängd olika rapporter.
  • Uppdatera appen genom att tillfälligt inaktivera funktionen som blockerar migreringen. Migration Assistant kan hjälpa dig att göra det här.
  • Distribuera appen i befintligt skick till en virtuell Azure-dator. Även om du inte får samma fördelar som i Azure App Service och skulle behöva underhålla operativsystemet själv, behöver du inte längre underhålla maskinvaran. Du har också en enda hanteringspunkt för alla dina webbtjänster.

Wikin för Azure App Service Migration Assistant innehåller potentiella åtgärdssteg för många av de problem som kan påträffas under en utvärdering.

Sammanfattning

Här är de viktigaste lärdomarna från den här lektionen:

  • Azure App Service Migration Assistant söker efter inkompatibiliteter mellan dina lokala webbappar och vad som stöds i Azure App Service. Om det uppstår ett problem, finns det vanligtvis ett sätt att åtgärda problemet lokalt (eller inaktivera den funktion som orsakar problemet). Sedan kan du försöka öppna Migration Assistant igen.
  • Om det inte finns några blockeringsproblem migrerar Migration Assistant din webbapp till Azure App Service åt dig.