Sunteți pe pagina 1din 82

Cloud Computing

- Platform as a Service -

Ciprian Dobre
ciprian.dobre@cs.pub.ro
Cuprins

Introducere
De la IaaS la PaaS
Ce e de fapt PaaS?
Proprieti i caracteristici PaaS
Platforme Cloud
Studiu de caz: Windows Azure
Rezultate IaaS

IaaS furnizeaz maini i resurse virtuale


segmentate pentru fiecare utilizator
Furnizorii IaaS ofer o soluie prin care
utilizatorii nu mai sunt nevoii s
achiziioneze hardware
Prin IaaS se folosesc mai bine resursele
Ce poate face IaaS

Sistem IT tradiional IaaS


IaaS nu este suficient

IaaS furnizeaz multe maini fizice i


virtuale, dar nu poate modifica cantitatea
automat/dinamic
Consumatorii ar putea s
cear decizii automate asupra plasrii job-urilor
pe resursele disponibile
necesite un mediu de lucru sau de dezvoltare,
sau o platform de testare pentru verificarea
aplicaiilor sau serviciilor lor
Cerine suplimentare

Consumatorii cer mai mult


Abstractizri i gestiune a resurselor la scar
mai mare
Cerine de resurse on-demand la scar mai
mare
Medii de execuie i de gzduire
Mecanisme automate i autonome
Distribuie i gestiune de job-uri
Controlul accesului i autentificare

PaaS este soluia

PaaS furnizeaz o serie


de proprieti ce satisfac
cerinele utilizatorilor

PaaS garanteaz
calitatea resurselor, a
serviciilor i a aplicaiilor
De la IaaS la PaaS

Traditional IT IaaS PaaS

You Manage
Applications Applications Applications
Data Data Data

You Manage
Runtime Runtime Runtime
Middleware Middleware Middleware
You Manage

OS OS OS

Provider Manage
Virtualization Virtualization Virtualization

Provider Manage
Servers Servers Servers
Storage Storage Storage
Networking Networking Networking
Platform as a Service

Platform as a Service (PaaS) reprezint conceptul de


platform computaional ce abstractizeaz infrastructura,
SO-ul i nivelul middleware
Platform as a Service
Livreaz platforma de calcul sub form de serviciu
Aplicaii dezvoltate folosind limbaje de programare i instrumente
suportate de furnizorul PaaS
Aplicaii create de consumator sunt deployate n infrastructura cloud

Enabling Services
provide

Core Platform

abstract

Resource Pool
Pool de Resurse

Capacitatea de a abstractiza i controla toate resursele


de nivel inferior.
Pool-ul de Resurse furnizeaz Enabling Services
dinamic un nivel de abstractizare
provide
i consolidarea resurselor pe
scar larg Core Platform

Consumatorii pot obine resurse


abstract
din pool la cerere
Resource Pool
Pool de Resurse

Reduce complexitatea i
responsabilitatea infrastructurii
Cloud

Furnizeaz management
automat pentru furnizarea de
resurse

Acces la resurse din pool la


cerere
Pool de Resurse

Furnizorii PaaS definesc cea mai mic unitate de tip


resurs
1GHz CPU pentru partea computaional
1GB spaiu de stocare
1MB capacitate de memorie
etc

Consumatorii PaaS pot obine uniti la cerere


Consumatorii nu tiu dac resursele furnizate sunt
dedicate sau partajate
Platforma de Baz

Furnizeaz un mediu fiabil pentru execuia aplicaiilor


i serviciilor
Platforma de Baz furnizeaz Enabling Services
funciile de baz ale unui mediu
provide
PaaS
Acioneaz ca un bridge ntre Core Platform
consumator i hardware
abstract

Resource Pool
Platforma de Baz

Reduce responsabilitatea mediului de


