Applicaties Migreren naar Azure: Nieuwe omgeving met VM's
Om uw bestaande applicaties te migreren naar Azure zijn er diverse mogelijkheden. Aan de hand van een eenvoudige webserver omgeving leggen we in een drieluik een drietal mogelijke scenario's uit. Elk scenario heeft zijn eigen stappenplan en voor- en nadelen welke we zullen behandelen. In mijn vorige blog ben ik ingegaan op het eerste scenario om met behulp van Azure Site Recovery de omgeving te migreren. We zullen nu het tweede scenario behandelen waarin we een nieuwe omgeving gaan opbouwen op basis van virtuele machines.
De omgeving
Onze omgeving bestaat uit een enkele webserver met een databaseserver en ziet er als volgt uit:
Onze webserver is een Windows server met IIS waar een .Net applicatie op geïnstalleerd is. De database server is een SQL Server met een enkele database voor onze website. Onze servers staan op een Hyper-V omgeving.
Scenario's
De scenario's welke we zullen behandelen zijn:
1. Migreren middels Azure Site Recovery
2. Migreren door de omgeving in Azure opnieuw op te bouwen op basis van VM's (IaaS) - deel 2
3. Migreren door de omgeving om te bouwen naar Azure PaaS services - deel 3 (Zie ook Applicatie Modernisering)
Het eerste scenario om met behulp van Azure Site Recovery de omgeving te migreren, hebben we reeds behandeld. In dit blog gaan we in op het tweede scenario, waarin we een nieuwe omgeving gaan opbouwen op basis van virtuele machines.
Migratie middels een nieuwe omgeving in Azure
Dit scenario is vergelijkbaar met een vernieuwde omgeving voor een applicatie On-Premise opbouwen en daar naar toe over te schakelen. De omgeving wordt nu alleen in Azure opgebouwd. Je kunt hierin ook gelijk updates of upgrades van het platform (Windows, SQL Server) in meenemen en een nieuwe versie van de applicatie, wat vaak hand in hand gaat met de updates aan het platform. Aangezien we de omgeving op dezelfde manier middels virtual machines opbouwen, verandert er aan de architectuur niet zoveel.
Stap 1: Opzetten Azure Netwerk
Voordat je servers kunt opzetten in Azure, moet je een virtual network in Azure beschikbaar hebben waaraan de VM's gekoppeld dienen te worden. Dit hoeft niet hetzelfde ontwerp te hebben als het On-Premise netwerk. Waar wel rekening mee gehouden moet worden, is de IP-adressering van de subnets indien men dit netwerk wilt koppelen aan het On-Premise netwerk (middels VPN of ExpressRoute) zodat de routering tussen de netwerk juist kan worden opgezet. Voor onze omgeving zetten we een Azure netwerk op met 2 subnets, een frontend en een backend subnet:
Stap 2: Opzetten Virtual Machines
Nadat het netwerk is opgebouwd, kunnen we de virtual machines gaan aanmaken. De Azure marketplace heeft een groot aantal images beschikbaar met operating systems en eventueel software zoals SQL Server. Zowel Microsoft als andere third-party software leveranciers bieden kant en klare images aan middels de marketplace.
Voor onze omgeving kiezen we de volgende twee images:
- Web Server: Windows Server 2016 Datacenter
- Database Server: SQL Server 2017 Standard on Windows Server 2016
Voor de Web Server hebben we gekozen voor een "kale" Windows installatie welke we later verder gaan inrichten om onze applicatie te kunnen draaien. Het image voor de Database Server is een Windows installatie met SQL server reeds voor geïnstalleerd. Dit heeft als voordeel dat de installatie zelf niet meer gedaan hoeft te worden en de licentie voor SQL server wordt ook gelijk meegenomen in de kosten van de virtual machine. Het is overigens ook mogelijk om licenties welke u in uw bezit heeft mee nemen naar Azure, voor de voorwaarden hiervan gaat u naar: https://azure.microsoft.com/nl-nl/pricing/hybrid-benefit/
Stap 3: Inrichten van de VM's
De virtual machine voor de Web Server heeft nu alleen nog maar een Windows installatie. Om een web applicatie hierop te kunnen hosten, zal er extra software aangebracht moeten worden. We willen een .Net web applicatie kunnen draaien en hiervoor zijn onder andere de IIS web server en .Net applicatie rollen nodig op Windows. Daarnaast kunnen andere benodigde software, features en libraries aangebracht worden.
De Database server heeft alle software welke benodigd is reeds geïnstalleerd staan, doordat we het SQL Server image vanuit de Marketplace hebben gekozen.
Stap 4: Installeren/deployen van de Web Applicatie
We deployen een nieuwe versie van onze web applicatie op onze gebruikelijke manier op de web server. Dit is niet anders dan in onze On-Premise omgeving, aangezien de architectuur niet wezenlijk verschillend is.
Stap 5: Overzetten van de database
Voor het overzetten van onze database hebben we gekozen om dit middels een SQL back-up en restore uit te voeren. Nu we zowel de applicatie als de database in onze nieuwe omgeving opgezet hebben, kan deze nieuwe omgeving getest worden.
Stap 6: Overschakelen naar nieuwe omgeving
Nadat de nieuwe omgeving getest is, eventuele problemen/bugs verholpen zijn, kan er een moment gekozen worden om over te gaan naar de nieuwe omgeving. Aangezien we niet willen dat er verlies in data komt, moeten we er voor zorgen dat de nieuwe omgeving met de allerlaatste data uit de huidige omgeving verder gaat. We zullen een nieuwe back-up op de omgeving gaan restoren. Ten tijden van de back-up en restore hebben we op onze huidige omgeving een onderhoudspagina ingesteld, zodat er geen data meer toegevoegd/gewijzigd/verwijderd kan worden. De nieuwe omgeving wordt nog even getest en het adres van onze applicatie wordt in DNS aangepast om te verwijzen naar de nieuwe omgeving.
Voordelen
De voordelen van de methode zijn:
- De omgeving is gelijk van opzet met de On-premise omgeving, bestaande middelen/procedures blijven van toepassing
- Een mooi moment om de omgeving te voorzien van updates/upgrades (dit kan uiteraard wijzigingen in de applicatiecode met zich mee brengen)
- Nieuwe omgeving kan naast de bestaande getest worden alvorens deze in gebruik te nemen
Nadelen
- De omgeving blijft een IaaS oplossing, wellicht is bij de migratie naar de Cloud een PaaS oplossing beter
- Er zal downtime plaats vinden, welke afhankelijk is van de grootte van de database. Eventueel moeten er andere oplossingen bekeken worden om de down-time te beperken, bijvoorbeeld met behulp van replicatie mechanismes.
In het volgende deel behandelen we de migratie door gebruik te maken van zogenoemde PaaS diensten zoals App Services en Azure SQL Database.
Starten met Azure? Met een Azure Landing Zone kunnen wij snel een veilige basisinrichting voor je neerzetten volgens de richtlijnen van Microsoft?