c2_cloudcomputing

40
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

Upload: marius-constantin

Post on 07-Dec-2014

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: C2_CloudComputing

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

Page 3: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Istorie & evolutie

[http://www.cs.rutgers.edu/~pxk/]

http://www.top500.org/

Page 4: C2_CloudComputing

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]

Page 5: C2_CloudComputing

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:

Page 6: C2_CloudComputing

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.”

Page 7: C2_CloudComputing

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.”

Page 8: C2_CloudComputing

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

Page 9: C2_CloudComputing

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

Page 10: C2_CloudComputing

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)

Page 11: C2_CloudComputing

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

Page 12: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Cloud Computing Platforma Cloud Computing - Arhitectura tipica

12

Page 13: C2_CloudComputing

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)

Page 14: C2_CloudComputing

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)

Page 15: C2_CloudComputing

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

Page 16: C2_CloudComputing

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

Page 17: C2_CloudComputing

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

Page 18: C2_CloudComputing

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

Page 19: C2_CloudComputing

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

Page 20: C2_CloudComputing

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

Page 21: C2_CloudComputing

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]

Page 22: C2_CloudComputing

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

Page 23: C2_CloudComputing

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

Page 24: C2_CloudComputing

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.

Page 25: C2_CloudComputing

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

Page 26: C2_CloudComputing

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

Page 27: C2_CloudComputing

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

Page 28: C2_CloudComputing

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

Page 29: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Provocari

29

Page 30: C2_CloudComputing

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

Page 31: C2_CloudComputing

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]

Page 32: C2_CloudComputing

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

Page 33: C2_CloudComputing

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

Page 34: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Si totusi…

34

http://blogs.idc.com/ie/?p=730

Page 35: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Unde si cum?

35

Page 36: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Cloud Computing

36

• Perspectiva

Page 37: C2_CloudComputing

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/]

Page 38: C2_CloudComputing

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/

Page 39: C2_CloudComputing

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

Page 40: C2_CloudComputing

2013| Programare Concurenta si Distribuita – http://www.info.uaic.ro/~adria

Întrebări?

40