Linux, virtualizare si cloud

Sistemul de operare Linux este un “multitool” foarte versatil, potrivit pentru orice situatie de la a deservi un mic senzor pana la executa sarcini complexe pe un supercomputer. In mediul enterprise, Linux este folosit atat on premises, cat si in cloud. Cloud-ul este o tehnologie adoptata de catre orice business modern care vrea sa tina pasul cu cerintele pietei in care activeaza. Insa nu toata lumea stie ca dedesubturile ecosistemelor cloud sunt alimentate de Linux, datorita fiabilitatii sale si a scalabilitatii masive de care da dovada.

Linux este absolut vital pentru sisteme precum servere de web, de fisiere sau de email. Sistemele Linux sunt astazi printre cele mai folosite medii de virtualizare datorita stabilitatii sale si a abilitatii de a rula masini virtuale sau workload-uri.

Linux si virtualizarea

Masinile virtuale pot rula sisteme de operare diferite pe un singur server fizic si Linux este folosit in acest sens pe scala masiva in mediile cloud. Un server care gazduieste mai multe masini virtuale se numeste hipervizor, si hipervizorul poate functiona in doua moduri.

Primul mod se numeste hipervizor “bare metal” sau hipervizor de tip 1. Platforma de virtualizare se instaleaza direct pe hardware-ul serverului fizic si care nu poate oferi decat functii specifice unui mediu de virtualizare. Toate masinile virtuale au un mod “mai direct” de a accesa hardware-ul gestionat de hipervizor si nu au nevoie de a fi intermediate de un alt sistem de operare. Aceste aspecte creeaza o platforma de virtualizare foarte performanta care poate fi folosita fara probleme intr-un mediu de productie ca un datacenter sau reteaua unui furnizor de servicii cloud. VMware ESXi, KVM si XEN sunt exemple de astfel de hipervizoare bazate pe Linux.

Al doilea mod de functionare pentru un hipervizor implica instalarea unui sistem de operare obisnuit si a unei aplicatii de virtualizare deasupra acestuia. Un astfel de hipervizor poarta numele de hipervizor de tip 2. Sistemul de operare aloca resurse hardware aplicatiei de virtualizare care la randul ei ofera aceste resurse masinilor virtuale. Performantele oferite sunt mai reduse, de aceea use case-urile pentru acest hipervizor sunt indreptate in zona de testare si de sandboxing a aplicatiilor, si mai putin catre mediile live de productie.

VM-urile (virtual machines) pot fi folosite la multe lucruri, care in mod normal ar necesita doua sau mai multe servere fizice: testare aplicatiilor fara a afecta functionarea altor software-uri, rularea unor aplicatii legacy sau chiar sisteme de operare precum Windows XP peste un Linux Ubuntu (de exemplu, pentru bancomate 🙂 ), totul fiind izolat pentru a tine la distanta posibilele situatii de infectare cu malware.

Multe sisteme conectate la Internet precum servere web si de aplicatii functioneaza adesea ca un punct central al retelei unei organizatii si probabil Linux este cea mai populara alegere de sistem de operare pentru a indeplini acest scop. Formatele de virtualizare suportate de Linux sunt multe si variate printre acestea numarandu-se si: ova, ovf, imagini de containere precum Docker, fisiere json sau yaml.

Linux si cloud

Google Cloud Platform, Microsoft Azure si Amazon Web Services sunt furnizori de servicii de cloud care isi contruiesc infrastructura folosind sisteme de tip Linux. Serviciile oferite catre clienti sunt in general de forma masinilor virtuale care pot oferi servicii online precum servere web, servere de email, servere de fisiere, load balancer-e precum a distribui traficul si servere de DNS. Linux poate gazdui toate aceste servicii cu mare usurinta, cu o munca de mentenanta redusa, cu o scalabilitate ridicata si cu posibilitate de clustering ceea ce creeaza un mediu cu o inalta disponibilitate care poate satisface si cele mai stricte SLA-uri. Costurile de licentiere scad si ele dramatic intrucat se foloseste software open-source. Masinile virtuale vor avea nevoie si de conectivitate in retea, iar Linux poate fi configurat astfel incat sa se conformeze fiecarui scenariu: placa de retea in modul bridge, in modul NAT, creare unui tunel IPsec intre instanta din cloud si reteaua on premises, etc. Utilizarea unei instante de masina virtuala in cloud reduce costurile initiale (CAPEX – capital expenditure) asociate cu crearea infrastructurii de virtualizare: achizitionarea serverelor, a software-ului de virtualizare, adaugarea de resurse hardware pentru a acomoda noi cerinte (CPU, RAM, HDD) si crearea retelei de date pentru a oferi conectivitate la intranet si in Internet. Apoi sunt reduse si costurile care tin de intretinerea acestei infrastructuri de virtualizare (OPEX – operational expenditure): costurile cu personalul necesar pentru a opera serverele si cu operatiunile de mentenanta. Clientii unui furnizor de cloud poate rula astfel masini virtuale cu resurse semnificativ mai mari decat un server gazduit in datacenter-ul local la o fractiune din costul asociat unei astfel de investitii. Totul datorandu-se intr-o buna masura si Linux-ului.

Folosirea liniei de comanda si a uneltelor de automatizare, precum si versatilitatea si posibilitatea de a configura fiecare aspect din sistemul de operare si a crea distributii proprii de Linux face din acest sistem de operare alegerea normala pentru a dezvolta medii de virtualizare atat on premises, cat si in infrastructurile marilor furnizori de servicii cloud.

Mihai Dumitrascu, Sr Systems Engineer