execuie
Se abstractizeaz funcii precum
construirea, configurarea,
gestiunea mediului backend
Platforma de Baz
Furnizorii PaaS pot furniza un mediu de execuie pentru
platforma de dezvoltare
Mediul de execuie furnizeaz un control automat astfel nct
consumatorii se pot concentra mai bine asupra propriilor servicii
Dynamic provisioning
Provizionare de resurse la cerere
Load balancing
Distribuirea ncrcrii echilibrat ntre resurse
Fault tolerance
Operarea continu n prezena defectelor
System monitoring
Monitorizarea strii sistemului i msurarea gradului de
folosire a resurselor
Servicii furnizate

Furnizarea de interfee i servicii la nivelul platformei


pentru dezvoltarea de aplicaii
Serviciile furnizate ofer un IDE Enabling Services
pentru programare i interfee de
provide
control la sistem pentru accesul
la mediul PaaS Core Platform
Consumatorii i pot dezvolta
propriile aplicaii prin API-uri i abstract

instrumente de dezvoltare
Resource Pool
Servicii furnizate

Se ofer o platform de
dezvoltare i testare pentru
rularea aplicaiilor dezvoltate
n mediul de execuie

Se reduce responsabilitatea
gestionrii mediului de
dezvoltare

Scade perioada de dezvoltare


Servicii furnizate

Consumatorii pot folosi serviciile furnizate pentru


dezvoltarea aplicaiilor proprii
IDE de programare
Integreaz toate funcionalitile suportate de mediul de execuie
Furnizeaz un set de instrumente de dezvoltare, precum un
profiler, depanator i un mediu de testare
Interfee de Control a Sistemului
Furnizeaz decizii n funcie de anumite principii i cerine
Descriu fluxul de instalare i configurare a resurselor
Platform as a Service

Proprieti i caracteristici garantate


Scalabilitate
Disponibilitate
Menegeabilitate
Performan
Accesibilitate
Scalabilitate

PaaS ofer suport dinamic


de provisioning ce poate
crete sau descrete
resursele la cerere

PaaS furnizeaz abstracii


ale infrastructurii cloud i
management automat
Scalabilitate

Organizaiile business necesit dimensiune a


spaiului de stocare modificabil dinamic, sau
putere de calcul la cerere
Aplicaiile ar putea necesita o putere computaional
mai mare dimineaa, dar mai mic n cursul zilei
De asemenea pot aprea necesiti de stocare mai
mari pe parcursul unor perioade scurte de timp
Utilizatorii finali nu trebuie s vad alerte legate
de lipsa de memorie sau spaiu de stocare
De exemplu
Disponibilitate

PaaS trebuie s suporte


tolerana la defecte astfel
nct sistemului s nu se
opreasc odat cu apariia
unui defect

PaaS furnizeaz de
asemenea rezilien la
nivelul sistemului prin
duplicarea aplicaiilor sau
serviciilor
Disponibilitate

PaaS suport backup automat i soluii de disaster


recovery consumatorii nu sunt ngrijorai de
defeciunile la nivelul sistemului
Cnd resursele se defecteaz, PaaS pornete
resursele de backup
Cnd apar erori la nivelul aplicaiilor, PaaS
migreaz serviciile ctre acele aplicaii de backup
Flexibilitate n administrare

PaaS suport auto-


administrarea pentru aplicaiile
i serviciile ce ruleaz n
platforma Cloud
PaaS furnizeaz control
automat, analize i msurtori
pentru utilizarea resurselor
Flexibilitate n administrare

PaaS furnizeaz mecanisme automate


pentru controlul utilizrii resurselor platformei
Serviciul de monitorizarea furnizeaz
abilitatea de management, analiz i operare
pentru resurse i job-uri
Pe baza sistemului de monitorizare, PaaS
poate nregistra i raporta utilizarea de
resurse
Consumatorii pot plti pentru exact ceea ce
folosesc
Sistemul de plat

Consumatorii pltesc n funcie de cte uniti


de resurse i servicii folosesc
Input/output network bandwidth
Management report or warning
CPU time
Storage space
Data migration
etc
Sistemul de plat

Consumatorii pot specifica limitele peste care


