Vous êtes sur la page 1sur 30

21/09/2014

Dezvoltarea
aplicaiilor de tip
Cloud
INTRODUCERE

s.l. dr. ing. Daniel Iercan

Organizare
3 ore curs (9 saptamani)
2 ore laborator (B624)
Evaluare distribuita:
S6: nota laborator + test curs
S11: nota laborator + test curs

S14 recuperari (o nota laborator + un


test)

21/09/2014

Evoluia puterii de
calcul

Evoluia puterii de calcul


mainframe i terminale

21/09/2014

Evoluia puterii de calcul


PCs

Evoluia puterii de calcul


reele de calculatoare

21/09/2014

Evoluia puterii de calcul


WWW (servere simple)

Evoluia puterii de calcul


WWW (clustere de servere)

21/09/2014

Evoluia puterii de calcul


WWW era (centre de date)

Microsoft Data Center in Dublin, 27,000 m2, 22 MW, US$ 500 M

Centre de date
consum mare de energie (1.5% din toat energia electric
consumat in SUA, EPA 2007)
durat lung de dezvoltare
capitalul investit este dificil de recuperat/refolosit
este nevoie de specialiti n diverse domenii (securitate,
fiabilitate, load balancing etc.)
se pierde din concentrarea de pe domeniul principal de
activitate
accesibil doar pentru companiile foarte mari din cauza
dificultilor de ntreinere

21/09/2014

Soluia: externalizarea
centrului de date
dezvoltatorii de aplicaii web se concentreaz pe
competenele de baz
timp scurt de lansare
capitalul investit iniial este redus

puterea de calcul devine o utilitate, la fel cum s-a


ntmplat cu energia electric la nceputul secolului XX

Evoluia produciei de energie


electric

See The Big Switch: Rewiring the World, from Edison to Google ,
by Nicholas Carr, Norton, 2008

21/09/2014

Tipuri de soluii
cloud

Tipuri de soluii cloud


Private

Infrastructure

Platform

Software

(On-Premise)

(as a Service)

(as a service)

(as a service)

aplicaie

aplicaie

aplicaie

aplicaie

runtime

runtime

runtime

runtime

securitate i integrare

securitate i integrare

securitate i integrare

securitate i integrare

baze de date

baze de date

baze de date

baze de date

servere

servere

servere

servere

virtualizare

virtualizare

virtualizare

virtualizare

servere hardware

servere hardware

servere hardware

servere hardware

spaiu de stocare

spaiu de stocare

spaiu de stocare

spaiu de stocare

reea

reea

reea

reea

gestionat de dezvoltator

gestionat de provider

21/09/2014

Tipuri de soluii cloud:


referine
http://en.wikipedia.org/wiki/Infrastructure_as_a_service#Infrastructu
re_as_a_service_.28IaaS.29
http://en.wikipedia.org/wiki/Platform_as_a_service
http://en.wikipedia.org/wiki/Capital_expenditure
http://en.wikipedia.org/wiki/Operating_expense

Servicii oferite de
o platform cloud

21/09/2014

putere de calcul (compute)


stocare de fisiere (storage)
baze de date(SQL, NoSQL)
CDN (content delivery network)

reea (network)
deployment
gestionare (management): website i API
application services (push-notifications, queue)
alte servicii (depind de provider)

Principalele
platforme cloud

21/09/2014

Amazon Web Services


http://aws.amazon.com/

Amazon Web Services


lansat oficial n 2006

dezvoltat de amazon.com
deschis pentru o gam larg de limbaje de
programare: Java, Python, Ruby, .Net
lider pentru segmentul Infrastructure as a Service
10 zone geografice
cele mai populare servicii:Amzon EC2, Amazon S3
GovCloud

10

21/09/2014

AWS Products
Amazon Elastic Compute Cloud

Amazon DynamoDB

Amazon Elastic MapReduce

Amazon ElasticCache

Amazon Route 53 (DNS)

Amazon Relational Database Service

Amazon Virtual Private Cloud

Amazon SimpleDB

Amazon CloudFront (CDN)

Amazon Identity and Access


Management

AWS Management Console

Amazon Simple Email Service

Amazon Simple Notification Service

Amazon Simple Storage Service


Amazon Glacier
Amazon Elastic Block Store

AWS: references
http://aws.amazon.com/
http://en.wikipedia.org/wiki/Amazon_Web_Services
http://en.wikipedia.org/wiki/Xen
http://en.wikipedia.org/wiki/Amazon_S3
http://en.wikipedia.org/wiki/Amazon_EC2
http://aws.amazon.com/govcloud-us/

11

21/09/2014

Google Cloud Platform


https://cloud.google.com/

Google Cloud Platform


lansat n 2008

principalele limbaje de programare sunt Python i Java


application as a service -> platform as a service ->
infrastructure as a service
aplicaiile trebuie s respecte anumite constrngeri
posibil greu de portat pe alte platforme
majoritatea serviciilor sunt disponibile gratuit pana la o
anumita limit

12

21/09/2014

Google Cloud Platform


Products and Services
Google App Engine
Google Compute Engine
Google Cloud Storage
Google Cloud Datastore
Google Cloud SQL
Google BigQuerry
Google Cloud Endpoints
Google Cloud DNS

Google Cloud Platform:


references
https://cloud.google.com/why-google/
http://en.wikipedia.org/wiki/Google_Cloud_Platform
http://en.wikipedia.org/wiki/Google_App_Engine

13

21/09/2014

Microsoft Azure
https://azure.microsoft.com/en-us/?rnd=1

Microsoft Azure
lansat n 2010

suport principalele limbaje de programare: .Net, Java,


