Een web-app beoordelen met behulp van de Azure App Service Migration Assistant

Voltooid

In deze les bekijken we de mogelijke uitdagingen die u kunt tegenkomen bij het migreren van webtoepassingen die on-premises worden gehost op uw eigen server op hoog niveau. We geven een context van de soorten afhankelijkheden die tussen webtoepassingen en functies van Internet Information Services (IIS) bestaan en we vertellen waarom dit een probleem veroorzaakt. Deze essentiële achtergrondinformatie biedt de context die u mogelijk nodig hebt om de noodzaak voor een evaluatie te begrijpen.

Waarom zou u een webtoepassing naar Azure App Service verplaatsen?

Azure App Service is een volledig beheerd platform voor uw web-apps. U kunt deze gebruiken om uw web-apps uit te voeren en te schalen met minimale installatie. Microsoft beheert waar nodig de infrastructuur, updates van het besturingssysteem, taakverdeling en logica voor omhoog en omlaag schalen.

U kunt instellingen configureren in een vereenvoudigde gebruikersinterface en de prestaties van de toepassing verkennen terwijl deze wordt uitgevoerd, maar er is nog weinig meer te doen aan uw kant. Azure App Service is hierdoor een aantrekkelijk alternatief voor het uitvoeren van uw toepassingen in uw eigen serveromgeving. In uw eigen serveromgeving moet u rekening moet houden met hardwarekosten, installatie, installatie van het besturingssysteem, updates en configuratie, installatie van de serversoftware, updates en configuratie en meer.

Er zijn diverse functies waardoor werken met Azure App Service zoveel impact heeft.

Met de functie voor automatisch schalen kan een beheerder het maximum aantal exemplaren instellen waarnaar de web-app moet worden geschaald en de drempelwaarden voor verkeer. Vervolgens bepaalt de besluitvormingslogica van de App Service of er omhoog of omlaag moet worden geschaald.

Met implementatiesites kunnen Operations of DevOps een nieuwe versie van de webtoepassing implementeren in een live test- of faseringsomgeving, waar handmatige of geautomatiseerde integratietests kunnen worden uitgevoerd. Nadat de nieuwe versie alle tests heeft voltooid, kunnen bewerkingen de sites omwisselen om de gefaseerde app naar productie te verplaatsen. Als er na de implementatie problemen optreden, kunnen bewerkingen de sites opnieuw verwisselen om de vorige versie weer naar productie te verplaatsen.

Diagnostische gegevens van App Service bieden een interactieve interface, waarbij de probleemoplosser een aantal vragen kan beantwoorden. De interface produceert een volledig diagnostisch rapport dat specifiek is voor het type probleem dat uw toepassing ondervindt. Daarnaast helpen hulpprogramma's zoals statuscontrole, Application Insights en Navigator (het interactieve afhankelijkheidsdiagram) u inzicht te krijgen in waar problemen zich bevinden.

Wat is de Azure App Service Migration Assistant?

De Azure App Service Migration Assistant maakt deel uit van een groter pakket toepassingen waarmee organisaties hun overgang naar de cloud kunnen uitvoeren. De Migration Assistant biedt een begeleide gebruikerservaring, vergelijkbaar met een wizard, waarmee twee taken worden uitgevoerd:

  1. Er wordt een evaluatie uitgevoerd van een specifieke web-app geïnstalleerd op Windows Server. De afhankelijkheden van de web-app worden geëvalueerd om te bepalen of een migratie naar Azure App Service mogelijk is zonder de web-app te hoeven aanpassen.
  2. Als uit de evaluatie blijkt dat de web-app inderdaad kan worden gemigreerd, wordt deze migratie door Migration Assistant uitgevoerd. U moet de Migration Assistant toegang geven tot uw Azure-account, de resourcegroep selecteren die u wilt gebruiken en een naam voor de web-app selecteren, onder andere details.

Een andere mogelijkheid is om de Azure App Service Migration Assistant een ARM-sjabloon (Azure Resource Manager) te laten genereren die u kunt gebruiken om de webtoepassing op een meer geautomatiseerde en herhaalbare manier te migreren.