nu mai sunt dispui s plteasc (pentru a nu
supra-estima spaiul sau resursele)
Furnizorul PaaS poate furniza free quota
pentru utilizatori
Furnizorii PaaS pot alerta consumatorii cnd
apar creteri brute ale folosirii resurselor
Ca rezultat, consumatorii vor plti exact ceea
ce folosesc la cerere
Performan

PaaS trebuie s
suporte capabiliti de
Distribuire a job-urilor
ctre resurse libere
tergerea job-urilor de
pe resurselor
suprasolicitate
PaaS ofer distribuirea
datelor n sistemul de
stocare pentru
balansarea ncrcrii
Performan

Companiile ruleaz aplicaii complicate n


PaaS care pot aloca job-uri pe serverele
disponibile
Dac e posibil, PaaS ruleaz aplicaia n
paralel
Nici o resurs nu e suprancrcat ntr-un
PaaS ce include soluii de load balancing
Securitate

Securitatea este o caracteristic


important a PaaS

PaaS ofer autentificare i


autorizare pentru diferenierea
ntre drepturile de acces ale
utilizatorilor diferii
Securitate

Autorizarea poate fi folosit pentru controlul


drepturilor de acces ale utilizatorului i
rejectarea unor cereri maliioase
Autentificarea reprezint stabilirea sau
confirmarea c cineva sau ceva este
autentic
Toate acestea pot limita aciunile maliioase
Accesibilitate

PaaS furnizeaz o interfa


interactiv pentru consumatori
pentru ca acetia s poat
accesa serviciu cloud sau
monitoriza starea sistemului

Consumatorii i pot dezvolta i


testa aplicaiile prin intermediul
unor browsere web
Aadar Cloud Computing

[RagibHasan, Johns Hopkins University]


Studii de Caz

Platforme CLOUD
Exemple de Arhitecturi de
Cloud-uri Publice
Amazon Web Services
Google App Engine

Microsoft Azure
Principalii furnizori PaaS

Furnizori PaaS
Microsoft Windows Azure
Hadoop
Google App Engine
Microsoft Windows Azure

Bazat pe .NET i instrumentele suportate de Microsoft


pentru dezvoltare
Windows Azure a fost oferit oficial ncepnd cu Feb 2010, i
se bazeaz pe centre de date n diverse locaii n jurul lumii
Platforma Windows Azure

Un grup de tehnologii cloud, fiecare furniznd un set de


servicii dezvoltatorilor de aplicaii
Principalele componente

Windows Azure
Furnizeaz un mediu bazat pe Windows pentru
execuia aplicaiilor i stocarea datelor pe servere din
cadrul data centrelor Microsoft
SQL Azure
Furnizeaz servicii de date n cloud bazate pe SQL
Server
AppFabric
Furnizeaz servicii n cloud pentru conectarea
aplicaiilor ce ruleaz n cloud
Windows Azure

Clienii l pot folosi


pentru a executa
aplicaii i stoca
date pe maini
accesibile prin
Internet i deinute
de Microsoft
Windows Azure

Windows Azure reprezint fundaia pentru execuia


aplicaiilor Windows i stocarea datelor n cloud
Furnizeaz servicii bazate pe Windows pentru calcule
computaionale i stocare
Componente
Compute
Rularea de aplicaii
Suport pentru aplicaii ce trebuie s suporte muli utilizatori i
care necesit scalare
Storage
Stocarea i accesarea datelor
Suport pentru aplicaii ce necesit stocare sub form de blob-
uri, sau o form mai structurat de stocare a informaiei, sau o
metod de a schimba date ntre diversele pri ale unei aplicaii
Fabric
Gestiunea resurselor
Furnizeaz o metod pentru gestionarea i monitorizarea
aplicaiilor ce folosesc platforma cloud
Arhitectura
Elementul Compute

Pentru operaii computaionale


n cloud Windows Azure
furnizeaz
Servicii computaionale
Un mediu de execuie bazat pe IIS
7 i .NET
Patru tipuri de uniti de
procesare
Tip de baz ce furnizeaz single-
core 1.66 GHz CPU, 1.75 GB
memorie i 225 GB de spaiu
stocare
Incrementri cu puteri ale lui 2
Element Compute

