@
Gijs007
Algemeen
In principe zijn het twee totaal verschillende omgevingen: Windows Server 2016 + Hyper-V is (totaal) anders dan Azure, omwille van een aantal redenen.
De belangrijkste reden is eigenlijk de mate waarin gebruik wordt gemaakt van de Azure infrastructuur.
In principe bestaat de Azure infrastructuur uit diverse componenten, die in de loop der tijd verschillende namen hebben gekend, wat bijzonder verwarrend kan werken.
De beste manier om het verschil uit te leggen is aan de hand van de Azure Stack.
Het is mogelijk om met meerdere Windows Servers (lees: bepaalde versies daarvan) een on-premise "cloud environment" te maken, die verdacht veel lijkt op de Azure Cloud.
Daartoe is het simpelweg nodig om de Azure Stack te installeren, oftewel de software set die mogelijk maakt dat een combinatie van (bepaalde) Windows Servers net als Azure Cloud gebruikt kan worden.
Simpel gesteld, zonder Azure Stack is een Windows Server + Hyper-V
gewoon een Windows Server.
Azure en Ubuntu
De Ubuntu systemen die in de Azure Cloud draaien zijn sterk afhankelijk van cloud-init.
Cloud-init is een onderdeeltje dat standaard in bepaalde Ubuntu versies aanwezig is, maar niet in alle versies van Ubuntu, wat betekent dat bepaalde Ubuntu images in Azure Cloud aangepast zijn.
Het probleem is dat cloud-init onderhouden wordt door Canonical, in samenwerking met Microsoft.
Het is soms een problematisch verhaal, in die zin dat bepaalde config stanza zou moeten werken, maar door de customization (noodzakelijk voor Azure Cloud) niet werkt.
Samengevat, de Windows Server + Hyper-V + Ubuntu image óf een set Windows Servers + Azure Stack kunnen nog steeds afwijken van datgene dat daadwerkelijk in de Azure Cloud draait.
In de praktijk is het veelal zo dat de Ubuntu systemen in de Azure Cloud relatief uniek zijn.
Het is dan ook veelal aan te bevelen om de Ubuntu images op een (lokale) Windows Server + Hyper-V omgeving nagenoeg identiek te houden aan de Ubuntu images in de Azure Cloud.
Potential work-around
Een aantal mogelijkheden bestaan om Ubuntu images te synchroniseren met de images in Azure Cloud.
Eén van de mogelijkheden is het realiseren van een eigen repository in Azure Cloud, maar dat is veelal een erg omslachtige oplossing.
Een simpele én kosteneffectieve work-around is het installeren van een Ubuntu image uit de Azure Cloud op een (lokale) Windows Server + Hyper-V server, zodat de Ubuntu images in Hyper-V eigenlijk gebruik maken van de (update) repo's die ook van toepassing zijn voor de Azure Cloud images.
In dat geval zal een apt-get (of soortgelijk) command leiden tot een relatief pijnloze update, die ervoor zal zorgen dat synchronisatie tussen cloud based images en de Hyper-V based images bestaat.
Het nadeel van een dergelijke (nasty!) work-around is dat er vroeg of laat problemen zullen ontstaan, dit omwille van het simpele feit dat (enerzijds) de Windows Server + Hyper-V infrastructuur niet gelijk is aan de Azure Cloud infrastructuur en (anderzijds) de veranderingen in de Azure Cloud sneller gaan dan welke verandering in de Windows Server omgeving dan ook.
Het is dus een beetje oppassen met een dergelijke (nasty) work-around.
Maar toch, in de praktijk vallen de problemen wel mee, dankzij het fijne Ubuntu OS.
In ieder geval, doe altijd eerst even een "update test" in een separate Hyper-V container.
Hopelijk helpt het bovenstaande een beetje!