Neke od glavnih prednosti virtualizacije na serverima jesu balansiranje pri opterećenju servera, izbegavanje raspada sistema prilikom takvog opterećenja, bolje iskorišćenje računarske snage servera, smanjenje računa za struju i troškova kao i sveukupna veća efikasnost samog data centra i resursa.
Serverska virtualizacija je tehnologija koja je jednostavna u samom konceptu, lako primenjiva i donosi značajno unapređenje u radu svakog data centra.
Šta ako bi smo, na primer, umesto da koristimo jedan operativni sistem i jednu instanciju aplikacije po serveru, zapravo mogli da dodamo dodatni software kao vrstu sloja ispod svega, software poznatiji kao hipervizor (hypervisor) koji nam omogućava pokretanje više operativnih sisitema simultano uz kontrolu opterećenja na jednom fizičkom serveru?
Da, to je cela ideja iza priče o virtualizaciji i na ovu ideju došli su ljudi iz IBM-a još 60-tih godina prošlog veka. Ona je kasnije popularizovama od strane VMware koji je ovu ideju doneo na x86 bazirane servere ranih 2000-tih. Nakon toga, nastali su i drugi vendori i proizvođači software-a za virtualizaciju i nastala je čitava industrija za napredno upravljanje virtualizacijom kao i alati za uređivanje, pomeranje i selidbu i postavku virtualnih mašina (VM-ova).
Pre serverske virtualizacije, data centri kompanija bili su daleko neefikasniji, ne samo zbog većih računa za struju, nego i zbog robusnog posla preseljavanja podataka sa fizičkog servera na drugi server, gotovo dvostruko više neiskorišćenim resursima, brzinom isporuke servisa na datim računarima itd.
Virtualizacija je sve to promenila, danas govoto da nema kompanije ili korporacije koja ne koristi virtualizaciju u potpunosti.
Proces virtualizacije je doneo veliki benefit upravo zato što omogućava da server pokreće više operativnih sistema u isto vreme, moderne aplikacije smeštene u konteinere lako se mogu seliti sa jednog servera na drugi i koriste inače nedodovljno iskorišćenu moć računanja servera na kojem se nalaze.
U današnje vreme sve je više aplikacija koje dodatno iskorišćavaju procese virtualizacije tako što koriste samo mali deo resursa jer se nalaze u konteinerima, gde im je moguće dodeliti željene resurse i izolovati ih u sisitemu. Danas se takvi servisi nazivaju FaaS (funkcionalnost kao servis FaaS).
U oba slučaja, VM prosleđuje kod koji se izvršava na bare metal serverima.
Benefiti virtualizacije servera
Benefiti virtualizacije su mnogobrojni, recimo prva stvar je smanjenje troškova data centra i serverskih operacija, budući da sada jedan fizički server pokreće na desetine virtualnih servera koji imaju svoje OS-ove i ponašaju se kao zasebni računari, dakle smanjenje broja fizičkih servera, smanjenje troškova održavanja hardvera i struje. Bolja iskorišćenost hardware-a na kojem se radi virtualizacija.
Virtualizacija smanjuje i ulaganja u novi hardware jer kada se resursi na nekom serveru oslobode, ostavljaju prostora za postavku novih virtualnih mašina. Resursi na serverima se lakše unapređuju i povećavaju.
Setimo se samo vremena kada se u datacentar dodavao svaki novi servere fizički. To je zahtevalo, pripremu i instalaciju novog servera, zatim fizičko montiranje i postavka servera u okviru data centra, pa instalacija i setup koji su odnosili dosta vremena.
Danas to nije slučaj, za pokretanje novog virtualnog servera sa željenim operativnim sistemom potpuno dostupnim na celoj mreži, traje svega par minuta.
Virtualiazija sa sobom takođe donosi veliku dostupnost, failover sistem, brzinu, skalabilnost, izdržljivost i performanse i naravno, fleksibilnost koja je ključ za unapređene web servisa kakve zahteva današnje vreme.
Kada neki korisnik danas naruči insfrastrukturu kao servis (IaaS) od svoj cloud provajdera, oni započinju sa instalacijom VM-ova na koje dodaju opcije za smeštaj, upravljanje i sigurnost kako bi isporučili uslugu.
Koje vrste virtualizacije servera postoje?
U svetu virtualizacije servera, fizički server se oslovljava kao host i on pokreće operativni sistem. Svaki VM je gost i on pokreće operativni sistem za gosta. Svaki gost je odvojen od ostalih.
- Standardna hypervisor-based virtualizacija je ona kod koje hipervizor ili monitor virtualne mašine (VMM) stoji između OS-a i sloja hardverske kontrole omogućavajuči resurse gostima.
- Para virtualization ili puna virtualizacija modifikuje OS sistem gosta pre instalacije u virtualnu mašinu. Ovo omogućava veće performanse jer hipervizor dozvoljava kontrolu resursa direktno bez emulacije.
- Hardware-assisted virtualizacija takođe pokušava da umanji opterećenje hipervizora, ali to ostvaruje kroz hardware-ske dodatke umesto software-skih rešenja.
- Kod kernel-level virtualizacije, umesto hipervizora, vi pokrećete zasebne Linux kernele za svaki VM. Ovo omogućava lako pokretanje više VM-oma na jednom procesoru, gde drajveri omogućavaju vezu između gost OS-ova i hardware-a.
- Na kraju, sa level ili OS virtualizacijom možete pokrenuti više logički odvojenih VM-om na jednom sistemu ali uz deljenje operativnog sistemskog kernela. Kod ove virtualizacije, sve VM mašine moraju deliti istu kopiju OS-a, ali mogu koristiti dodatni sloj kako bi koristile zasebni gost OS.
Virtualne mašine u poređenju sa kontejnerskom orkestracijom
Dva najpopularnija sistema za kontejnere i orkestrizaciju su Docker i Google’s Kubernetes, koji omogućavaju isporuku i uređivanje kontejnera. Kontejneri su tip fajlova ili okruženja koji sadrže kod koji se može izvršiti i dele zajednički sistemski kernel. Npr. U okviru Docker-a možete naporaviti web sajt koji će se nalaziti u kontejneru iz kojeg se samostalno pokeće i održava, da bi koristio MySQL bazu, npr, potrebno je dodati mu još jedan zaseban MySQL kontejner.
Kontejneri su mnogo manji i skalabilniji od VM-ova zato što ne zahvetaju gost OS. Developeri mogu pokrenuti veliki broj kontejnera na jednom hipervizoru i jedino ograničenje broja bilo i samo u pogledu hardware-a i resursa. Savremeni clould sistemi funkcionišu na principu nodova koji hostuju kontejnere, a sami sistemi zapravo generišu broj radilica koje ih pokreću na osnovu potreba sistema. Broj se može povećati ukoliko je potrebno servirati više korisnika istovremeno i omogućavaju skalabilni rast i dostupnost usluga na maks. nivou.
Naravno i kontejneri imaju svoje slabosti. Kao relatnivno novi način, ne postoji dovoljan broj alata za upravljanje i održavanje ovakvih sistema, ova tehnologija nije dovoljno sazrela i fali joj dodatnih resursa u pogledu baza znanja, alata za lakši rad i razvoja dodatnog software-a. Svakako, tehnologija je sve popularnija i stoji iza velikog broja najpopularnijih servisa na internetu.
Sa VM-ovima, lako možete kontrolisati sistemsko opterećenje tako što ćete prebaciti gost OS na neki drugi ili jači host, ali same host mašine kod bare metal sistema su teže za izmenu hardware-a i upgrade. Sa bare metal serverima, vraćanje mašine u starije stanje je teži zadatak.
Virtual mašine u poređenju sa serverless computing
U standardnom IaaS (Infrastruktura kao servis) cloud okruženju, korisnici prvo zakupljuju VM-ove, prostor za skladištenje podataka, baze i odgovarajuće sigurnosne alate i sisteme upravljanja, onda sve to postavljaju na navedene VM-ove.
Serverless computing je način u kojem developeri samo pišu kod dok cloud provajder vodi brigu oko svega ostalog. U ovom slučaju developeri ne moraju da brinu o serverima, operativnim sistemima, nabavci, osiguravanju i upravljanju resursima. Naravno, sav taj kod se izvršava na stvarnim serverima, ali o čitavom procesu rendanja koda, izvršavanja i serviranja brigu vodi clould provajder.
Umesto klasičnih monolitnih aplikacija, kod je razbijen na manje komande prema potrebnoj funkcionalnosti. Svaki event koji se desi pokreće neki triger, jedan takav serverless servis je – Amazon’s Lambda. Serverless provajderi naplaćuju usluge po broju funkcija.
Kao i kod microservice/container scenarija, serverless computing zaobilazi ograničenje virtualne mašine ili servera i izvršava kod kao u bare metal scenariju. Do ovog trenutka, serverless computing je trenutno još u povoju i malo je alata i podrške za njega.
Budućnost virtualizacije servera
Iako su orkestracija kontejnera kao i serverless computing sve popularniji, realna upotreba serverske virtualizacije je čvrsta i ova tehnologija i dalje pokreće najveći deo tržišta hostinga danas, kada su u pitanju enterprajz sistemi i ozbljini internet servisi. Prema nekim istraživanjima upotreba virtualizacije kod enterprajz software-a ide i do 90%.
Dosta teško je ubediti neke ozbiljne enterprajz kompanije da presele svoje aplikacije sa VM mašina koje rade odlično na tehnologije poput kontejnera ili serverless computing-a. Predviđanja kažu da će dobar deo kompanija još dugo ostati na modelima virtualizacije pre nego što predju na kontejnera koji će omogućavati simultan prelazak sa OS-a na OS itd.
Naravno, treba navesti i činjenicu da dosta agile timova koji pišu kod, predviđaju i serversko orkruženje poput kontejnera i clould solucija. Tako da se može očekivati još veća popularnost orkestracije kontejnera u budućnosti. Ali za sada, VPS serveri i virtualizacija servera ostaju u upotrebi i dodatno se razvijaju.