O aplicaie Windows Azure poate avea mai multe instane,


fiecare executndu-se n propria main virtual (VM)
Fiecare VM este furnizat de ctre un hipervizor (Hyper-V)
Un dezvoltator poate crea
Un cont de hostare pentru execuia de aplicaii
Un cont pentru stocarea datelor
sau ambele
Un dezvoltator poate accesa
Instrana prin intermediul unei interfee
Portalul Windows Azure prin intermediul unui browser Web
Tipuri de Instane

Windows Azure furnizeaz dou tipuri de roluri


computaionale
Rol Web
Un mediu de execuia pe care utilizatorii l pot accesa
Execuie aplicaii orientate spre servicii Web
Rol Worker
Un mediu pentru excuia unei procesri particulare
Abilitatea de a gestiona taskuri distribuite sau complexe
Tipuri de Instane

Orice serviciu trebuie s includ cel puin un rol,


dar poate avea oricte roluri web sau worker
Rolul worker poate comunica cu rolul Web
folosind cozile de stocare din Windows Azure
Fiecare VM conine un agent ce permite
aplicaiei interaciunea cu Windows Azure fabric
Elementul Storage

n enterprise, o aplicaie
poate solicita ntre 10GB i
10PB spaiu de stocare
atunci cnd compania este n
cretere
Un mediu Enterprise nu
cunoate cte discuri sunt
necesare de la nceput
Estimarea ar putea fi sub-
estimat sau supra-estimat
Element Storage

Dac subestimm
Violare contract i nu suportm spaiu de stocare n timp
Dac supraestimm
Pierdere de resurse i costuri suplimentare cu
managementul

Windows Azure suport gestiunea automat a


stocrii
Utilizatorii nu au nevoie s se preocupe de
managementul spaiului de stocare, de back-up-uri sau
eventualele defeciuni hardware
Mediile Enterprise nu au nevoie s achiziioneze centrul
de date sau s preia responsabilitatea mentenanei n
cazul unor ncrcri temporare
Tipuri de Stocare

Windows Azure furnizeaz trei tipuri de stocare,


fiecare servind unui anumit scop
Blob
Furnizeaz blocuri de stocare n care se pot stoca fiiere text
sau fiiere binare
Table
Furnizeaz stocare structurat a informaiei
Queue
Furnizeaz stocare ca suport pentru comunicaia ntre aplicaii
Fiecare tip de serviciu de stocare are i propriile
limitri
Dimensiunea unui fiier
Numrul de operaii concurente suportate
Blob

Un cont are propriul spaiu de stocare Blob, i poate


avea mai multe containere
Fiecare container are mai multe Blob-uri, fiecare
putnd stoca blocuri sau pagini

Account Container Blob Block


song. Block1
music mp3
Block2
John Image1.
jpg
photo
Image2.
jpg
Tipuri de Blob-uri

Block Blob
Segmente read/write
Identificat printr-un Block ID
Dimensiunea maxim
4MB pentru fiecare bloc, i poate suporta pn la 50000 de
blocuri
Page Blob
Furnizeaz un Windows Azure Driver (sau X-Driver)
Operaii read/write random
Identificat printr-un range
Poate suporta pn la 1TB
X-Driver

Stocarea de la nivel inferior


Un mecanism pentru
vizualizarea spaiului de stocare
persistent ca un drive local
Implementat ca Windows Azure
Page Blob ce conine un Virtual
Hard Disk (VHD) formatat
NTFS
Table

Structur pentru stocarea datelor structurate


O tabel poate fi folosit ca o baz de date
light
Un entry reprezint o linie de date
Fiecare entry are asociat un identificator ce
conien Account Key i Table Key
Table

Account Name i Table Name sunt folosite pentru


specificarea contului i a tabelei
Partition Key este folosit pentru specificarea datelior pe
partiii diferite
Row Key este un identificator pentru datele la nivel de
rnd
Partition Key Row Key Property 1 Property 2
Class Number Score 1 Score 2 Table A
entry
Class A No 1 A A+
Partition 1
Class A No 2 B- B-
Class B No 1 B+ A-
Class B No 2 B+ B+ Partition 2
Class B No 3 A A-
Queue

