Virtuelle æg og kurve
I samtaler med IT-fagfolk i små virksomheder er en af de vigtigste faktorer for tøven med at implementere virtualisering det, der beskrives som “læg ikke alle æg i én kurv”.
Jeg kan godt se, hvor denne bekymring opstår. Virtualisering giver mulighed for, at mange gæsteoperativsystemer kan indeholdes i et enkelt fysisk system, som i tilfælde af en hardwarefejl får alle gæstesystemer, der bor på det, til at fejle sammen, alle på én gang. Dette lyder slemt, men måske er det ikke så slemt, som vi umiddelbart ville formode.
Ideen med æg og kurve-idiomet er, at vi ikke bør sætte alle vores ressourcer på spil på samme tid. Dette anvendes generelt på investering og opfordrer investorer til at diversificere og investere i mange forskellige virksomheder og typer af værdipapirer som obligationer, aktier, fonde og råvarer. I tilfældet med æg (eller penge) taler vi om en udskiftelig råvare. Et æg er lige så godt som et andet. Et sæt æg er naturligt redundante.
Hvis vi har et dusin æg og knækker seks, kan vi stadig lave en omelet, måske en mindre, men vi kan stadig spise. At spise en mindre omelet er sandsynligvis næsten lige så tilfredsstillende som en større – vi sulter under ingen omstændigheder. At lægge vores allerede redundante æg i flere kurve giver os mulighed for at sprede vores risiko. Ja, at bære to kurve betyder, at vi har mindre tid til at være opmærksomme på hver enkelt, så det øger risikoen for at tabe nogle af æggene, men reducerer chancerne for at tabe alle æggene. I tilfældet med æg, et klogt forslag. Ligeledes, en smart måde at forberede sig til sin pension på.
Denne teori, fordi den gentages som et idiom uden omhyggelig analyse eller korrekt forståelse, anvendes derefter på ikke-relaterede områder såsom server-virtualisering. Servere er imidlertid ikke som æg. Servere, især i mindre virksomheder, er sjældent udskiftelige råvarer, hvor det at have seks fungerende i stedet for de sædvanlige tolv er godt nok. Typisk spiller servere hver en unik rolle og er alle relativt kritiske for virksomhedens funktion. Hvis en server ikke er kritisk, er det usandsynligt, at den kan retfærdiggøre omkostningerne ved at anskaffe og vedligeholde sig selv i første omgang, og ville sandsynligvis ikke eksistere. Når servere er udskiftelige, såsom i en stor, tilstandsløs webfarm eller beregningsklynge, er de konfigureret som sådan som et middel til at udvide kapaciteten ud over en enkelt fysisk kasse og falder dermed uden for rammerne af denne diskussion.
IT-tjenester i en virksomhed er normalt, i hvert fald til en vis grad, en "kædeafhængighed". Det vil sige, de er indbyrdes afhængige, og tabet af en enkelt tjeneste kan påvirke andre tjenester enten fordi de er teknisk indbyrdes afhængige (såsom et forretningskritisk program, der er afhængigt af en database) eller fordi de er arbejdsgangsafhængige (såsom en kontormedarbejder, der har brug for, at filserveren fungerer for at levere en fil, som han skal redigere med oplysninger fra en e-mail, mens han diskuterer ændringerne over telefon eller instant messenger). I disse tilfælde kan tabet af en enkelt nøgletjeneste såsom e-mail, netværksgodkendelse eller filtjenester skabe et uforholdsmæssigt stort tab af arbejdsevne. Hvis der er ti nøgletjenester og én går ned, falder virksomhedens produktivitet fra et IT-tjenesteperspektiv sandsynligvis med langt mere end ti procent, muligvis nær hundrede procent i ekstreme tilfælde. Dette er ikke altid sandt; i nogle unikke tilfælde er medarbejdere i stand til effektivt at "arbejde udenom" en mistet tjeneste, men dette er meget ualmindeligt. Selv hvis folk kan forblive arbejdende, er de sandsynligvis langt mindre produktive end normalt.
Når vi arbejder med fysiske servere, repræsenterer hver server sit eget fejlpunkt. Så hvis vi har ti servere, har vi ti gange større sandsynlighed for udfald end hvis vi kun havde én af de samme servere. Hver server, vi tilføjer, medbringer sin egen risiko. Hvis hvert fejl har en udfaldsfaktor på 2,5 – det vil sige finansielt påvirke virksomheden med fem og tyve procent af omsætningen i, lad os sige, én dag – er vores samlede gennemsnitlige påvirkning over et årti svarende til to og en halv totale nedetidstilfælde. Jeg bruger konceptet om faktorer og gennemsnit her for at gøre dette nemt; det er ikke nødvendigt at bestemme længden af et gennemsnitligt udfald eller virkningen af et gennemsnitligt udfald, da vi kun behøver at bestemme relativ påvirkning i dette tilfælde for at sammenligne scenarierne. Det er blot et middel til at sammenligne den kumulative finansielle nedetidspåvirkning af én hændelsestype sammenlignet med en anden uden at behøve specifikke tal – dette hjælper dig ikke med at bestemme, hvad dit forbrug bør være, blot relativ pålidelighed.
Med virtualisering har vi den åbenlyse evne til at konsolidere. I dette eksempel antager vi, at vi kan sammenlægge alle disse ti eksisterende servere til én enkelt server. Når vi gør dette, udløser vi ofte "alle æg i én kurv"-reaktionen. Men hvis vi kører en risikoanalyse, vil vi se, at dette normalt bare er frygt og usikkerhed og ikke en matematisk understøttet risiko. Hvis vi antager de samme risici som i eksemplet ovenfor, vil vores enkelt server i gennemsnit kun pådrage sig ét samlet nedetidstilfælde, én gang pr. årti.
Sammenlign dette med det første eksempel, som gav skader svarende til to og en halv totale nedetidstilfælde – risikoen ved den virtualiserede, konsoliderede løsning er kun fyrre procent af den traditionelle løsnings risiko.
Husk nu, at dette er baseret på antagelsen om, at det at miste nogle tjenester betyder et finansielt tab, der er større end den strenge værdi af den mistede tjeneste, hvilket næsten altid er tilfældet. Selv hvis den mistede tjeneste ikke er mere end tabet af en individuel tjeneste, er vi kun på break-even og behøver ikke bekymre os. I sjældne tilfælde kan påvirkningen fra at miste et enkelt system være mindre end dets "andel af kagen", normalt fordi folk er fleksible og kan arbejde uden om det fejlede system – som hvis instant messaging fejler og folk simpelthen skifter til at bruge e-mail, indtil instant messaging er gendannet, men disse tilfælde er sjældne og er normalt isoleret til et par systemer ud af mange, hvor flertallet af systemer, som ERP, CRM og e-mail, har uforholdsmæssigt store påvirkninger i tilfælde af udfald.
Så det vi ser her er, at under normale omstændigheder vil det at flytte ti tjenester fra ti servere til ti tjenester på én server generelt sænke vores risiko, ikke øge den – i direkte modsætning til "æg i en kurv"-teorien. Og dette er udelukkende fra et hardwarefejlsperspektiv. Konsolidering tilbyder dog flere andre vigtige pålidelighedsfaktorer, der kan have en betydelig indvirkning på vores case study.
Med konsolidering reducerer vi mængden af hardware, der skal overvåges og administreres af IT-afdelingen. Færre servere betyder, at der kan bruges mere tid og opmærksomhed på dem, der forbliver. Mere opmærksomhed betyder en bedre chance for at opdage problemer tidligt og flere muligheder for at have reservedele på hånden. Bedre overvågning og vedligeholdelse fører til bedre pålidelighed.
Den muligvis vigtigste faktor med konsolidering er dog, at der er betydelige omkostningsbesparelser, og dette kan, hvis det gribes korrekt an, give muligheder for forbedret pålidelighed. Med den dramatiske reduktion i de samlede omkostninger til servere kan det være fristende at fortsætte med at holde budgetterne stramme og forsøge rent at udnytte omkostningsbesparelserne direkte. Forståeligt og for nogle virksomheder kan dette være den rette tilgang. Men det er ikke den tilgang, jeg ville anbefale, når man kæmper mod forestillingen om æg og kurve.
I stedet kan man ved at anvende en mere moderat tilgang, der bevarer betydelige omkostningsbesparelser, men stadig bruger relativt mere på en enkelt server, anskaffe en højere-ende (læs: mere pålidelig) server, bruge bedre dele, have reservedele på stedet osv. Omkostningsbesparelserne ved virtualisering kan ofte direkte omdannes til øget pålidelighed, hvilket yderligere forskyver ligningen til fordel for enkelt-server-tilgangen.
Som jeg sagde i en anden artikel, er ét murstenshus mere tilbøjeligt til at overleve en storm end enten ét eller to halmhuse. At have mere af noget gør det ikke nødvendigvis til det mere pålidelige valg.
Disse fordele stammer udelukkende fra konsolideringsaspektet af virtualisering og ikke fra virtualiseringen i sig selv. Virtualisering giver udvidede risikoafbødende funktioner separat. System-imaging og hurtig gendannelse, såvel som gendannelse til anden hardware, er store fordele ved de fleste virtualiseringsplatforme. Dette kan spille en vigtig rolle i en katastrofegendannelsesstrategi.
Selvfølgelig er alle disse koncepter udelukkende for at demonstrere, at enkelt-boks-virtualisering og konsolidering kan slå den gamle "én app til én server"-tilgang og stadig spare penge – og vise, at eksemplet med æg og kurve er vildledende og ikke gælder i dette scenarie. Der bør være ringe tøven med at flytte fra et traditionelt miljø direkte til et virtualiseret baseret på disse faktorer.
Det bør bemærkes, at virtualisering derefter kan udvide pålideligheden af traditionel commodity-hardware og tilbyde mainframe-lignende failover-funktioner, der er ud over hvad ikke-virtualiserede platforme er i stand til at tilbyde. Dette bringer commodity-hardware tættere på linje med de større, dyrere RISC-platforme. Disse funktioner kan bringe et ekstremt beskyttelsesniveau, men er ofte ud over hvad der er passende for IT-afdelinger, der i første omgang migrerer fra et ikke-failover, legacy hardware-servermiljø. Høj tilgængelighed er en fantastisk funktion, men er ofte kostbar og meget ofte unødvendig, især når virksomheder bevæger sig fra, som vi har set, relativt upålidelige miljøer i fortiden til mere pålidelige miljøer i dag. I betragtning af at vi allerede har øget pålideligheden ud over hvad der blev anset for nødvendigt i fortiden, er der en meget god chance for, at et ekstremt spring i pålidelighed ikke er nødvendigt nu, men på grund af det store fald i omkostningerne ved høj tilgængelighed er det ganske muligt, at det vil være omkostningsbegrundet, hvor det tidligere ikke kunne det.
I samme ånd frygtes virtualisering ofte, fordi det ses som en ny, uprøvet teknologi. Dette er bestemt ikke sandt, men der er et sådant indtryk i den lille virksomhed og commodity-server-segmentet. I virkeligheden blev virtualisering første gang introduceret af IBM i 1960'erne, og siden da har det været et fast element i high-end mainframe- og RISC-servere – de systemer, der kræver den bedste pålidelighed. I commodity-server-segmentet var virtualisering en større teknisk udfordring og tog meget lang tid, før det kunne implementeres effektivt nok til at gøre det effektivt at bruge i den virkelige verden. Men selv i commodity-server-segmentet har virtualisering været tilgængeligt siden slutningen af 1990'erne og er dermed cirka femten år gammelt i dag, hvilket er langt forbi det punkt for at være en spirende teknologi – i IT-verdenen er det positivt ærværdigt. Commodity-platform-virtualisering er et modent felt med flere meget respekterede, ekstremt avancerede leverandører og produkter. Brugen af virtualisering som standard for alle eller næsten alle serverprogrammer er et langvarigt og anerkendt "enterprise-mønster" og et, som nu nemt kan adopteres af virksomheder af enhver og alle størrelser.
Virtualisering er måske modstridende intuitivt set faktisk en meget kritisk komponent i en pålidelighedsstrategi. I stedet for at tilføje risiko kan virtualisering nærmest tilgås som en risikoafbødende platform – et værktøjssæt til at øge pålideligheden af dine computerplatforme gennem mange veje.
