Virtuele Eieren en Manden
In gesprekken met IT-professionals uit het kleinbedrijf blijkt een van de belangrijkste factoren voor terughoudendheid bij het uitrollen van virtualisatie voort te komen uit wat wordt omschreven als “leg niet al je eieren in één mand.”
Ik begrijp waar deze zorg vandaan komt. Virtualisatie maakt het mogelijk om veel gastbesturingssystemen onder te brengen in één enkel fysiek systeem dat, in het geval van een hardwarestoring, ervoor zorgt dat alle gastsystemen die erop draaien tegelijkertijd uitvallen, allemaal in één keer. Dit klinkt slecht, maar misschien is het niet zo slecht als we in eerste instantie zouden veronderstellen.
Het idee achter de uitdrukking over eieren en manden is dat we niet al onze middelen tegelijkertijd in gevaar moeten brengen. Dit wordt over het algemeen toegepast op beleggen, waarbij beleggers worden aangemoedigd om te diversifiëren en te investeren in veel verschillende bedrijven en typen effecten zoals obligaties, aandelen, fondsen en grondstoffen. In het geval van eieren (of geld) hebben we het over een onderling verwisselbare grondstof. Het ene ei is net zo goed als het andere. Een verzameling eieren is van nature redundant.
Als we een dozijn eieren hebben en we breken er zes, kunnen we nog steeds een omelet maken, misschien een kleinere, maar we kunnen nog steeds eten. Het eten van een kleinere omelet is waarschijnlijk bijna net zo bevredigend als een grotere – we lijden in geen geval honger. Het verdelen van onze reeds redundante eieren over meerdere manden stelt ons in staat om onze risico's te spreiden. Ja, het dragen van twee manden betekent dat we minder tijd hebben om op elk afzonderlijk te letten, dus het verhoogt het risico om enkele van de eieren te verliezen, maar het verkleint de kans om alle eieren te verliezen. In het geval van eieren inderdaad een verstandige propositie. En eveneens een slimme manier om u voor te bereiden op uw pensioen.
Deze theorie wordt, omdat ze als een uitdrukking wordt herhaald zonder zorgvuldige analyse of juist begrip, vervolgens toegepast op niet-gerelateerde gebieden zoals servervirtualisatie. Servers zijn echter niet als eieren. Servers zijn, zeker in kleinere bedrijven, zelden onderling verwisselbare grondstoffen waarbij het hebben van zes werkende exemplaren, in plaats van de gebruikelijke twaalf, voldoende is. Doorgaans vervult elke server een unieke rol en zijn ze allemaal relatief kritiek voor het functioneren van het bedrijf. Als een server niet kritiek is, dan is het onwaarschijnlijk dat de kosten voor de aanschaf en het onderhoud ervan in de eerste plaats te rechtvaardigen zijn, en zou hij dus waarschijnlijk niet bestaan. Wanneer servers wél onderling verwisselbaar zijn, zoals in een grote, stateless webfarm of rekencluster, zijn ze als zodanig geconfigureerd als middel om de capaciteit uit te breiden voorbij de grenzen van één enkele fysieke machine, en vallen ze dus buiten het bestek van deze discussie.
IT-diensten in een bedrijf vormen doorgaans, ten minste tot op zekere hoogte, een “ketenafhankelijkheid.” Dat wil zeggen, ze zijn onderling afhankelijk en het verlies van één enkele dienst kan andere diensten beïnvloeden, hetzij omdat ze technisch onderling afhankelijk zijn (zoals een bedrijfskritische applicatie die afhankelijk is van een database), hetzij omdat ze qua workflow onderling afhankelijk zijn (zoals een kantoormedewerker die de bestandsserver nodig heeft om een bestand te kunnen leveren dat hij moet bewerken met informatie uit een e-mail, terwijl hij de wijzigingen telefonisch of via instant messenger bespreekt). In deze gevallen kan het verlies van één enkele cruciale dienst zoals e-mail, netwerkauthenticatie of bestandsdiensten een disproportioneel verlies aan werkvermogen veroorzaken. Als er tien cruciale diensten zijn en er valt er één uit, daalt de productiviteit van het bedrijf vanuit het perspectief van IT-diensten waarschijnlijk met veel meer dan tien procent, in extreme gevallen mogelijk tegen de honderd procent aan. Dit is niet altijd waar; in sommige unieke gevallen zijn medewerkers in staat om een uitgevallen dienst effectief te “omzeilen”, maar dit is zeer ongebruikelijk. Zelfs als mensen kunnen blijven werken, zijn ze waarschijnlijk veel minder productief dan normaal.
Bij fysieke servers vertegenwoordigt elke server zijn eigen punt van falen. Dus als we tien servers hebben, is de kans op uitval tien keer zo groot als wanneer we slechts één van diezelfde servers zouden hebben. Elke server die we toevoegen brengt zijn eigen risico met zich mee. Als elke storing een uitvalfactor van 2,5 heeft – dat wil zeggen dat ze het bedrijf financieel raakt voor vijfentwintig procent van de omzet gedurende, laten we zeggen, één dag, dan is onze totale gemiddelde impact over een decennium gelijk aan tweeënhalve volledige site-uitval. Ik gebruik hier het concept van factoren en gemiddelden om dit eenvoudig te maken; het bepalen van de lengte van een gemiddelde uitval of de impact van een gemiddelde uitval is niet nodig, aangezien we in dit geval alleen de relatieve impact hoeven te bepalen om de scenario's te vergelijken. Het is slechts een manier om de cumulatieve financiële impact van uitval van het ene type gebeurtenis te vergelijken met die van een ander, zonder dat er specifieke cijfers nodig zijn – dit helpt u niet te bepalen wat uw uitgaven zouden moeten zijn, alleen de relatieve betrouwbaarheid.
Met virtualisatie hebben we de voor de hand liggende mogelijkheid om te consolideren. In dit voorbeeld gaan we ervan uit dat we al deze tien bestaande servers kunnen samenvoegen tot één enkele server. Wanneer we dit doen, roepen we vaak de reactie “al onze eieren in één mand” op. Maar als we wat risicoanalyse uitvoeren, zullen we zien dat dit doorgaans louter angst en onzekerheid is en geen wiskundig onderbouwd risico. Als we dezelfde risico's aannemen als in het bovenstaande voorbeeld, zal onze enkele server gemiddeld slechts één enkele volledige site-uitval oplopen, eenmaal per decennium.
Vergelijk dit met het eerste voorbeeld, dat de schade aanrichtte die gelijkstond aan tweeënhalve volledige site-uitval – het risico van de gevirtualiseerde, geconsolideerde oplossing bedraagt slechts veertig procent van dat van de traditionele oplossing.
Houd nu in gedachten dat dit gebaseerd is op de aanname dat het verliezen van sommige diensten een financieel verlies betekent dat groter is dan de strikte waarde van de dienst die werd verloren, wat vrijwel altijd het geval is. Zelfs als de verloren dienst niet meer is dan het verlies van een individuele dienst, zitten we slechts op het break-evenpunt en hoeven we ons geen zorgen te maken. In zeldzame gevallen kan de impact van het verliezen van één enkel systeem kleiner zijn dan zijn “deel van de taart”, normaal gesproken omdat mensen flexibel zijn en het uitgevallen systeem kunnen omzeilen – zoals wanneer instant messaging uitvalt en mensen simpelweg overschakelen op e-mail totdat instant messaging is hersteld, maar deze gevallen zijn zeldzaam en blijven normaal gesproken beperkt tot enkele systemen uit vele, waarbij het merendeel van de systemen, zoals ERP, CRM en e-mail, een disproportioneel grote impact heeft in geval van een uitval.
Wat we hier dus zien is dat onder normale omstandigheden het verplaatsen van tien diensten van tien servers naar tien diensten op één server doorgaans ons risico verlaagt in plaats van verhoogt – in rechtstreekse tegenstelling tot de theorie van “eieren in een mand”. En dit is puur vanuit het perspectief van hardwarestoringen. Consolidatie biedt echter verschillende andere belangrijke betrouwbaarheidsfactoren die een aanzienlijke impact kunnen hebben op onze casestudy.
Met consolidatie verminderen we de hoeveelheid hardware die door de IT-afdeling gemonitord en beheerd moet worden. Minder servers betekent dat er meer tijd en aandacht kan worden besteed aan de servers die overblijven. Meer aandacht betekent een grotere kans om problemen vroegtijdig op te merken en meer gelegenheid om onderdelen op voorraad te houden. Betere monitoring en onderhoud leiden tot betere betrouwbaarheid.
Mogelijk de belangrijkste factor bij consolidatie is echter dat er aanzienlijke kostenbesparingen zijn en dit kan, mits op de juiste wijze benaderd, kansen bieden voor verbeterde betrouwbaarheid. Met de dramatische verlaging van de totale kosten voor servers kan het verleidelijk zijn om de budgetten krap te blijven houden en te proberen de kostenbesparingen puur rechtstreeks te benutten. Begrijpelijk, en voor sommige bedrijven is dit wellicht de juiste aanpak. Maar het is niet de aanpak die ik zou aanbevelen wanneer men worstelt tegen het idee van eieren en manden.
In plaats daarvan kunt u door een gematigdere aanpak te hanteren – aanzienlijke kostenbesparingen behouden maar toch relatief gezien meer uitgeven aan één enkele server – een hoogwaardigere (lees: betrouwbaardere) server aanschaffen, betere onderdelen gebruiken, reserveonderdelen op locatie hebben, enzovoort. De kostenbesparingen van virtualisatie kunnen vaak rechtstreeks worden omgezet in verhoogde betrouwbaarheid, waardoor de vergelijking verder in het voordeel van de enkele-serverbenadering verschuift.
Zoals ik in een ander artikel stelde: één bakstenen huis heeft een grotere kans om een windstorm te overleven dan één of twee strooien huizen. Meer van iets hebben maakt het niet noodzakelijkerwijs de betrouwbaardere keuze.
Deze voordelen komen puur voort uit het consolidatieaspect van virtualisatie en niet uit de virtualisatie zelf. Virtualisatie biedt daarnaast afzonderlijk uitgebreide functies voor risicobeperking. Systeem-imaging en snel herstel, evenals herstel naar andere hardware, zijn belangrijke voordelen van vrijwel elk virtualisatieplatform. Dit kan een belangrijke rol spelen in een strategie voor disaster recovery.
Uiteraard dienen al deze concepten er puur toe om aan te tonen dat virtualisatie en consolidatie op één enkele machine de verouderde “één applicatie per server”-benadering kunnen verslaan en toch geld kunnen besparen – waarmee wordt aangetoond dat het voorbeeld van eieren en manden misleidend is en in dit scenario niet van toepassing is. Er zou weinig huiver moeten zijn om op basis van deze factoren rechtstreeks over te stappen van een traditionele omgeving naar een gevirtualiseerde.
Opgemerkt dient te worden dat virtualisatie vervolgens de betrouwbaarheid van traditionele commodity-hardware kan uitbreiden door mainframe-achtige failover-functies te bieden die verder gaan dan wat niet-gevirtualiseerde platforms kunnen bieden. Dit brengt commodity-hardware steviger op één lijn met de grotere, duurdere RISC-platforms. Deze functies kunnen een extreem niveau van bescherming bieden, maar gaan vaak verder dan wat passend is voor IT-afdelingen die voor het eerst migreren van een verouderde hardware-serveromgeving zonder failover. Hoge beschikbaarheid is een uitstekende functie, maar is vaak kostbaar en zeer vaak onnodig, vooral nu bedrijven, zoals we hebben gezien, overstappen van relatief onbetrouwbare omgevingen in het verleden naar betrouwbaardere omgevingen vandaag de dag. Aangezien we de betrouwbaarheid al hebben verhoogd boven wat in het verleden als noodzakelijk werd beschouwd, is de kans zeer groot dat een extreme sprong in betrouwbaarheid nu niet nodig is, maar vanwege de grote daling van de kosten van hoge beschikbaarheid is het heel goed mogelijk dat het kostentechnisch gerechtvaardigd zal zijn waar dat voorheen niet het geval kon zijn.
In dezelfde lijn wordt virtualisatie vaak gevreesd omdat het wordt gezien als een nieuwe, onbewezen technologie. Dit is zeker onjuist, maar er bestaat een dergelijke indruk in het segment van het kleinbedrijf en de commodity-servers. In werkelijkheid werd virtualisatie echter voor het eerst geïntroduceerd door IBM in de jaren zestig en is het sindsdien een steunpilaar geweest van high-end mainframes en RISC-servers – die systemen die de beste betrouwbaarheid vereisen. In het segment van de commodity-servers was virtualisatie een grotere technische uitdaging en duurde het zeer lang voordat het efficiënt genoeg geïmplementeerd kon worden om het effectief bruikbaar te maken in de praktijk. Maar zelfs in het segment van de commodity-servers is virtualisatie sinds eind jaren negentig beschikbaar en is het vandaag de dag dus ongeveer vijftien jaar oud, wat ruimschoots voorbij het punt is van een opkomende technologie – in de wereld van de IT is het ronduit eerbiedwaardig. Virtualisatie op commodity-platforms is een volwassen vakgebied met diverse zeer gerespecteerde, uiterst geavanceerde leveranciers en producten. Het gebruik van virtualisatie als standaard voor alle of vrijwel alle serverapplicaties is een allang gevestigd en geaccepteerd “enterprise-patroon” en een patroon dat nu gemakkelijk kan worden overgenomen door bedrijven van elke omvang.
Virtualisatie is, misschien contra-intuïtief, in werkelijkheid een zeer cruciaal onderdeel van een betrouwbaarheidsstrategie. In plaats van risico toe te voegen, kan virtualisatie vrijwel worden benaderd als een platform voor risicobeperking – een gereedschapskist voor het verhogen van de betrouwbaarheid van uw computerplatforms via vele wegen.