Cozile sunt folosite pentru comunicaia


ntre aplicaii
O coad este format din mai multe pri
Fiecare parte conine 8 KB de date
Exist un proces particular pentru
gestiunea cozii ce se ocup de procesarea
fiecrei poriuni a cozii o singur dat
Queue

Message queuing
A Large-size message Backend
RequestQueue Processing
Backend
Multiple messages Server
Processing
Backend
Server
WebServer Processing
Data location Server
FE
WebServer
FrontEnd

BlobStore TableStore
Elementul Fabric

Windows Azure
furnizeaz o modalitate
automat i autonom de
gestiune a resurselor
Raportarea automat i
nregistrarea strii
mainilor
Furnizarea unui centru de
control pentru recuperarea
din eroare
Tipuri de Fabric

Windows Azure suport dou tipuri de Fabric pentru


controlul i gestiunea mainilor i joburilor
Fabric Agent
Fiecare main virtual are un agent Fabric
Raporteaz starea controlerului Fabric
Furnizeaz autentificarea utilizatorului i aprare n
cazurile unor atacuri
Fabric Controller
Monitorizeaz i controleaz maina virtual cu ajutorul
agentului Fabric
Gestiunea mainilor virtuale, a mediului de execuia i
configuraia software
Controlul fluxului de activiti
Exemplu de Fabric

Controlerul de Fabric interacioneaz cu aplicaiile


Windows Azure prin intermediul agentului Fabric
Fabric

Agentul Fabric nregistreaz starea mainii i raporteaz


controlerului Fabric
Who is
Who is alive?
available?
job

Me
Me Me

Machine

Fabric Agent

Fabric Controller
SQL Azure

n multe situaii
dezvoltatorii au nevoie s
gseasc relaii ntre date
Companiile au nevoie de o
baz de date pentru
stocarea datelor
Windows Azure Platform
furnizeaz SQL Azure
pentru a aborda serviciile
de date
SQL Azure

SQL Azure furnizeaz un DBMS i servicii


orientate spre date n cloud
SQL Azure

SQL Azure Database


Baz de date relaional
Suport SQL-Tranzacional (T-SQL) clienii pot folosi un
model de date pentru dezvoltarea de servicii
Se integreaz cu SQL Server, include Visual Studio i
instrumente de dezvoltare
Baz de date fiabil i scalabil la cerere
Limitri
Un query poate rula doar pentru o perioad limitat de timp
Dimensiunea maxim a unei baze de date este de 10 GB
SQL Azure Database

O aplicaie poate folosi o singur baz de date sau mai


multe baze de date
O aplicaie ale crei
date sunt n anumite
limite se poate limita la
o singur baz de date
O aplicaie avnd mai
multe date ar putea
necesita mai multe
baze de date
Arhitectura
Data Database Browser or
Application Server Service Client

Windows Azure Cloud


Applications

SQL Service Load Balancer

Service Layer (SQL Azure Gateway)

SQL Azure SQL Azure SQL Azure SQL Azure


Backend Backend Backend Backend

TDS
Windows Azure Computes

HTTP
Arhitectura

Aplicaiile pot accesa baza de date corect n care


se regsesc datele de interes
Prin coordonarea serviciului SQL Azure Fabric
Legtura cu baza de date se face pe baza rutrii
conexiunii
Nu necesit cunoaterea locaiei exacte a bazei de
date
Fiecare conexiune ntre aplicaie i SQL Azure
poate face legtura cu diverse servere de baze de
date
Furnizeaz disponibilitate ridicat
SQL Azure Gateway
SQL SQL Azure WCF Data
SQL Azure Gateway Native Client Management Portal Service

este o component
critic
Connection Admin Provisioning
Acces la date Manager Endpoint Endpoint

Gestiunea comenzilor Protocol


