Cloud computing
Cindea Laurentiu*
*Departamentul de Automatică și Calculatoare,
Universitatea Tehnică din Cluj-Napoca, România
Abstract - "Cloud Computing" este un termen general pentru multimea serviciilor utilizate in cadrul Internet-ului. Acesta le permite companiilor din intreaga lume, precum si tuturor utilizatorilor sa consume resurse, precum o masina virtuala si sa stocheze o aplicatie ca o utilitate, fara a fi nevoie sa construiasca si sa mentina o infrastructura proprie. Tocmai din cauza dificultatii construirii acestei infrastructuri pentru niste probleme comune in cadrul majoritatii companiilor, a aparut nevoia de o utilitate care poate fi folosita in scopuri comune, iar astfel au aparut serviciile oferite prin cloud computing.
-
Introducere
Cloud computing, cunoscut si sub termenul simplificat de "cloud" este o utilitate care ofera servicii si resurse la cerere, de la aplicatii pana la centre de date, servere, suport de stocare al datelor, baze de date, retele, etc.
Aplicatiile traditionale erau complicate si scunpe. Varietatea de hardware si software necesara pentru a rula aceste aplicatii era descurajanta. Era nevoie de o intreaga echipa de experti pentru a instala, configura, testa, rula, securiza si actualiza aplicatiile. Cand se inmulteste acest efort cu un numar mare de aplicatii, se ajunge la un cost si un timp enorm pentru a se ajunge la rezultatele dorite, astfel ca devenea din ce in ce mai greu sa se ajunga la produse finale, mai ales in cazul companiilor mici.
In cadrul "cloud computing" se elimina toate aceste dificultati care vin cu stocarea datelor, pentru ca nu compania care le detine este responsabila de gestionarea software-ului si hardware-ului necesar. Acestea devin responsabilitatea unui furnizor experimentat. Infrastructura distribuita inseamna ca lucreaza ca o utilitate: compania plateste pentru ceea ce are nevoie si primeste un suport fara a fi nevoie de toate eforturile traditionale.
Fig. 1.1
-
Beneficiile „Cloud computing”
Costul - "Cloud computing" elimina costul de a cumpara hardware si software necesare pentru a instala si rula aplicatii in centre de date, precum rack-urile pentru servere, electricitatea, sistemele de racire, si expertii IT care intretin infrastructura. Este un proces mult mai rapid si mai ieftin.
Viteza - Majoritatea serviciilor cloud sunt furnizate la cerere, astfel chiar si volume mari de resurse pot fi furnizate in cateva minute, de obicei doar in cateva secunde prin cateva click-uri cu mouse-ul, oferind companiilor o flexibilitate mare.
Scalarea - Beneficiile "cloud computing" includ abilitatea de a scala foarte elastic. Aceasta inseamna furnizarea corecta a volumului de resurse necesar. De exemplu mai multa sau mai putina putere de procesare, stocare, lungime de banda, exact cat este necesar pentru fiecare locatie geografica in parte.
Productivitatea - Centrele de date gestionate ca si proprietatea companiei care le foloseste necesita o complexa configurare de hardware, software si mult timp consumat. Cloud computing elimina toate aceste necesitati, astfel ca expertii IT ai companiilor se pot concentra pentru a obtine si realiza la timp obiectivele impuse.
Performanta - Cele mai mari servicii de cloud computing ruleaza intr-o retea intinsa in toata lumea in centre de date securizate, care sunt actualizate permanent la cele mai noi generatii de tehnologii. Acestea ofera beneficii incluzand latenta retelelor pentru aplicatii si economii mari la scalare.
Fiabilitate - Cloud computing ofera backup-uri de date, tehnici de recuperare ale datelor si continuitate deoarece datele pot fi replicate in mai multe locatii ale furnizorului.
-
Tipuri de cloud computing
Majoritatea servicilor de cloud computing se impart in 3 mari categorii: infrastructura ca un serviciu(Iaas), platforma ca un serviciu(Paas) si software ca un serviciu(Saas). Acestea sunt numite stiva de cloud computing, deoarece sunt construite una peste cealalta.
Fig. 3.1
Infrastructura ca un serviciu
Aceasta este cea mai de baza categorie a servicilor cloud. Prin IaaS se pote imprumuta o infrastructura IT precum servere si masini virtuale, medii de stocare, retele, sisteme de operare. Furnizorul de IaaS furnizeaza de asemenea o varietate de servicii care acompaniaza componentele mentionate mai sus. Acestea pot include facturi detaliate, monitorizare, log-uri, securitate, load balancing, clustere, stocare, backup, replicare si recuperare de date. De asemenea furnizorii permit personalizarea acestor componente, cum ar fi o implementare specifica utilizatorului pentru load balancing. Utilizatorii de IaaS acceseaza resursele si serviciile printr-o retea WAN, precum Internet si pot instala componentele necesare. De exemplu, utilizatorul se poate loga in platforma IaaS pentru a creea masini virtuale(VMs), sa instaleze sisteme de operare pe acele masini, sa instaleze baze de date, etc. Printre furnizorii populari de IaaS de azi se numara Amazon Web Services(AWS) si Google Cloud Platform(GCP).
Platforma ca un serviciu
Aceasta se refera la serviciul cloud care furnizeaza la cerere un mediu de programare, testare, livrare si gestionare a aplicatiilor software. PaaS este construit pentru a face mai usoara munca dezvoltatorilor de crea aplicatii web sau mobile, fara a-si face griji de setarea si gestionarea infrastructurii de jos(servere, baze de date, etc.). Principalul beneficiu al PaaS este simplitatea si comoditatea utilizatorilor. PaaS ofera ceva mai mult decat infrastructura si alte servicii IT, pe care utilizatorul le poate accesa dintr-un oricare browser web. PaaS ofera access pe un model “per-use-basis”, un model pe care multe companii il prefera si elimina capitalul scump pe care software-ul si hardware-ul traditionale il aduceau. Disponibilitatea serviciului sau elasticitatea pot fi o ingrijorare cu PaaS. Daca un furnizor are un timp in care serviciile nu sunt disponibile sau are intreruperi de infrastructura, acestia pot avea rezultate negative in profitul lor. Schimbarile interne la un produs PaaS pot fi iarasi o problema. De exemplu, daca un furnizor de PaaS decide sa nu mai suporte un anumit limbaj de programare sau opteaza sa utilizeze un set diferit de tool-uri de dezvoltare, impactul asupra utilizatorilor poate fi unul major.
Software ca un serviciu
Aceasta este o metoda de a livra aplicatii software in Internet la cerere. Cu SaaS, furnizorii de SaaS gazduiesc si gestioneaza aplicatiile si infrastuctura de nivel inferior. Utilizatorii se conecteaza la aplicatii utilizand Internet, de obicei folosind browsere web, telefoane sau tablete. Dar Saas poate sa aduca si unele dezavantaje. Companiile de business trebuie sa se bazeze pe un furnizor extern pentru software-ul pe care il folosesc care trebuie sa le pastreze intr-un mediu securizat si sa le asigure un timp continuu de functionare. SaaS este foarte apropiat de ASP(application service provider) care ofera modele de software la comanda. Managementul de gazduire al aplicatiilor este similar cu ASP: Furnizorul gazduieste software-ul clientului si livreaza conturi valabile pentru utilizatorii lui. In modelul de software la comanda al SaaS, furnizorul ofera clientilor acces bazat pe retea la o singura copie a aplicatiei pe care furnizorul a creat-o specific pentru acea distributie. Codul sursa este acelasi pentru toti clientii si cand noi functionalitati sunt create, acestea vor fi disponibile pentru toti. Organizatiile pot integra aplicatiile SaaS folosind API-uri. De obiciei aplicatiile SaaS sunt pentru tehnologiile de business fundamentale, precum email, management de vanzari, management de relatii cu clientul, management de finante, management de resurse umane, etc. Furnizorii de SaaS cei mai populari din ziua de astazi sunt Salesforce, Oracle, SAP, Intuit si Microsoft.
Cloud-uri publice
Cloud-urile publice sunt proprietatea unui furnizor de servicii cloud care livreaza resurse precum servere si medii de stocare de date in Internet. Intr-un cloud public, tot hardware-ul, software-ul si infrastructura sunt gestionate si sunt in proprietatea furnizorului.
Cloud-uri private
Cloud-ul privat se refera la resursele cloud utilizate exclusive doar de o singura organizatie. Acesta poate fi localizat intr-un centru de date privat. Unele companii platesc un furnizor pentru a le gazdui cloud-urile private. Un cloud privat este acela in care serviciile si infrastructura sunt gestionate intr-o retea private.
Cloud-uri hibride
Acestea combina cloud-urile publice si cele private care legate impreuna permit datelor si aplicatiilor sa fie distribuite intre ele. Permitand acest lucru, cloud-urile hibride ofera companiilor o flexibilitate mai buna si mai multe optiuni de dezvoltare.
-
Alocarea resurselor in cloud
Fig. 4.1
Alocarea de resurse este procesul de a asigna resurse disponibile aplicatiilor care au nevoie. Furnizarea de resurse rezolva problema de a permite furnizorilor de servicii sa gestioneze resursele pentru fiecare modul in parte. Alocarea se refera si la integrarea activitatiilor ale furnizorilor cloud pentru a utiliza si aloca resurse in limita unui mediu care gazudieste aplicatiile. Aceasta necesita tipul si volumul de resurse necesare de fiecare aplicatie pentru a-si complete sarcina care trebuie sa o indeplineasca. Ordinea si timpul alocarii resurselor sunt de asemenea importante.
Parametrii de intrare ai unui program care este responsabil de alocarea resurselor si modul in care acestea sunt alocate variaza pe baza serviciilor, infrastructurii si naturii aplicatiilor care necesita resurse.
Un program de alocare a resurselor cloud optim ar trebui sa evite urmatoare criterii dupa cum urmeaza:
-
Disupta resurselor: o situiate cand doua aplicatii incearca sa acceseze aceleasi resurse in acelasi timp
-
Lipsa de resurse: are loc cand resursele sunt limitate
-
Fragmentarea resurselor: o situatie cand resursele sunt izolate. Sunt resurse destule, dar nu pot fi alocate unei aplicatii care are nevoie de ele.
-
Surplusul de resurse: apare atunci cand aplicatiile primesc mai multe resurse decat au nevoie.
Utilizatorii de cloud estimeaza nevoia de resurse inainte de a se ajunge la un surplus de resurse. Rezultatele unor strategii de alocare ale resurselor ar trebui sa satisfaca latenta si timpul de raspuns necesar. Din perspectiva unui furnizor de cloud, a prezice natura dinamica a utilizatorilor, a indeplini cererile utilizatorilor si aplicatiilor sunt nepractice. Pentru utilizatorii cloud, acest lucu ar trebui sa fie complet cu un timp si cost minim. Resursele cloud sunt reprezentate de resursele fizice, si cele virtuale. Resursele fizice sunt distribuite intre mai multe cereri de procesare. Cererile pentru resursele virtuale sunt descrise de un set de parametri care detaliaza procesul si memoria necesare. Pentru scalabilitate sunt folosite masini virtuale.
Complexitatea gasirii unei alocari optime a resurselor este exponentiala in sisteme mari precum clustere sau centre de date. Procesul de alocare a resurselor in cloud poate folosi strategii diferite in functie de niste factori prezentati in continuare si care pot fi vazuti in figura Fig 4.2:
Timpul de executie
Diferite tipuri de mecanisme a alocarii resurselor tin cont de timpul de executie. Aceastea scapa de problema lipsei de resurse si creste utilizarea de resurse utilizand diferite moduri de a imprumuta capacitatiile de procesare. O problema majora este insa estimarea timpului de executie a unui job.
Politica
Datorita lipsei de gestionare centralizta a utilizatorilor si resurselor, s-au dezvoltat mecanisme care sa ofere furnizorilor o usoara gestionare din punct de vedere a securitatii si a politicilor lor adaugand nivele de control intre utilizatori si resursele virtuale. Astfel, resursele sunt alocate in functie de acest nivel.
Masinile virtuale
O alta cerinta majora a utilizatorilor de cloud este scalarea automata a resurselor. Utilizand o disponibilitate dinamica a resurselor, o procesare virtuala este capabila sa realoce automat resurse pentru aplicatiile gazduite in infrastructura proprie. Utilizatorii pot de asemenea sa isi seteze resursele necesare, dar de obicei ei au de platit pentru a putea face acest lucru. Acest lucru se implementeaza permitand utilizatorului sa adauge sau sa stearga una sau mai multe instante de masini virtuale incarcate de utilizator. Un astfel process de alocare difera de la un SaaS la un IaaS, deoarece pentru SaaS se furnizeaza aplicatii doar in cadrul Internet.
Functia utilitate
De-a lungul timpului s-au dezvoltat multe strategii de a gestiona masini virtuale in IaaS optimizand cateva obiective precum minimizarea costului. Functia obiectiv se defineste a o proprietate a utilitatii care este selecatata pe baza masurarii timpului de raspuns, obiectivele, profitul, etc. Pentru sisteme de cloud computing pe mai multe nivele, alocarea resurselor se face pe baza CPU-ului, memoriei si comunicarii resurselor. Pentru fiecare nivel, cererile aplicatiilor sunt distribuite de-a lungul unor servere disponibile. Fiecare server distribuit este asignat exact unei singure aplicatii.
Licitatia
Un mecanism folosit pentru alocarea resurselor s-a dezvoltat si pe baza unui process sub forma unei licitatii. Furnizorul de cloud colecteaza toate cererile utilizatorilor si determina un pret. Resursele sunt distribuite primilor k cei mai buni ofertanti. Acest sistem simplifica regulile de decizie a furnizorilor, dar acesta nu asigura maximizarea profitului datorita constrangerilor.
Fig. 4.2
-
Device-uri si aplicatii mobile in cloud
Daca acum cativa ani telefoanele mobile erau doar telefoane portabile, in ziua de azi au devenit mult mai puternice si datorita imbunatatirii tehnologiei din domeniul telecomunicatilor au devenit mai puternice chiar decat un calculator de acum 10 ani. Cloud-ul din ziua de azi implica ca utlizatorii sa aiba acces la datele lor si la aplicatii oricand, de oriunde. Tabletele si telefoanele mobile sunt din ce in ce mai folosite in acest scop(calculatoarele reprezinta 29% din utilizatorii din Internet astazi, pe cand device-urile mobile reprezinta 66%).
In spatiul utilizatorilor, companii de device-uri mobile precum Apple, Google, Microsoft ofera deja optiuni variate bazate pe stocarea datelor private. Privind avantajele aplicatiilor cloud exista multe controverse in prezent care sunt mai bune, in comparative cu aplicatiile native. O aplicatie nativa este instalata direct pe un device mobil si developerii creeaza versiuni separate pentru fiecare in parte. Aplicatiile native pot fi stocate din fabrica, sau pot fi descarcate dintr-un magazin public sau privat. O aplicatie nativa este construita pentru un device particular si un sitem de operare particular. Datele associate cu o aplicatie nativa sunt de asemenea stocate pe device, putand a fi nevoie de conectivitate la Internet sau nu. Aplicatiile native au abilitatea de a utiliza hardware-ul si software-ul specific unui device, insemnand ca acestea pot folosi ultimele tehnologii disponibile, precum sistemul GPS sau camera. Aplicatiile mobile in cloud sunt similare cu aplicatiile Web. Principala asemanare este ca ambele ruleaza pe un server extern si necesita sa fie folosite dintr-un browser sau device mobil care afiseaza interfata cu utilizatorul. Aplicatiile cloud nu necesita sa fie descarcate si instalate pe device-urile mobile. Acestea necesita conectivitate la Internet si de obicei folosesc formatul JSON in HTTP pentru a transfera date de la si la server.
Cateva diferente intre aplicatiile cloud si cele native care pot afecta dezvoltarea sunt:
Mediul aplicatiei mobile: Server cloud sau device mobil
Notificari si afisare: Pentru aplicatiile native afisarea este nativa, pe cand pentru cele cloud este emulata. Cele native suporta notificari, precum notificarile iOS, pe cand cele cloud nu suporta acest lucru.
Accesul la caracteristicile device-ului: Aplicatiile mobile au acces direct la caracteristicile device-ului precum GPS, camera, senzori de miscare sau sunete. Cele cloud ar putea avea acces la caracteristici prin API-uri expuse de device.
Viteza UI-ului: Aplicatiile native sunt mai rapide eliminand nevoia de un program additional care sa furnizeze interfata utilizator.
Exemple de aplicatii cloud pentru device-uri mobile:
Amazon Drive
Amazon Drive este o aplicatie pentru stocarea datelor dezvoltata de Amazon. Serviciul ofera stocare in siguranta, back-up de date, distribuirea fisierelor, printarea pozelor, etc. Utilizand contul Amazon, fisierele si directoarele pot fi transferate si gestionate din cadrul mai multor device-uri incluzand browsere web, aplicatii desktop, mobile si tablete. Acest sericiu ofera 5GB stocare fiecarui utilizator gratuit. Acest spatiu poate deveni nelimitat la un cost de 60$ pe an.
Box
Box este un alt serviciu pentru stocarea datelor mai recent aparut. Acesta ofera o larga varietate de aplicatii care sunt compatibile cu Box. Utilizatorii primesc 10GB de stocare gratuit la crearea contului, iar pentru 10$ pe luna primesc 100GB.
Google Drive
Google Drive este cea mai cunoscuta si populara aplicatie de stocate a datelor. Utilizatorii primesc 15GB de stocare gratuit. De asemenea ofera si o varietate de aplicatii de business disponibile pentru documente, notite, foi de lucru si prezentari. Pentru 100GB utilizatorii trebuie sa plateasca 1.99$ pe luna, pentru 1TB, 9.99$ pe luna, iar pentru 10TB, 99.99$.
Dropbox
Dropbox este o alta aplicatie foarte populara si in cazul multor device-uri mobile, aceasta este deja instalata din fabrica. Aceasta ofera servicii atat pentru utilizatorii normali, cat si pentru companii de business, fiecare avand seturi diferite de oferte. Aplicatia vine cu upload automat de poze, optiuni de distribuire usoare, ultimele elemente de design specific sistemelor de operare, support Microsoft Office si abilitatea de a trimite fisiere altora. Costurile pentru utilizatorii normali sunt 9.99$ pe luna sau 99.99$ pe an pentru 1TB de stocare. Gratuit, fiecare utilizator are alocati 2GB de stocare.
-
Bibliografie
http://searchcloudcomputing.techtarget.com/definition/cloud-computing
https://www.infoworld.com/article/2683784/cloud-computing/what-is-cloud-computing.html
https://www.ibm.com/cloud/learn/what-is-cloud-computing
https://www.pcmag.com/article2/0,2817,2372163,00.asp
http://www.academia.edu/3363069/Resource_Allocation_in_Clouds_Concepts_Tools_and_Research_Challenges
http://searchitoperations.techtarget.com/definition/mobile-cloud-applications
https://www.imore.com/best-cloud-storage-apps-iphone-ipad
http://thesai.org/Downloads/Volume3No6/Paper%2016-A%20Survey%20on%20Resource%20Allocation%20Strategies%20in%20Cloud%20Computing.pdf
http://www.oracle.com/us/corporate/profit/archives/opinion/011813-slofstad-1899122.html
Dostları ilə paylaş: |