Download - C2_CloudComputing
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing - I-
Lenuța Alboaie [email protected]
Universitatea “Alexandru Ioan Cuza” Facultatea de Informatică
Master Ingineria Sistemelor Software
1
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cuprins • Cloud Computing
– Istoric&Evolutie – Definitie – Necesitate – Caracteristici – Arhitectura generala – Utilizatorii de Cloud – Clasificare – Versus Grid Computing – Provocari – Perspectiva
2
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Istorie & evolutie
[http://www.cs.rutgers.edu/~pxk/]
http://www.top500.org/
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Istorie & evolutie
4 [Grid and Cloud Computing - A Business Perspective on Technology and Applications, 2010]
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
5 [Grid and Cloud Computing - A Business Perspective on Technology and Applications, 2010]
Legatura cu alte
paradigme:
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
6
Ce este?
Larry Ellison, founder of Oracle
“We’ve redefined Cloud Computing to include everything that we already do. . . . I don’t understand what we would do differently in the light of Cloud Computing other than change the wording of some of our ads.”
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
7
Ce este?
Richard Stallman Creatorul GNU
•“cloud computing is evil” •“I think that marketers like cloud computing because it is devoid of substantive meaning. The term’s meaning is not substance, it’s an attitude: ‘Let any Tom, Dick and Harry hold your data, let any Tom, Dick and Harry do your computing for you (and control it).’ Perhaps the term ‘careless computing’ would suit it better.”
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Definitii din perspectiva utilizatorului final: • “the idea of delivering personal (e.g., email, word
processing, presentations.) and business productivity applications (e.g., sales force automation, customer service, accounting) from centralized servers” (Merrill Lynch)
• “a service model that combines a general organizing principle for IT delivery, infrastructure components, an architectural approach and an economic model – basically, a confluence of grid computing, virtualization, utility computing, hosting and software as a service (SaaS)”
8
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Definitii cuprinzind aspecte arhitecturale dar si de utilizare: • “Cloud Computing refers to both the applications delivered as
services over the Internet and the hardware and systems software in the datacenters that provide those services. The services themselves have long been referred to as Software as a Service (SaaS). The datacenter hardware and software is what we will call a Cloud. When a Cloud is made available in a pay-as-you-go manner to the general public, we call it a Public Cloud; the service being sold is Utility Computing. We use the term Private Cloud to refer to internal datacenters of a business or other organization, not made available to the general public. Thus, Cloud Computing is the sum of SaaS and Utility Computing, but does not include Private Clouds. People can be users or providers of SaaS, or users or providers of Utility Computing.” (Berkeley Lab, 2009) 9
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Definitii cuprinzind aspecte arhitecturale dar si de utilizare: • “a large-scale distributed computing paradigm that is driven by
economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet.” (Foster et al. (2008))
• http://jameskaskade.com/?p=594
10
• “a style of computing in which massively scalable IT-related capabilities are provided “as a service” using Internet technologies to multiple external customers” (Gartner)
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Caracteristici: - Integrarea nivelului hardware si al sistemelor software (infrastructura
cloud) si oferirea sa ca serviciu intr-o maniera integrata - Maniera X-as-a-Service - Cand serviciul este oferit ca furnizor independent sau clientilor externi,
modelul de business: pay-per-use - Scalabilitate dinamica
- La cerere - Virtualizare
- Abstraction - Encapsulation
- Serviciile Cloud sunt consumate via Web browser sau via API Obs. Utility computing si SaaS sunt furnizate intr-o maniera integrata
11
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Platforma Cloud Computing - Arhitectura tipica
12
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
13
[http://www.slideshare.net /JorFigOr/cloud-computing -2010-an-idc-update]
Taxonomie a Serviciilor in Cloud (Software sau Hardware)
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Platforma Cloud Computing - Arhitectura tipica
14
Figura: Arhitectura Cloud si legatura cu Serviciile Cloud (Foster, 2008)
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Platforma Cloud Computing - Arhitectura tipica Fabric sau Hosting Platform – Furnizeaza masinile fizice, sistemul de operare, partea de retea de
comunicare, sistemele de stocare si softul pentru virtualizare Infrastructure as a Service (IaaS) Abstractizeaza nivelul Fabric si ofera infrastructura virtualizata (versus raw
hardware) ca un serviciu • procesare, stocare, comunicare
Tehnologia cheie: virtualizarea Exemplu:
• Amazon Elastic Compute Cloud (EC2) pentru procesare Simple Storage Service (S3) pentru stocare
Eucalyptus: implementare Cloud open source compatibil with EC2 (printre cele mai utilizate platforme pentru on-premise (private) infrastructuri IaaS), OpenStack, ….
15
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Istoric&Observatii privind Infrastructure as a Service (IaaS) inainte de era CloudComputing, Iaas era referit ca utility
computing Utility computing - concept inca folosit pentru desemnarea
nivelului infrastructura din cloud Exemplu: 2006, Sun Grid Compute Utility Ofera putere de calcul, conform principiului pay-per-
use (1$/CPU/ora) 2009 , Sun: Open Cloud Platform Sun Cloud Storage Service si Sun Cloud Compute
Service Pentru ca utility computing sa aiba succes => trebuie sa existe o
interfata usor de accesat, inteles, si exploatat de dezvoltatorii de aplicatii SaaS
16
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Platforma Cloud Computing - Arhitectura tipica Platform as a Service (PaaS) Destinata dezvoltatorilor software, care dezvolta aplicatii in acord cu
specificatiile unei platforme, fara a implica factori legati de infrastructura hardware Exemplu: Platforma este cea care in mod dinamic aloca resurse daca
aplicatia este foarte utilizata Furnizeaza capabilitati expuse ca servicii pentru a ajuta integrarea cu softul on-
premise al serviciilor gazduite PaaS se bazeaza pe interfata standard IaaS, asigurind virtualizarea accesului la
resursele disponibile PaaS furnizeaza o interfata standardizata si o platforma de dezvoltare nivelului
SaaS Tehnologii cheie: MapReduce, PIG, HIVE, … Exemplu: Google AppEngine – aplicatiile ruleaza folosind infrastructura Google Salesforce
17
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Platforma Cloud Computing - Arhitectura tipica Software as a Service (SaaS) Nivelul cel mai vizibil din Cloud pentru end-users, oferind aplicatiile software
expuse ca interfete Web sau servicii Web; permite modelul de hosting multitenant
• “SaaS is software that is owned, delivered and managed remotely by one or more providers and that is offered in a pay-per-use manner” (Mertz 2007)
• Tehnologii cheie: …….-> depind de fiecare furnizor • Exemplu:
– Google Apps (Google Mail, Google Docs, Google Spreadsheets, ….), Live Mesh (Microsoft)
• Uzual: – utilizatorii SaaS nu cunosc detalii privind infrastructura – IaaS si PaaS sunt importante pentru furnizorii de SaaS externalizare
• Exemplu:o aplicatie SaaS poate fi dezvoltata pe o platforma si poate rula folosind o alta infrastructura
• Cresterea deschiderii companiilor fata de SaaS <= presiunii pentru reducerea costurilor IT
18
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
Clasificare – Din punct de vedere al detinatorului centrului de date
• Cloud Public • Cloud Privat
– Din punct de vedere al modului in care sunt integrate mai multe medii Cloud (multiple-Cloud environments) • Cloud Hibrid (Hybrid Cloud) • Federatie de Cloud-uri (Federation of Clouds)
19
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
Clasificare – Din punct de vedere al detinatorului centrului de date
• Cloud Public “A Public Cloud is data centre hardware and software run
by third parties, e.g. Google and Amazon, which expose their services to companies and consumers via the Internet” ( IBM, 2009)
Este disponibil in maniera pay-as-you-go, • Cloud Privat (sau Internal Cloud) Motivatie: limitarea riscurilor asociate unui Cloud Public Este detinut de o singura companie care are controlul
asupra aplicatiilor si asupra infrastructurii Se bazeaza pe virtualizarea infrastructurii deja existente
in organizatie => utilizarea mai eficienta a resurselor
20
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Exemple de Arhitecturi de Cloud-uri Publice
21
Amazon Web Services
Microsoft Azure
Google App Engine
[http://www.slideshare.net/woorung/ trend-and-future-of-cloud-computing]
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Clasificare – Din punct de vedere al modului in care sunt integrate mai multe medii
Cloud • Cloud Hibrid
– Combina Cloud Public si Cloud Privat, si permite organizatiilor sa ruleze aplicatii in ambele medii
– Complexitate ridicata privind distribuirea aplicatiilor, monitorizarea infrastructruii interne si externe utilizate, securitate si intimitate
• Federatie de Cloud-uri – Denota colaborarea intre Cloud-uri publice (pot fi implicate si cloud-
uri private) – Exemplu: RESERVOIR – Principii: Fiecare Cloud din federatie este independent, dar poate
interopera (schimb de date si resurse de calcul) cu alte Cloud-uri prin interfete standard
– Standardizare - > Open Cloud Computing Interface Working Group (http://occi-wg.org/about/specification/) - Open Grid Forum (OGF);
DMTF (http://dmtf.org/standards/cloud)
22
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Utilizatorii de Cloud End consumers Utilizeaza serviciile de la nivelul SaaS via un Web browser Utilizeaza serviciile IaaS: e.g. stocarea datelor rezultata din
utilizarea nivelului SaaS Business customers Acceseaza IaaS cu scopul de imbunatatire a propriei
infrastructuri cu resurse la cerere Acceseaza PaaS cu scopul de a-si rula propriile aplicatii in
Cloud Acceseaza SaaS pentru a folosi diverse aplicatii disponibile
oferite ca servicii Dezvoltatori si ISV(Independent Software Vendors) Acceseaza PaaS direct (IaaS indirect) si sunt furnizori de SaaS
23
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Versus Grid Computing
24
Grid Computing Cloud Computing
Modelul de business (Traditional: plata o singura data pentru utilizarea nelimitata a softului)
Grid: orientat pe proiect, negociere, alocarea resurselor in functie de nivelul la care serviciile sunt furnizate
Cloud: plata se face pe baza consumului (calcul, stocare, ..)
Arhitectura
Nivelul Fabric – e format din resurse, similar ca la Grid Nivelul Unified Resource – resursele care au fost incapsulate (e.g. virtualizare) – cluster sau computer virtual, sistem de fisiere logic, etc. Nivelul Platform mediu pentru hosting web, dezvoltare de servicii, etc.
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Versus Grid Computing
25
Grid Computing Cloud Computing
Model de calcul Batch-scheduled (queueing systems) Alocarea de resurse/servere multiple pentru rezolvarea unui singur task
Resurse partajate de utilizatori in mod simultan, fata de resurse dedicate Provocare: QoS
Patternul de exploatare Executarea de programe pentru o perioada limitata de timp
Folosit frecvent pentru “long-running services”
Relatii diferite intre furnizorii de resurse
Are ca scop crerea de VO => angajamente si politici de utilizare (domenii multiple)
Elimina aceasta necesitate (domeniu unic)
Scop diferit Ofera infrastructura ca si serviciu Ofera IaaS, PaaS, SaaS
Din punct de vedere al utilizatorului final
Interfetele Grid se bazeaza pe protocoale si API-uri utilizabile de utilizatori experti
Ofera interfete exploatabile din browser sau API-uri
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Versus Grid Computing
26
Grid Computing Cloud Computing
Localizarea datelor – pentru a obtine o buna scalabilitate data e distribuita pe mai multe computere
Se bazeaza pe sisteme de fisere distribuite (NFS, GPFS,PVFS, Lustre)
Se bazeaza in general pe mecanism de tipul map-reduce
Monitorizare Tooluri de monitorizare: Ganglia (http://meta.rocksclusters.org/ganglia/) - Grid Report for Sun, 19 Feb 2012
Greu de realizat un control de granularitate mica datorita virtualizarii (probleme pentru utilizatori si administratori) Viziune: cloud-uri autonome = self-maintained
Model de programare Face apel la instrumente de control al fluxului pentru a face managementul unor cantitati mari de date si multe task-uri (MPICH-G2, GridRPC, …)
Foloseste ca model map-reduce. Ex. de implementare: Hadoop care foloseste Pig ca limbaj de programare declarativ
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Relatia cu Grid Computing: • “We argue that Cloud Computing not only overlaps
with Grid Computing, it is indeed evolved out of Grid Computing and relies on Grid Computing as its backbone and infrastructure support. The evolution has been a result of a shift in focus from an infrastructure that delivers storage and compute resources (such is the case in Grids) to one that is economy based aiming to deliver more abstract resources and services (such is the case in Clouds).” (Foster et al., 2008)
27
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
Provocari – Disponibilitate – Securitate – Performanta – Data lock-in – Confidentialitate – Bottleneck – Greu de integrat – Probleme privind customizarea
28
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Provocari
29
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Provocari – Confindentialitate:
• Datele senzitive raman confidentiale? ( Furnizorul de cloud este onest?)
– Integritate • Cum stiu ca furnizorul de cloud realizeaza
calculul corect? Datele mele sunt stocate fara sa fie alterate?
– Intimitatea (Privacy) • Cloud-ul stocheaza date de la mai multi clienti si
poate rula algoritmi de data mining ….
30
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Provocari – Disponibilitate
• Daca furnizorul este supus unui atac DOS, sistemele critice de la client se vor prabusi?
• Daca furnizorul de cloud nu mai ofera servicii de cloud?
31
Indisponibilitate in AWS, AppEngine si Gmail
[http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.htm]
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing Provocari – Cresterea zonei vulnerabile la atacuri
• Datele sunt stocate si manipulate in afara organizatiei • Atactorii pot viza legatura de comunicatie intre client si furnizorul
de cloud • Angajatii furnizorului de cloud pot fi supusi atacurilor de tip
phishing – Auditarea
• Estimare a riscurilor, prevenire, detectare, raspuns la atacuri – este greu de realizat deoarece datele sunt in afara organizatiei
– Probleme juridice si de transfer de incredere • Cine este responsabil pentru respectarea reglementarilor? • Daca furnizorul de cloud subcontracteaza serviciile unui alt
furnizor de cloud…?
32
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
• Cloud Computing is a security nightmare and it can't be handled in traditional ways
(Curs 14)
33
John Chambers CISCO CEO
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Si totusi…
34
http://blogs.idc.com/ie/?p=730
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Unde si cum?
35
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
36
• Perspectiva
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Cloud Computing
37
• Perspectiva – Companiile mari construiesc cloud-uri private pentru
rezolvarea problemelor de securitate – Abilitatile de coding& dezvoltare vor ocupa o pozitie mai
putin prioritara in raport cu managementul proiectelor, teste de asigurarea calitatii, analizele de afaceri
– Departamentele de IT se vor micsora – Informatia din cloud va necesita masuri de siguranta
echivalente cu securitatea banilor din banca – Afacerile mici si mijlocii vor face trecerea catre cloud – Afacerile mari pot deveni furnizori de cloud part-time – Browserul va fi desktopul de care avem nevoie – Jocurile vor fi de mare interes ca aplicatii in cloud (e.g.
GAIKAI - http://www.gaikai.com/) [http://www.focus.com/briefs/top-10-cloud-computing-trends/]
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Bibliografie • Massimo Cafaro, Givani Aloisio, Grids, Clouds and Virtualization, 2011 • Katarina Stanoevska Slabeva, Thomas Wozniak, Grid and Cloud Computing - A Business
Perspective on Technology and Applications, 2010, Editors Santi Ristol, Springer-Verlag Berlin Heidelberg
• Open Cloud Computing Interface - http://occi-wg.org/ • RESERVOIR - http://ercim-news.ercim.eu/en83/special/reservoir-a-european-cloud-
computing-project • DMTF - http://dmtf.org/standards/cloud • LIBVRT - http://libvirt.org/apps.html • Chow et al., Cloud Computing: Outsourcing Computation without Outsourcing Control, 1st
ACM Cloud Computing Security Workshop, November 2009 • Foster, Zhao, Raicu and Lu, Cloud Computing and Grid Computing 360-Degree Compared,
2008 • Above the Clouds: A Berkeley View of Cloud Computing, Technical Report No. UCB/EECS-
2009-28, http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.htm • http://my.ss.sysu.edu.cn/courses/cloud/ • http://blogs.idc.com/ie/?p=730 • http://www.slideshare.net/woorung/trend-and-future-of-cloud-computing • http://ganglia.sourceforge.net/ • http://www.focus.com/briefs/top-10-cloud-computing-trends/
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Rezumat • Cloud Computing
– Istoric&Evolutie – Definitie – Necesitate – Caracteristici – Arhitectura generala – Utilizatorii de Cloud – Clasificare – Versus Grid Computing – Provocari – Perspectiva
39
2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria
Întrebări?
40