Înainte de apariția mantrei “cloud-ului” o alta începuse să domine exasperant lumea IT-ului. E vorba de virtualizare. La un moment dat serverele începuseră să devină mult prea puternice pentru lucrurile pe care le aveau de făcut. Într-un mediu enterprise tipic există măcar patru-cinci servere, din mai multe motive, care țin și de recomandările producătorilor de software folosite și de prudența administratorilor (dacă cineva îmi sparge serverul de web măcar sa funcționeze mailul) și de considerente obiective ( pentru unele aplicații folosesc Windows Server, pentru altele Linux). Pe măsură ce puterea de calcul a acestora a crescut, mașinile respective au început să fie subutilizate.
Tehnologia virtualizării nu era nouă nici acum zece ani, pentru că este extrem de utilă dezvoltatorilor de software, permițîndu-le să-și testeze aplicațiile pe platforme diferite fără să aibă la dispoziție hardware-ul necesar. Pentru platformele de tip PC, Vmware devenise de mult leader de facto, astfel căpătând și un avans în zona serverelor bazate pe arhitectura x86.
Aproape simultan, toți producătorii de software au inceput să dezvolte tehnologii de virtualizare , în același timp Intel si AMD introducând suportul pentru virtualizare hardware în jurul lui 2006.
În afară de folosirea resurselor, virtualizarea are câteva avantaje: blocarea unei mașini, de exemplu, se poate rezolva ușor cu un restart din Hypervisor, mutarea ei pe o altă mașină durează exact cât copierea fișierului respectiv, ba, dacă e vorba de un storage care poate fi accesat pe mai multe căi, nici măcar atât. Mai mult, driverele prezentate sistemului de operare (guest) sunt standardizate, deci nu vom avea parte de incompatibilități hardware la mutarea pe un alt host.
Important este ca sistemul de operare de bază , hypervizorul, să meargă bine.
Lucru nu tocmai simplu, dar realizabil, pentru că ideea este ca acesta să fie minimal, oferind doar apelurile de sistem necesare pentru a emula un PC. Majoritatea soluțiilor de pe piață folosesc kernel-ul Linux, care ocupă de regulă în jurul a 2 Mb fără module, fiind deci mic și testat suficient. Desigur că soluția nu era convenabilă și pentru Microsoft, care au fost astfel nevoiți să dezvolte propriul hypervizor, care s-a dovedit destul de reușit. Insă această provocare nu a fost singura, pentru că nu poți concura pe piața virtualizării oferind performanțe bune numai pentru host-uri care rulează Windows. Așa a ajuns Microsoft să contribuie cu module specifice la dezvoltarea kernelului Linux, și deci, vrând-nevrând, să scrie cod open-source.
O dată cu apariția “cloud-ului”, virtualizarea nu a dispărut, ba, dimpotrivă, se simte foarte bine, însă a pierdut oarecum prim-planul mediatic deoarece nu se mai adresează publicului larg, companiile, ci mai degrabă marilor provideri. “Directiva” e acum nu să virtualizăm toate serverele pe o singură mașină, ci să le mutăm la provider. Care evident că, din motive de minimizare a investiției, le va virtualiza cumva, dar asta va fi problema lui, nu a noastră.
Dacă stăm să analizăm cu atenție datele problemei, vedem că necesitatea virtualizării serverelor provine de fapt din limitările sistemelor de operare actuale. Un sistem de calcul se proiectează pornind de la scopul final, aplicațiile. Dacă aplicațiile pot rula pe același sistem de operare, de ce am folosi două? Izolare? Da, dar teoretic ar trebui să ne-o poată oferi sistemul de operare. Controlul resurselor? Asta e treaba sistemului de operare dintotdeauna. Ar mai fi problema aplicațiilor scrise pentru sisteme de operare diferite, dar la nivel teoretic se poate imagina și aici un sistem de operare care să pună la dispoziția aplicației apelurile de sistem specifice, în definitiv acestea sunt doar secvențe de cod care pot fi rulate. E complicat, pentru că apelurile de sistem de obicei presupun accesul exclusiv la hardware, deci vor trebui cumva arbitrate, dar e posibil, la nivel teoretic.
Problema e că acel sistem de operare încă nu există, și, chiar dacă ar apărea mâine, ar trebui testat destulă vreme pentru a fi adoptat, pentru că vorbim de aplicații critice, de care depinde funcționarea unei companii, zonă în care nimeni nu vrea să riște. Pentru că însă atât Windows cât și diversele forme de *nix au ajuns la o maturitate de la care nu se întrevăd alte direcții de evoluție, eu personal mă aștept la dezvoltări în acest domeniu.
Există deja astfel de sisteme. Spre exemplu, foarte la modă sunt așa numitele engineered systems. Oracle este liderul plutonului in opinia mea. Mă refer în particular la SuperCluster, care incorporeaza in aceeasi unitate fizică pe lângă multiprocesoarele de tip SPARC și sistemul de discuri. Comunicarea intre componentele hardware ale SuperCluster-ului se face pe baza unei magistrale de tehnologie InfiniBand, cu viteze de 40GB/s (adio fibra optica). Echipate cu sisteme de operare Solaris 10 si 11, virtualizarea este o briză. In plus, pe aceste platforme, Oracle deschide cu Oracle Clusterware ușa multiplelor soluții de High-Availability, atât de necesare în ziua de azi.
Însă noul copil-teribil al vremurilor noastre este compania VCE, lansata acum trei ani ca un joint-venture intre Cisco Systems si EMC. Contribuții semnificative la lansarea produselor VCE, numite Vblock, au adus si VMWare (sistemul de operare) si Intel (procesoare).
Făra îndoială, sistemele integrate, la cheie, au viitorul in față. Performanțele sunt remarcabile, prețurile unora dintre ele rămânând prohibitiv companiilor mici si mijlocii. Însa organizațiile mari nu au de ales, atunci când e musai să ruleze aplicații de gestiune integrată (ERP). Spre exemplu, produsele SAP (ECC, BW) se potrivesc de minune pe astfel de platforme hardware.
„virtualizarea este o briză”
Virtualization is a breeze. Merge în englezeşte, nu şi în româneşte. Felicitări, tocmai aţi inventat o nouă expresie! Face sens, nu?
Despre tema principală a articolului: cu cât se vorbeşte mai mult despre o tehnologie, cu atât mai sigur e că e de fapt doar o modă, care va trece. Îşi mai aduce aminte cineva despre netbook-uri?
Ca multe alte lucruri pe lumea asta, problema se va rezuma în cele din urmă la bani. Și nu e vorba de costuri, pentru că bani de investiții se găsesc întotdeauna, ci de potențialele venituri. Adică orice dezvoltare în acest domeniu va trebui să aibă la bază răspunsul la o întrebare simplă: ”și cum ar putea ieși niște bani din asta?”
Până și ascensiunea Linuxului (cel puțin distribuțiile Red Hat / Fedora) tot asta a avut la bază, puteai face diverse servere și routere mult mai ieftin.
@Harald – evident, investiția se amortizează relativ rapid. Să ne gândim că prin virtualizare numărul licențelor pentru funcțtionarea sistemului de operare se micșorează, se salvează spațiu intr-un centru de date (un sistem fizic este prin virtualizare gazdă a mai multe servere virtuale), se salvează energie pentru alimentarea hardware-ului, numărul de evenimente de întreținere care presupune oprirea aplicațiilor se micșorează (pentru că mai totul poate fi executat online, există high-availability), se salvează timp pentru construcțtia alicațiilor de test, prin simpla copiere a aplicației de productie, administrată de același hardware. Fără îndoială, cea mai interesantă arhitectură este cea având aplicații rulând distribuit pe un grup de astfel de servere (cel puțtin trei) – cunoscute sub denumirea de noduri. Exemplu, o aplicație SAP pe baza de date Oracle RAC.