Virtualisering som ett standardmönster
Virtualisering som ett företagskoncept är nästan lika gammalt som affärsdatabehandlingen själv. Värdet av att abstrahera databehandling från den nakna hårdvaran insågs mycket tidigt, och nästan så snart datorer hade kraften att hantera abstraktionsprocessen inleddes arbetet med att implementera virtualisering ungefär som vi känner den idag.
Det tidigaste allmänt accepterade arbetet med virtualisering inleddes 1964 av utvecklarna av operativsystemet IBM CP-40 för stordatorn IBM System/360. Detta var det första verkliga försöket med kommersiell virtualisering, och koden och designen från denna tidiga virtualiseringsplattform har idag förts vidare till IBM:s VM-plattform som har använts kontinuerligt sedan 1972 som ett virtualiseringslager för IBM:s stordatorfamiljer genom decennierna. Sedan IBM först introducerade virtualisering har vi sett företagssystem anamma detta mönster av hårdvaruabstraktion nästan universellt. Många storskaliga datorsystem, minidatorer och stordatorer, övergick till virtualisering under 1970-talet, medan merparten av alla återstående företagssystem gjorde detta, allteftersom kraften och tekniken blev tillgänglig för dem, under 1980- och 1990-talen.
Den enda anmärkningsvärda eftersläntraren när det gäller virtualisering för företagsdatabehandling var Intels IA32-plattform (även kallad x86), som saknade de avancerade hårdvaruresurser som krävdes för att implementera effektiv virtualisering fram till tillkomsten av den utökade 64-bitarsplattformen AMD64, och även då endast med specifik ny teknik. När detta väl hade introducerats var samma högpresterande, högst säkra virtualisering tillgänglig över hela linjen på alla större plattformar för affärsdatabehandling.
Eftersom billiga x86-plattformar saknade meningsfull virtualisering (utöver i allmänhet lågpresterande mjukvaruvirtualisering och nischade högpresterande paravirtualiseringsplattformar) fram till mitten av 2000-talet, lämnade detta virtualisering nästan helt utanför bordet för den stora majoriteten av små och medelstora företag. Detta har lett till att många som ägnar sig åt SMB-segmentet är omedvetna om att virtualisering är en väletablerad, mogen teknikuppsättning som för länge sedan etablerade sig som det de facto-mönster för affärsserverberäkning. Användningen av hårdvaruabstraktion är nästan allestädes närvarande inom företagsdatabehandling, där många av de största, mest stabila plattformarna inte har något alternativ, åtminstone inget officiellt stött alternativ, för att köra system “på bar metall.”
Det finns specifika nischer där behovet av att undvika hårdvaruabstraktion genom virtualisering inte är tillrådligt, men dessa är extremt sällsynta, särskilt på SMB-marknaden. Typiska system som behöver vara icke-virtualiserade inkluderar latenskänsliga system (såsom handelsplattformar med låg latens) och kombinerade arbetsbelastningar över flera servrar såsom HPC-beräkningskluster, där det primära målet är prestanda framför stabilitet och användbarhet. Inget av dessa är vanligt inom SMB.
Virtualisering erbjuder många fördelar. Ofta, inom SMB där virtualisering är mindre väntat, antas det att virtualiseringens mål är konsolidering, där kostnadsbesparingar i stor skala kan uppstå, eller att tillhandahålla nya sätt att åstadkomma hög tillgänglighet. Båda dessa är utmärkta alternativ som kan hjälpa specifika organisationer och situationer, men inget av dem är den underliggande motiveringen för virtualisering. Vi kan konsolidera och uppnå HA på andra sätt vid behov. Virtualisering förser oss helt enkelt med ett brett utbud av alternativ inom dessa specifika områden.
Många av användningsområdena för virtualisering är artefakter av ekosystemet, såsom en potentiell minskning av licenskostnader. Dessa typer av fördelar är inte inneboende fördelar med virtualisering, men de existerar och kan inte förbises i en utvärdering i verkligheten. Inte alla fördelar gäller alla hypervisorer eller virtualiseringsplattformar, men nästan alla gäller över hela linjen. Hårdvaruabstraktion är ett koncept, inte en implementering, så hur den utnyttjas kommer att variera. Konceptuellt är det mycket viktigt att abstrahera bort hårdvara, vare sig på lagringslagret, på beräkningslagret och så vidare, eftersom det underlättar hantering, förbättrar tillförlitligheten och påskyndar utvecklingen.
Här är några av fördelarna med virtualisering. Det är viktigt att notera att, utöver specifika saker såsom konsolidering och hög tillgänglighet, gäller nästan alla dessa fördelar inte bara virtualisering på en enskild hårdvarunod utan för en enskild arbetsbelastning på den noden.
- Minskad mänsklig insats och påverkan i samband med hårdvaruförändringar, haverier, modifieringar, expansion och så vidare
- Lagringsinkapsling för en förenklad process för säkerhetskopiering/återställning, även med olikartade hårdvarumål
- Ögonblicksavbildning av hela systemet för skydd vid ändringshantering
- Enkel arkivering vid utrangering eller avveckling
- Bättre övervakningsmöjligheter, som lägger till out-of-band-hantering även på hårdvaruplattformar som inte erbjuder detta inbyggt
- Hårdvaruagnosticism möjliggör ingen leverantörsinlåsning eftersom operativsystemen tror att hypervisorn är hårdvaran snarare än hårdvaran själv
- Enkel segmentering av arbetsbelastningar
- Enkel konsolidering med bibehållen segmentering av arbetsbelastningar
- Kraftigt förbättrat resursutnyttjande
- Hårdvaruabstraktion skapar en avsevärt realiserad möjlighet till förbättrad systemprestanda och stabilitet samtidigt som kraven sänks på operativsystemet och drivrutinsutvecklarna för klientoperativsystem
- Förenklad driftsättning av nya och varierade arbetsbelastningar
- Enkel övergång från en miljö med en enda plattform till en värdmiljö med flera plattformar, vilket sedan möjliggör tillägg av alternativ såsom molndriftsättningar eller plattformssystem med hög tillgänglighet
- Omfördelning av arbetsbelastningar för att möjliggöra enkel fysisk skalning
I dagens datormiljöer bör serversidans arbetsbelastningar universellt virtualiseras av dessa skäl. Fördelarna med virtualisering är enorma medan nackdelarna är få och triviala. De två vanliga scenarierna där virtualisering fortfarande behöver undvikas är i situationer där det finns specialhårdvara som måste användas direkt på servern (detta har blivit mycket sällsynt idag, men förekommer fortfarande då och då) och system med extremt låg latens där latenser under en millisekund är kritiska. Det andra av dessa är vanligt endast i extremt nischade affärssituationer såsom handelssystem för investeringar med låg latens. System med dessa krav kommer också att ha otroliga nätverks- och geolokaliseringskrav såsom Infiniband med låg latens med fiber till handelsgolvet på mindre än åtta kilometer.
Vissa kommer att påpeka att högpresterande beräkningskluster inte använder virtualisering, men detta är en gråzon eftersom all form av klustring i själva verket är en form av virtualisering. Det är helt enkelt så att detta är virtualisering på “supersystemnivå” istället för att vara strikt på systemnivå.
Det är säkert att anta att varje scenario du kan hamna i där du inte bör använda virtualisering kommer du att känna till bortom allt tvivel och kommer att kunna empiriskt demonstrera varför virtualisering antingen är fysiskt eller praktiskt omöjlig. I alla övriga fall, virtualisera. Virtualisera om du bara har en enda fysisk server och en enda fysisk arbetsbelastning och bara en enda användare. Virtualisera om du är ett Fortune 100-företag med de mest krävande arbetsbelastningarna. Och virtualisera om du är vem som helst däremellan. Storlek är inte en faktor i virtualisering; vi virtualiserar av en önskan att ha en mer effektiv och stabil datormiljö både idag och in i framtiden.
