Beslismoment: VDI en Terminal Services
Twee basisconcepten dingen naar prominentie, als technologieën al om prominentie geven, als het gaat om grafische desktopinterfaces op afstand: VDI (virtual desktop infrastructure) en terminal services. Het idee van beide is eenvoudig: plaats de resources en verwerking op een server en laat eindgebruikers de grafische interface op afstand benaderen via een netwerk. Wat VDI en TS fundamenteel onderscheidt, is het verschil tussen enerzijds die externe server als een één-op-veel-ervaring waarbij veel gebruikers hun desktop krijgen vanaf één enkele image van het besturingssysteem (TS), en anderzijds elke gebruiker die een eigen, toegewijde server krijgt (vermoedelijk gevirtualiseerd en VDI genoemd) waarbij er geen sprake is van het delen van de individuele resources van het besturingssysteem.
Er bestaat een zekere aanname, deels voortkomend uit de naamgevingsconventies, dat VDI een desktopbesturingssysteem impliceert in plaats van een serverbesturingssysteem, maar dit moet niet als een implicatie worden opgevat. Buiten de Windows-wereld bestaat er namelijk werkelijk geen scheiding tussen desktop- en serverbesturingssystemen, dus een dergelijk onderscheid op technologisch niveau zou geen zin hebben. Het is echter belangrijk om te onthouden dat Microsoft de VDI-licentieverlening definieert aan de hand van het gebruik van verschillende OS-licentieopties, en dat de meeste VDI bestemd is voor Windows-besturingssystemen. Dus hoewel VDI dit niet impliceert, is het in praktische zin over het algemeen belangrijk om in gedachten te houden dat er aan de technische kant geen onderscheid is en aan de Microsoft-licentiekant zware onderscheiden bestaan.
Van de twee is VDI het nieuwere concept. Terminal Services bestaan al decennia, zijn welbekend en zijn vandaag de dag allesbehalve spannend of flitsend. Terminal services dateren van vóór Windows, komen voor in vrijwel elke familie van besturingssystemen en zijn in de UNIX-wereld zo gangbaar dat ze vaak zonder vermelding worden gebruikt. Terminal services zijn de grafische voortzetting van de oude “green screen”-terminals die werden gebruikt sinds de “oude tijd” van computers. Vroeger waren de terminals vaak serieel aangesloten VT100-terminals en tegenwoordig gebruiken we TCP/IP-netwerken en protocollen die in staat zijn om afbeeldingen over te dragen, maar het concept blijft hetzelfde: veel gebruikers op één enkele server.
Met VDI bereiken we dezelfde doelen, maar doen we dat door elke gebruiker al zijn eigen resources te geven. Hun OS is volledig van henzelf, niet gedeeld met iemand anders. Dit betekent dat alle overhead van geheugenbeheer, CPU-beheer, procestabellen, kopieën van bibliotheken en dergelijke voor elke individuele gebruiker aanwezig is. Dat is een hoop overhead. Bedenk eens al die resources die een inactieve grafische desktop nodig heeft alleen al om op te starten en op de gebruiker te wachten – dat kan behoorlijk wat zijn. Nieuwere Windows-besturingssystemen zijn steeds slanker en efficiënter geworden, waarschijnlijk om ze levensvatbaarder te maken op VDI-infrastructuren, maar de overhead blijft een belangrijke factor. VDI was niet echt mogelijk totdat virtualisatie het tot werkelijkheid maakte, dus in elke praktische zin is het een nieuw gebruik van technologie en wordt het vaak verkeerd begrepen.
Waar we nu voor staan, bij het beslissen over een rekeninfrastructuur op afstand, is de keuze tussen deze twee architecturale ideeën. Het moet uiteraard worden opgemerkt dat deze twee zeer gemakkelijk naast elkaar kunnen bestaan en dat het vaak passend zou zijn om dit te doen. In kleinere omgevingen zou het zelfs heel gemakkelijk zijn voor de twee om naast elkaar te bestaan op hetzelfde fysieke platform. Er zijn hier veel factoren waarmee we rekening moeten houden en dit beslissingsproces kan eigenlijk behoorlijk ingewikkeld zijn.
Een van de grootste factoren waarmee we rekening moeten houden, is softwarecompatibiliteit. Dit is de belangrijkste drijfveer voor de overstap naar VDI in plaats van terminal services. In de Windows-wereld is het niet ongebruikelijk dat applicaties zaken vereisen zoals een signatuur van een desktopbesturingssysteem (waarbij ze weigeren te draaien op servervarianten van het OS), single-useromgevingen, gebruikers met beheerdersrechten, het draaien met specifieke accounts, of bibliotheekvereisten die vaak conflicteren met andere pakketten. Vanwege deze problemen kijken veel bedrijven naar VDI om de manier na te bootsen waarop individuele desktops werken, waar deze problemen gemakkelijk over het hoofd werden gezien omdat elke gebruiker in een afgescheiden omgeving draaide. VDI brengt diezelfde functionaliteit naar de wereld van toegang op afstand, waardoor probleemkinderen onder de applicaties naar behoefte kunnen worden bediend. Isolatie van het OS voegt een beschermingslaag toe.
Deze drijvende factor bestaat in wezen niet buiten de Windows-wereld en is de voornaamste reden waarom VDI nooit voet aan de grond heeft gekregen in enige andere omgeving. Hoewel het bijvoorbeeld met Linux of FreeBSD gemakkelijk te realiseren is, heeft VDI in die gevallen weinig nut of waarde.
Een belangrijk aandachtspunt bij VDI is de extreme overhead die nodig is om vele redundante besturingssystemen te beheren, elk met zijn eigen gedupliceerde processen, opslag en geheugen. In de begindagen maakte dit VDI ongelooflijk inefficiënt. Recenter hebben geavanceerde VDI-systemen, voornamelijk gecentreerd rond virtualisatieplatformen en opslag, echter veel van deze problemen aangepakt door geheugen en opslag te dedupliceren, gemeenschappelijke master-bootbestanden te gebruiken en andere technieken toe te passen. In feite kan het, in tegenstelling tot de meeste aannames, zelfs zo zijn dat VDI voor Windows beter presteert dan traditionele terminal services, doordat het hypervisorplatform in staat is om geheugenbeheer en taakwisseling nog efficiënter af te handelen dan Windows zelf (een fenomeen dat voor het eerst werd waargenomen in het begin van de jaren 2000, toen Windows in sommige gevallen sneller draaide wanneer het bovenop Linux werd gevirtualiseerd, zodat het geheugenbeheer gedeeltelijk kon worden overgedragen aan het onderliggende Linux-systeem, dat efficiënter was). Dit is zeker niet altijd het geval, maar de verbeteringen in de afhandeling van VDI zijn zo ver gevorderd dat de twee vaak vrij dicht bij elkaar liggen. Nogmaals, dit is echter een factor die VDI aantrekkelijker maakt in de Windows-wereld, maar niet zo dramatisch in de niet-Windows-wereld, waar het native taakbeheer van het OS doorgaans efficiënter is en VDI onnodige overhead zou blijven.
Een ander gebied waarop VDI consequent capabeler is gebleken dan terminal services, is op het vlak van grafisch rijke, gerenderde omgevingen zoals CAD en videobewerking. Diezelfde gebieden die nog steeds sterk leunen op dedicated hardware, neigen ertoe over te stappen op VDI in plaats van terminal services, vanwege een zware investering in GPU-mogelijkheden binnen de VDI-oplossingen. Dit is geen universeel scenario, maar voor situaties waarin zware grafische rendering moet plaatsvinden, is het de moeite waard om de mogelijkheid te onderzoeken dat VDI aanzienlijk beter zal presteren.
Vanwege de manier waarop VDI wordt beheerd, wordt het vaak alleen gereserveerd voor zeer grote implementaties, waar de schaal, in aantal eindgebruikers dat in de oplossing is opgenomen, kan worden benut om een deel van de implementatiekosten te overwinnen. Terminal services daarentegen kunnen, vanwege de schaalbaardere kosten, vaak kosteneffectiever worden geïmplementeerd voor kleinere omgevingen of subsets van gebruikers. Geen van beide is gangbaar voor een zeer kleine omgeving van slechts enkele gebruikers, hoewel een vreemd fenomeen van handmatig beheerde VDI ervoor zou zorgen dat VDI waarschijnlijk effectiever is dan terminal services voor een uitzonderlijk klein aantal gebruikers, misschien minder dan tien, waarbij VDI meer wordt behandeld als individuele servers dan als een uniforme VDI-omgeving.
Op de zeldzaamste uitzonderingen na, voornamelijk vanwege de licentie-overhead die wordt gecreëerd door het Windows-desktopecosysteem in een gevirtualiseerde omgeving, is het een de facto uitgangspunt om voor systemen met eindgebruikers op afstand uit te gaan van een startpunt met terminal server-technologieën, en pas naar de ingewikkeldere en kostbaardere VDI-oplossingen te grijpen wanneer terminal services niet in staat blijken te voldoen aan de technische vereisten van het scenario. In feite is VDI een terugvaloptie, een bruteforce-methode om virtualisatie voor eindgebruikers te laten werken op plaatsen waar de voorkeursmethoden tekortgeschoten zijn.