JavaScript, PHP etc.
inial Platform as a Service
based on Microsoft Azure OS and APP fabric
aproape 15 zone geografice

14

21/09/2014

Microsoft Azure Products and


Services
web sites

BLOB

virtual machines

Hadoop

cloud services

Service Bus

SQL database
Tables
Queues

mobile services

media services
Active Directory

Microsoft Azure: references


https://azure.microsoft.com/en-us/?rnd=1
http://en.wikipedia.org/wiki/Microsoft_Azure

15

21/09/2014

Tipuri de probleme
rezolvate de
tehnologiile de tip
cloud

On / Off
Inactivity
Period

ex: rularea unor experimente

16

21/09/2014

Cretere rapit

ex: un joc care are mare succes

Vrfuri predictibile

puterea de procesare nefolosit nsemn resurse irosite


incapacitatea de a satisface cererile de vrf pot distruge
afacerea

17

21/09/2014

Vrfuri nepredictibile

incapacitatea de a gestiona un altfel de vrf poate


avea efecte negative asupra afacerii

Ce se ntmpl dac platforma


cloud moare
platformele cloud au o fiabilitate mult mai redicat dect
ce ar putea realiza o companie pe cont propriu
dac fiabilitatea este foarte important se recomand
pstrarea unui numr minim de server n interiorul
companiei care s asigure minimul necesar funcionrii
afacerii
ex.: spitalele au propriile generatoare de energie electric

18

21/09/2014

Impedimente n adoptarea
tehnologiilor de tip cloud
date ultra-sensibile
legal
disponibilitatea resurselor cloud

Beneficiile folosirii puterii de


calcul din cloud
cost redus

spaiu de stocare crescut


nivel ridicat de automatizare
flexibilitate
mobilitate crescut
accentul se pune pe inovare i nu pe ntreinerea
infrastructurii

19

21/09/2014

Arhitectura
aplicaiilor de tip
cloud

Elemente de baz
HTTP

Service Oriented Architecture (SOA)


Representational State Transfer (REST)
Comunicare slab cuplata (cozi)

20

21/09/2014

HTTP
protocol de comunicare
baza pentru WWW
versiunea curenta HTTP/1.1

protocol de tipul request-response


arhitectura client-server (ex.: browser web
server)
resursele sunt indetificate n mod unic prin URL

Protocol
HTTP
server

browser
create a TCP connection
send a request
receive a response
send a request
receive a response

close connection

21

21/09/2014

Structura unui mesaj REQUEST


STRUCTURA
request-line
headers

DESCRIERE
method, URI, protocol version
proprieti cheie-valoare

empty line
separator ntre header i body
message body coninut trimis ctre server
GET /hello.txt HTTP/1.1
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Host: www.example.com
Accept-Language: en, mi

Structura unui mesaj


RESPONSE
STRUCTURA
status-line
headers
empty line

DESCRIERE
protocol version, success or error code,
textual description
proprieti cheie-valoare
separator ntre header i body

message body coninut trimis ctre client

22

21/09/2014

HTTP response - exemplu


HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain
Hello World! My payload includes a trailing CRLF.

Request methods
GET
HEAD
POST
PUT
DELETE
TRACE
OPTIONS
CONNECT
PATCH

23

21/09/2014

Status codes
1XX information
2XX success
3XX redirection

4XX client error


5XX server error

HTTPS
certificate based encrypted connection

24

21/09/2014

Demo - Fiddler
GET HTML page
POST post HTML page

Http - References
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://www.telerik.com/download/fiddler

25

21/09/2014

Arhitecturi bazate pe servicii


(SOA)
serviciu = unitate logic ce se autogestioneaz
partajeaz doar protocoale
schimb de informaii ntre calculatoare fr intervenia unui operator
uman
serviciu web metod de comunicare ntre componente aflate pe
WWW
Comunicare slab cuplata, dependente la nivel de contract(interfa) si
nu API
Tipuri de servicii dup protocol:
SOAP bazat pe XML
RESTful bazat pe protocolul HTTP

Avantaje SOA
Abstractizare
Autonomie
Compozabilitate
Localizare
Contract formal
Fr stare
Reutilizare
Cuplare slab

26

21/09/2014

SOA - References
http://en.wikipedia.org/wiki/Service-oriented_architecture

RESTful
client-server

fr stare
cacheable reduce numrul de mesaje dintre client si
server
sistem construit in straturi clientul nu tie dac este
conectat la un intermediar sau direct la serverul final
interfa uniformizat permite componentelor s se
dezvolte independent

27

21/09/2014

Web service API


operaiile sunt mapate peste verbele HTTP:

GET obine o resurs


POST creaz o resurs
PUT actualizeaz o resurs
DELETE - terge o resurs)

format mesaj
XML:
<Persoana> <Nume>Jon</Nume><Prenume>Smith</Prenume></Persoana>
JSON:
{nume: Jon, prenume:Smith}

Web service API


resursele sunt identificate prin legturi hypertext
relaiile sunt definite prin legturi hypertext

28

21/09/2014

Demo - Serviciu nscriere


laborator
operaii disponibile
realizare nscriere
vizualizare nscriere

TODO: initializare baza de date azure, lista studenti

REST - References
http://en.wikipedia.org/wiki/Representational_state_transfer

29

21/09/2014

Coad de mesaje
comunicare asincron
mesajele sunt salvate pe server pn cnd sunt citite
mesajele trebuie s respecte anumite limite
avantajul major pentru cloud scalabilitate reidicat

server

sender

queue

reciever

Coad de mesaje - References


http://en.wikipedia.org/wiki/Message_queue

30

Vous aimerez peut-être aussi