Een evaluatie uitvoeren - waarom?

Bij een aantal organisaties werden webtoepassingen oorspronkelijk gebouwd vanuit de gedachte dat de toepassing altijd toegang zou hebben tot de functies op laag niveau van IIS. Sommige ontwikkelaars hebben bijvoorbeeld functies zoals bewaking, logboekregistratie en beveiliging op ISAPI-filters gebouwd. De filters boden toegang tot binnenkomende aanvragen voordat ze werden doorgegeven aan de ASP.NET-toepassing. Ze boden ook toegang tot uitgaande reacties die de ASP.NET-toepassing genereerde.

Een van de voordelen van het gebruik van een PaaS-aanbieding (platform as a service) zoals Azure App Service is dat de cloudprovider (Microsoft, in dit geval) de hardware en software beheert zodat u dat niet hoeft te doen. En daar komen de tijd- en kostenbesparingen vandaan. Dit betekent echter dat uw toepassingen toegang hebben tot minder functies op lager niveau van Windows Server en IIS. Als uw toepassingen afhankelijk waren van deze functies op lager niveau, kunt u mogelijk niet profiteren van Azure App Service zonder enige aanpassingen door te voeren.

Naar welke soorten problemen wordt tijdens de evaluatie gezocht?

De Migration Assistant zoekt naar specifieke functies van een webtoepassing om ervoor te zorgen dat Azure App Service deze functie kan ondersteunen, of dat de Migration Assistant die functie automatisch kan migreren. De volgende tabel geeft enig inzicht in de controles die door de Migration Assistant worden uitgevoerd:

Gereedheidscontrole Uitleg
Poortbindingen Omdat Azure App Service alleen standaardwebverkeer toestaat, zorgt deze gereedheidscontrole ervoor dat de web-app alleen luistert op poort 80 (voor HTTP-verkeer) en 443 (voor HTTPS-verkeer).
Protocollen Omdat Azure App Service alleen werkt met HTTP- en HTTPS-protocollen, zorgt deze gereedheidscontrole ervoor dat de web-app alleen op HTTP gebaseerde protocollen verwerkt. Als uw web-app bijvoorbeeld afhankelijk is van Windows Communication Foundation, wordt deze gereedheidscontrole niet doorgegeven.
Certificaten Azure-app Service kan beveiligingscertificaten verwerken, maar met deze gereedheidscontrole wordt u gewaarschuwd dat het certificaat niet automatisch voor u wordt gemigreerd door de Migration Assistant.
Locatietags Met behulp van locatietags kunt u de configuratie voor alle web-apps die op een server worden gehost, bewaren in één bestand in plaats van gehost in afzonderlijke web.config-bestanden voor elke web-app. Voor Azure App Service-apps wordt een vooraf geconfigureerd applicationhost.config-bestand van IIS gebruikt. De functie voor locatietags wordt niet door deze apps ondersteund. De instellingen voor elke web-app die u migreert, moeten worden verplaatst naar afzonderlijke web.config-bestanden. Met deze gereedheidscontrole wordt het gebruik van locatietags geïdentificeerd.
ISAPI-filters Azure App Service biedt enige ondersteuning voor ISAPI-filters, maar dit is afhankelijk van hoe het ISAPI-filter is geïmplementeerd. De Migration Assistant migreert geen toepassing die afhankelijk is van een ISAPI-filter. U moet eerst het ISAPI-filter van uw toepassing verwijderen en deze vervolgens migreren en handmatig toevoegen aan Azure App Service.
Toepassingspools Omdat Azure App Service ondersteuning biedt voor één toepassingspool per app, zorgt deze gereedheidscontrole ervoor dat uw web-app alleen afhankelijk is van één toepassingspool.
Identiteit van toepassingspool Azure App Service-apps worden gehost in een IIS-werkproces dat wordt uitgevoerd in een door het systeem beheerd account dat aan de toepassingspool is gekoppeld. Dit is tevens de standaardidentiteit die door on-premises installaties van IIS wordt gebruikt. Deze gereedheidscontrole zorgt ervoor dat de web-app wordt geconfigureerd om in de standaardidentiteit te worden uitgevoerd.
Authentication type Azure App Service-apps bieden ondersteuning voor een andere set verificatietypen dan apps die worden gehost op IIS dat on-premises wordt uitgevoerd. Deze gereedheidscontrole zorgt ervoor dat de web-app wordt geconfigureerd om anonieme verificatie te gebruiken. Na de migratie kunt u het verificatietype in Azure App Service handmatig configureren.
Toepassingsinstellingen Met deze gereedheidscontrole wordt u gewaarschuwd voor aangepaste toepassingsinstellingen in het bestand web.config dat in plaats daarvan moet worden verplaatst naar Azure App Service>Configuratie>Toepassingsinstellingen.
Verbindingsreeksen Deze gereedheidscontrole bepaalt of databaseverbindingsreeksen die in het web.config-bestand zijn opgeslagen, naar on-premises databases verwijzen. Zo ja, dan biedt de Migration Assistant u de mogelijkheid om hybride verbindingen in te stellen.
Frameworks De Migration Assistant ondersteunt alleen ASP.NET en PHP. Als uw app een ander framework gebruikt, kunt u de automatische migratie niet uitvoeren.
Configuratiefout De Migration Assistant zorgt ervoor dat uw on-premises IIS-exemplaar correct is geconfigureerd en er geen fout wordt geretourneerd wanneer deze wordt gescand. Deze gereedheidscontrole zorgt ervoor dat er geen onderliggende problemen zijn met de web-app vóór de migratie.
Virtuele mappen In Azure App Service worden alle bestanden in een vaste mappenstructuur opgeslagen. De Migration Assistant verplaatst bestanden naar de juiste submappen. Toepassingen kunnen echter niet worden gemigreerd met virtuele mappen die worden ondersteund door UNC-shares.