Parser
Cu ajutorul Gateway-
ului, utilizatorul poate
ignora detaliile serverului Business Logic Services
din backend
Connection Manager
Topologia de reea
Deploymentul sistemului
Detaliile de management
SQL Azure Gateway

Prin conectarea la gateway se pot accesa


toate funcionalitile SQL Azure
Gateway-ul folosete TDS (protocol de
comunicaie folosit de SQL Server)
Analiza comenzilor maliioase
Autentificarea conturilor
Billing
Gateway-ul redirecteaz TDS ctre serverul
backend i mpacheteaz rezultatul folosind un
TDS securizat napoi ctre client
Backend Server

SQL Azure este construit peste unitile computaionale


Windows Azure
Disponibilitate ridicat
Sistem de stocare distribuit

Other Servers
SQL Azure Fabric
SQL Azure Fabric

Databases
SQL Server
Instance

Other Servers
Management Service
Management Service
Backend Server

SQL Azure Fabric gestioneaz bazele de


date ce stocheaz datele n multe noduri
SQL Azure ntr-o manier distribuit
SQL Azure Fabric controleaz politica i
frecvena replicrii datelor
mbinarea replicrii
Replicare la nivel de tranzacii
Accesarea oricrui serviciu SQL Azure poate
face legtura cu baza de date i obinerea
datelor corecte
AppFabric

AppFabric furnizeaz o infrastructur cloud pentru


conectarea serviciilor i aplicaiilor distribuite
AppFabric

Ce poate face AppFabric


Face posibile legturile ntre aplicaii
Furnizeaz o arhitectur pentru servicii
Bazat pe comunicaie deschis i standarde de servicii,
pe vendori ce furnizeaz concepte de reutilizare a
serviciilor
Componente
Service Bus
Face conectarea simpl prin permiterea aplicaiei s expun
endpoint-urilor ce pot fi accesate de alte aplicaii
Access Control
Furnizeaz abilitatea de autentificare i autorizare
Service Bus

Furnizorul de servicii poate nregistra endpoint-uri n Service Bus


Consumatorul de servicii poate descoperi i folosi aceste endpoint-
uri pentru accesarea serviciului

Service Service
Consumer Provider
Service Bus

Service Bus-ul suport dou tipuri de mecanisme de


comunicaie n funcie de aplicaia client
Mesaje reply
Conexiune direct
Aplicaia client poate seta modul de conectare
hibrid
Se ncearc folosirea conexiunii directe
Dac Service Bus-ul nu detecteaz conexiunea direct,
se folosesc mesaje reply
Message Reply

Service application
(inside the cloud)

Service Bus

Service Bus
reply message
Service Registry
Client requests
the service by URL

Service application
Client
(outside the cloud)
Directly Connect

Service application
(inside the cloud)

Service Bus

Service Bus probes


a directly link if possible

Service application
Client
(outside the cloud)
Controlul Accesului

Serviciul de Control al Accesului ajut la autentificare i


primirea de informaii privind identitatea aplicaiilor client

Client Server
Application Application
Controlul Accesului

Controlul accesului este un serviciu Single


Sign-On (SSO) pentru service bus
Utilizatorul ce acceseaz service bus-ul trebuie
s fie autentificat de ctre serviciul de control al
accesului
Utilizatorul necesit doar un token pentru
accesarea multi-serviciilor
Token-ul poate fi recunoscut pentru accesul la
servicii pentru o anumit perioad de timp
Bibliografie

Massimo Cafaro, GivaniAloisio, Grids, Clouds and Virtualization, 2011


Katarina StanoevskaSlabeva, Thomas Wozniak, Grid and Cloud Computing
-A Business Perspective on Technology and Applications, 2010, Editors
SantiRistol, Springer-VerlagBerlin Heidelberg
Open Cloud Computing Interface -http://occi-wg.org/
Chow et al., Cloud Computing: Outsourcing Computation without
Outsourcing Control, 1stACM Cloud Computing Security Workshop,
November 2009
Foster, Zhao, Raicuand 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://www.focus.com/briefs/top-10-cloud-computing-trends/
Q&A

S-ar putea să vă placă și