De informatie in deze tabel is een samenvatting van de wiki Azure App Service Migration Assistant.

Wat als er een probleem uit de evaluatie naar voren komt?

Als de Azure App Service Migration Assistant problemen vindt bij het evalueren van uw webtoepassing, kunt u het volgende doen:

  • De toepassing bijwerken om functies te vervangen die afhankelijk zijn van uitbreidbaarheidsfuncties op lager niveau van IIS. Afhankelijk van de desbetreffende functionaliteit kan deze taak vrij eenvoudig zijn. U kunt bijvoorbeeld de aangepaste logboekfuncties die afhankelijk waren van een ISAPI-filter vervangen door Azure Application Insights. Voor Application Insights hoeven alleen maar enkele regels code te worden toegevoegd aan een toepassing; dit biedt een heel scala rapporten op basis waarvan actie kan worden uitgevoerd.
  • Werk de toepassing bij door de functie die de migratie blokkeert, tijdelijk uit te schakelen. De Migration Assistant kan u hierbij helpen.
  • Implementeer de toepassing as is naar een virtuele Azure-machine. Hoewel u niet kunt profiteren van de voordelen van het gebruik van Azure App Service en u het besturingssysteem zou moeten onderhouden, hoeft u de hardware niet langer te onderhouden. U hebt ook een centraal beheerpunt voor al uw webservices.

De wiki Azure App Service Migration Assistant bevat mogelijke herstelstappen voor veel van de problemen die tijdens een evaluatie worden gevonden.

Samenvatting

Hier ziet u de belangrijkste conclusies uit deze les:

  • De Azure-app Service Migration Assistant zoekt naar incompatibiliteit tussen uw on-premises web-apps en wat wordt ondersteund in Azure-app Service. Als er een probleem is, is er meestal een manier om het probleem on-premises op te lossen (of om de functie uit te schakelen die het probleem veroorzaakt). U kunt de Migration Assistant vervolgens opnieuw proberen.
  • Als er geen blokkeringsproblemen zijn, migreert de Migration Assistant uw web-app naar Azure-app Service voor u.