Clouds

Published on June 2016 | Categories: Types, Presentations | Downloads: 51 | Comments: 0 | Views: 519
of 71
Download PDF   Embed   Report

cloud computing

Comments

Content

Διαχείριση Δεδομένων στο Σύννεφο
(Cloud computing)

Clouds

Cloud computing???

-2-

Υπηρεσίες Google


Google App Engine








Εξυπηρέτηση εφαρμογών ιστού
Αποθήκευση δεδομένων
Scaling/balancing
Έλεγχος χρηστών μέσω google accounts
Προσομοιωτή υπηρεσιών σε τοπικό υπολογιστή
Δρομολόγηση εργασιών
Πλατφόρμες: Java, python

-3-

Παράδειγμα χρήσης Google’s App Engine


Εφαρμογές ιστού (Web app)




Java servlets, JSPs, static files, data files

Αποθήκευση δεδομένων (entities) στο Datastore



Δεν υπάρχει σχήμα δεδομένων.
Ένα entity έχει properties με values.





Βασικό property που έχουν όλα τα entities είναι το key (κλειδί)

Κάθε entity μπορεί να έχει τα δικά του properties.
Ένα property κάποιου entity μπορεί να είναι δείκτης σε ένα
άλλο entity.

-4-

Αποθήκευση δεδομένων στο App Engine


Δημιουργούμε ένα entity…

-5-

Αποθήκευση δεδομένων στο App Engine


Καλούμε τον Persistent Manager που είναι υπεύθυνος
για την επικοινωνία με το Datastore

-6-

Αποθήκευση δεδομένων στο App Engine


Αποθηκεύουμε το entity στο Datastore

-7-

BigTable


To Datastore βασίζεται στην κατανεμημένη δομή
αποθήκευσης BigTable


(row:string, column:string, timestamp:int64)  string
Περιεχόμενο
σελίδας X (cnn)

Περιεχόμενο σελίδων που δείχνουν τη X

“contents:”

“anchor:cnnsi.com”

“anchor:my.look.ca”

Rows
row=
“com.cnn.www”

“<html>..

T7

“<html>..

T5

“<html>..

T2

“CNN”

T9

“CNN.com”
T11

-8-

BigTable


To Datastore βασίζεται στην κατανεμημένη δομή
αποθήκευσης BigTable


(row:string, column:string, timestamp:int64)  string
“contents:”

Rows
row=
“com.cnn.www”

“<html>..

“anchor:cnnsi.com”

“anchor:my.look.ca”

-row: 64KB string.
-Ισχύει το Α (atomicity) από το ACID
για πρόσβαση σε δεδομένα ενός row.
-Ταξινόμηση
με βάση το row.
T7

“<html>..

T5

“<html>..

T2

“CNN”

T9

“CNN.com”
T11

-9-

BigTable


To Datastore βασίζεται στην κατανεμημένη δομή
αποθήκευσης BigTable


(row:string, column:string, timestamp:int64)  string
“contents:”

Rows
row=
“com.cnn.www”

“<html>..
“<html>..
“<html>..

-column
families= family:qualifier
“anchor:cnnsi.com”
“anchor:my.look.ca”
-Παραδείγματα families: contents,
language, anchor, κ.λ.π.
-Παραδείγματα qualifiers:
T7
lanuage:EN,
anchor:my.look.ca,
T9
T5
“CNN”
“CNN.com”
κ.λ.π.
T11
T2

-timestamps: για versioning

-10-

BigTable


To Datastore βασίζεται στην κατανεμημένη δομή
αποθήκευσης BigTable


(row:string, column:string, timestamp:int64)  string
“contents:”

Rows
row=
“com.cnn.www”

-Περιοχές
από rows συνθέτουν
ένα
“anchor:cnnsi.com”
“anchor:my.look.ca”
tablet (τυπικό μέγεθος: 128MB).
-Τα tablet οργανώνονται σε SSTables
από blocks των 64KB

“<html>..

T7

“<html>..

T5

“<html>..

T2

“CNN”

T9

“CNN.com”
T11

tablet
-11-

BigTable: τα Tablets φτιάχουν BIGTables!
Tablet
64K
block

Start:A
64K
block

End:B
64K
block

SSTable

64K
block

64K
block

64K
block

Index

Tablet
A

SSTable

Index

Tablet
B

SSTable SSTable

C

SSTable SSTable

D

Ένας BIGTable!

-12-

Πρόσβαση σε BIGTable
Tablet
64K
block

Start:A
64K
block

End:B
64K
block

SSTable

64K
block

64K
block

64K
block

Index

Tablet
A

SSTable

Index

Tablet
B

SSTable SSTable

C

SSTable SSTable

D

Ένας BIGTable!

-13-

BigTable

-14-

BigTable


Χρησιμοποιούνται επίσης:




Scheduler (Google WorkQueue)
Google Filesystem
Chubby Lock service

-15-

Clouds

Cloud computing=
aποθήκευση δεδομένων
όπως π.χ. στο Google
Datastore;;;

-16-

Γλώσσα ερωτήσεων στο AppEngine


«Βρες όλους τους εργαζόμενους με το όνομα Smith»



Δεν επιτρέπεται η χρήση {>, >=, <, <=} σε πάνω από ένα
properties !!! ???



Περιορισμούς στη χρήση του sort !!! ???

-17-

Indexing στο App Engine


To App Engine φτιάχνει αυτόματα indexes για την
επεξεργασία ερωτήσεων που χρησιμοποιούν






μόνο {=}
μόνο {<,<=, >, >+} και μόνο σε ένα property
μόνο sort.

1 index για κάθε συνδυασμό
(τύπου entity, property + operator, sorted order)
που συναντά σε κάποιο query

INDEX
PersonID, height, lastname
10, 190, Smith
14, 185, Verg
12, 160, Giann

-18-

Indexing στο App Engine
INDEX
PersonID, height, lastname
10, 190, Smith
14, 185, Verg
12, 160, Giann




, lastName asc

INDEX
PersonID, height, lastname
12, 160, Giann
10, 190, Smith
14, 185, Verg


Εδώ θα φτιαχτούν 2 indexes για το συγκεκριμένο
ερώτημα!
-19-

Indexing στο App Engine


To App Engine φτιάχνει αυτόματα indexes για την
επεξεργασία ερωτήσεων που χρησιμοποιούν






μόνο {=} ή μόνο {<,<=, >, >+} και μόνο σε ένα property ή
μόνο sort.

Για ερωτήσεις άλλου τύπου (π.χ. {<,<=, >, >+} σε
πολλά property} πρέπει να οριστούν indexes
χειροκίνητα.
Ερωτήσεις για τις οποίες δεν υπάρχουν index να
χρησιμοποιηθούν ΔΕΝ αποτιμούνται!

-20-

Περιορισμοί - Χρεώσεις




Ελεύθερα μέχρι 500ΜΒ δεδομένων αποθήκευσης και <5Μ page
views/μήνα,
αλλιώς:






$0.10 per CPU core hour of computing
$0.10 per GB of inbound traffic
$0.12 per GB of outbound traffic
$0.15 per GB of data stored by the application
$0.0001 per email sent by the application

-21-

Clouds

Cloud computing=
Google App Engine;;;

-22-

Amazon S3!


Υπηρεσία αποθήκευσης δεδομένων.




Δυνατότητες εγγραφής, ανάγνωσης και διαγραφής
αντικειμένων (write/read/delete).










“Amazon S3 is storage for the Internet”

Απεριόριστος αριθμός αντικειμένων ( 5GB το κάθε ένα)

Κάθε αντικείμενο αποθηκεύεται σε ένα bucket και
προσδιορίζεται μοναδικά από ένα κλειδί (developerassigned key).
Ένα bucket μπορεί να βρίσκεται USA ή EU, αλλά
πρόσβαση υπάρχει από παντού.
Παρέχεται μηχανισμός ορισμού δικαιωμάτων
αντικειμένων.
Παρέχεται REST και SOAP interface για την πρόσβαση
στα backets (web services).
-23-

Πώς μπορεί να χρησιμοποιήσει κάποιος το Amazon S3;



Εγγραφή στην υπηρεσία
Επιλογή προγραμματιστικής πλατφόρμας


Ruby:











http://rightaws.rubyforge.org/right_aws_gem_doc/
http://s3sync.net/wiki

PHP: http://undesigned.org.za/2007/10/22/amazon-s3-phpclass
Python: http://code.google.com/p/boto/
Perl: http://search.cpan.org/dist/Net-Amazon-S3/
Java: http://jets3t.s3.amazonaws.com/toolkit/toolkit.html
C#: http://www.codeplex.com/ThreeSharp
C: http://libs3.ischo.com/index.html

-24-

Πώς μπορεί να χρησιμοποιήσει κάποιος το Amazon S3;




Ορισμός των buckets και καθορισμός location (USA ή
EU) για κάθε bucket.
Λειτουργίες αποθήκευσης αντικειμένων:






Ανέβασμα αντικειμένων (upload).
Αντιγραφή/μεταφορά αντικειμένων από backet σε backet
Δημιουργία αντιγράφου στο ίδιο το backet.
Διαγραφή αντικειμένων.
Χαρακτηρισμός αντικειμένων με μεταδεδομένα




ζευγάρια (attribute,value): (cost, ”cheap”)

Λειτουργίες ανάκτησης αντικειμένων


Κατέβασμα αντικειμένων (download).

-25-

Πιο τεχνικά!
http://jets3t.s3.amazonaws.com/toolkit/code-samples.html
Connecting to S3
String awsAccessKey = "YOUR_AWS_ACCESS_KEY";
String awsSecretKey = "YOUR_AWS_SECRET_KEY";
AWSCredentials awsCredentials =
new AWSCredentials(awsAccessKey, awsSecretKey);

To communicate with S3, create a class that implements an
S3Service
S3Service s3Service = new RestS3Service(awsCredentials);

Create a bucket
S3Bucket testBucket = s3Service.createBucket("test-bucket”,
S3Bucket.LOCATION_EUROPE);

-26-

Πιο τεχνικά!
Create an S3Object based on a string
String stringData = "Hello World!";
S3Object stringObject = new S3Object("HelloWorld.txt", stringData);

Create an S3Object based on a file
File fileData = new File(“products/cameras/reviews/IXUS90-review.txt");
S3Object fileObject = new S3Object(fileData);

Add metadata
fileObject.addMetadata(“cost", “cheap");

Upload the data objects
s3Service.putObject(testBucket, stringObject);
s3Service.putObject(testBucket, fileObject);

-27-

Πιο τεχνικά!
Retrieve the HEAD of a data object (object's size, date, and other
metadata associated
S3Object objectDetailsOnly = s3Service.getObjectDetails(testBucket,
"helloWorld.txt");

Retrieve a whole data object
S3Object objectComplete = s3Service.getObject(testBucket,
"helloWorld.txt");
BufferedReader reader = new BufferedReader(
new InputStreamReader(objectComplete.getDataInputStream()));
String data = null;
while ((data = reader.readLine()) != null) {
System.out.println(data);
}

-28-

Πιο τεχνικά!
Μulti-threading
S3ServiceSimpleMulti simpleMulti = new S3ServiceSimpleMulti(s3Service);

First, create another bucket
S3Bucket bucket = new S3Bucket(awsAccessKey + ".TestMulti");
bucket = s3Service.createBucket(bucket);

Create an array of data objects to upload
S3Object[] objects = new S3Object[4];
objects[0] = new S3Object(bucket, "object1.txt",
objects[1] = new S3Object(bucket, "object2.txt",
objects[2] = new S3Object(bucket, "object3.txt",
objects[3] = new S3Object(bucket, "object4.txt",

"Hello
"Hello
"Hello
"Hello

from
from
from
from

object
object
object
object

1");
2");
3");
4");

Upload multiple objects.
S3Object[] createdObjects = simpleMulti.putObjects(bucket, objects);
System.out.println("Uploaded " + createdObjects.length + " objects");

-29-

Πιο τεχνικά!
Create an S3 POST form (upload αρχείων στο S3 από Web form)
String unrestrictedForm = S3Service.buildPostForm("public-bucket", "$
{filename}");


public-bucket




filename






ένας backet με δικαιώματα χρήσης από όλους
η web φόρμα

Εξορισμού για τη χρήση ενός backet πληρώνει ο ιδιοκτήτης
του
Requester pay


Δυνατότητα για χρέωση του ατόμου που χρησιμοποιεί τον backet

-30-

Ποιό είναι το κόστος χρήσης της υπηρεσίας;
EU: ακριβότερα!
......

Storage

$0.180 per GB – first 50 TB / month of storage used

$0.170 per GB – next 50 TB / month of storage used

$0.160 per GB – next 400 TB / month of storage used

$0.150 per GB – storage used / month over 500 TB
......
but:
“The physical location of our online services still
matter a great deal!”
(http://news.bbc.co.uk/2/hi/technology/7421099.stm)

-31-

Γιατί να διαλέξω το S3








Επεκτασιμότητα (scalability): μπορεί να διαχειριστεί
υψηλό όγκο δεδομένων για αποθήκευση, υψηλό ρυθμό
ανάκτησης, μεγάλο αριθμό χρηστών.
Αξιοπιστία: 99.99% διαθεσιμότητα.
Απόδοση: Server-side καθυστερήσεις << Internet
latency.
Κόστος: Ξεχνάμε τα data centers!
Απλότητα χρήσης.

-32-

To S3 δεν είναι μόνο του!


Ομάδα υπηρεσιών Ιστού Amazon (Amazon Web
Services - AWS):
«...With AWS you can requisition compute power, storage, and other services–gaining access
to a suite of elastic IT infrastructure services as your business demands them. With AWS you
have the flexibility to choose whichever development platform or programming model
makes the most sense for the problems you’re trying to solve. You pay only for what you use,
with no up-front expenses or long-term commitments, making AWS the most cost-effective way
to deliver your application to your customers and clients. And, with AWS, you can take
advantage of Amazon.com’s global computing infrastructure, that is the backbone of
Amazon.com’s $15 billion retail business and transactional enterprise whose scalable, reliable,
and secure distributed computing infrastructure has been honed for over 13 years....»







Amazon Simple Storage Service (Amazon S3).
Amazon Elastic Compute Cloud (Amazon EC2).
Amazon SimpleDB.
Amazon CloudFront.
Amazon Simple Queue Service (Amazon SQS).
Amazon Elastic MapReduce.
-33-

Amazon Elastic Compute Cloud (EC2)



Περιβάλλον virtual computing.
Δημουργία Amazon Machine Images (AMI) για κάθε
λειτουργικό σύστημα.





Φόρτωμα Image στο S3.
Διαχείριση Image.







Κάθε image μπορεί να έχει εφαρμογές, βιβλιοθήκες,
δεδομένα, κ.λ.π.

Επιλογή λειτουργικού.
Έναρξη όσων Image/Image instances θέλουμε σε κάθε
λειτουργικό.
Παρακολούθηση Image.

Πληρωμή.



ανάλογα με τα Images που τρέχουν.
ογκοχρέωση.
-34-

Amazon Elastic Compute Cloud (EC2)


Δυνατότητες από Image instance types

-35-

Amazon SimpleDB




Περιβάλλον αποθήκευσης και διαχείρισης δομημένων
δεδομένων
Λειτουργίες:




δημιουργία χώρου (domain) για την οργάνωση δομημένων
δεδομένων (item)
GET, PUT, DELETE item στο domain






Γλώσσα ερωτήσεων:
Select/Intersection/Union/AND/OR/Sort/Count...








PUT item 132 with attributes {cost=“cheap”, owner=“Thanassis”}
PUT item 133 with attributes {cost=“cheap”, owner=“Giorgos”}
PUT item 134 with attributes {cost=“expensive”}

επιστρέφει ό,τι έχει βρει τα 5 πρώτα sec + pointer για τα επόμενα.

Indexes (inverted files??)
No locking!

Πρόσβαση σε δεδομένα του S3
Πληρωμή: ογκοχρέωση
-36-

Amazon CloudFront


Περιβάλλον κατανεμημένης αποθήκευσης και διάθεσης
δεδομένων.



Λειτουργία δημιουργίας εικονικού χώρου (distribution).








Κάθε distribution συνδέεται με το bucket του Amazon S3 που
έχει τα δεδομένα.
Κάθε distribution έχει και ένα μοναδικό domain name που
μπορεί να χρησιμοποιηθεί για κλήση από μια ιστοσελίδα ή
μια εφαρμογή.
Τα domain names παραπέμπουν σε διάφορες γεωγραφικές
τοποθεσίες (edge locations) στις USA, EU, Hong Kong,
Japan.
Μέσω της κλήσης του domain name ενός distribution έχουμε
στην ουσία πρόσβαση στα δεδομένα.
-37-

Amazon CloudFront


Παράδειγμα λειτουργίας: πρόσβαση σε σελίδα με κλήση
domain name ενός distribution






Υποστήριξη διάθεσης δεδομένων (default – request for
more if needed):





To CloudFront αποφασίζει ποιο είναι το καλύτερο edge
location να εξυπηρετήσει την κλήση
Αν το edge location αυτό δεν έχει αντίγραφο των
δεδομένων που ζητά ο χρήστης (π.χ. αρχείο) τότε
δημιουργεί ένα αντίγραφο στο edge location από το S3 και
το αφήνει εκεί για μελλοντική χρήση.

peak data transfer speeds of 1,000 megabits per second
peak request rates of 1,000 requests per second.

Πληρωμή


ογκοχρέωση
-38-

Amazon Simple Queue Service (SQS)




Περιβάλλον διαχείρισης μηνυμάτων (messaging) για την
υποστήριξη ροών εργασίων (workflows).
Λειτουργίες:






Δημουργία ουρών (queues).
Αποστολή μηνυμάτων (<8ΚΒ) σε ουρές.
Πρόσβαση σε ουρές μηνυμάτων από όλες τις εφαρμογές
του Amazon AWS.
Κλείδωμα (lock) επεξεργασίας μηνυμάτων.

-39-

Amazon Simple Queue Service (SQS)


Παράδειγμα λειτουργίας: μετατροπή αρχείου video σε
άλλο format












Ο χρήστης φορτώνει το αρχείο από μια ιστοσελίδα.
Το αρχείο αποθηκεύεται στο Amazon S3.
Ένα μήνυμα m1(“the request message”) αποστέλεται στην
ουρά q1(“the incoming queue”) με περιεχόμενο: pointer προς
το αρχείο και το επιθυμητό format.
Η εφαρμογή μετατροπής (που τρέχει στο Amazon EC2)
διαβάζει το μήνυμα m1, χρησιμοποιεί τον pointer για να έχει
πρόσβαση στο αρχείο και κάνει τη μετατροπή.
Το νέο αρχείο αποθηκεύεται στο Amazon S3, και ένα μήνυμα
m2(“the response message”) αποστέλεται στην ουρά q2(“the
outgoing queue”) με περιεχόμενο: pointer προς το αρχείο.
και το επιθυμητό format with a pointer to the converted
video.
Aν το Amazon EC2 παρατηρήσει ότι οι ουρές είναι γεμάτες,
τότε μπορεί να δώσει επιπλέον EC2 instances!

Πληρωμή: ογκοχρέωση
-40-

Amazon Elastic MapReduce


Παροχή Hadoop υλοποίησης του MapReduce


BREAK!

-41-

Hadoop/MapReduce


Η ανάγκη:




Η λύση:






επεξεργασία πολύ πολύ μεγάλων όγκων δεδομένων
(>>1ΤΒ) σε ομάδες (clusters) από υπολογιστές γενικής
χρήσης (commodity hardware).
MapReduce από την Google

Hadoop: Opensource υλοποίηση του MapReduce που ο
καθένας μπορεί να τρέξει στο προσωπικό του cluster ή σε
νοικιασμένο cluster (π.χ., Amazon EC2).
Παράδειγμα χρήσης:




επεξεργασία αρχείου Web Log για τον υπολογισμό των
hits/min για χρονικό διάστημα μιας εβδομάδας.
It scales! το ίδιο πρόγραμμα θα κάνει scale για μήνες,
χρόνια, κ.λ.π. απλά αυξάνοντας το cluster size
-42-

Hadoop/MapReduce


Κάθε αλγόριθμος που θα υλοποιηθεί με MapReduce πρέπει να
σχεδιαστεί ώστε να έχει 2 φάσεις επεξεργασίας:





Φάση Map
Φάση Reduce

Κάθε φάση έχει


ζευγάρια (key, value) ως είσοδο και ως έξοδο.



Έστω το παρακάτω εβδομαδιαίο Web log αρχείο



Φάση Map:


Για κάθε γραμμή...




απομονώνει τη χρονική πληροφορία,
τη μετατρέπει σε minute-in-week slot,
επιστρέφει το ζευγάρι (<minute-in-week slot>, 1).
-43-

Hadoop/MapReduce


Αποτελέσματα φάσης Map (<minute-in-week slot>, 1).








(1387, 1)
(1387, 1)
(1388, 1)
κ.λ.π.
... (22:07 στις 22 Αυγούστου 2005 είναι το 1387στό λεπτό
εκείνης της εβδομάδας)

Φάση Reduce:
Για κάθε <minute-in-week
slot> key και έναν iterator
υπολόγισε το άθροισμα
των values του key.

-44-

Amazon Elastic MapReduce



Παροχή Hadoop υλοποίησης του MapReduce
Λειτουργίες:





Ανάπτυξη MapReduce εφαρμογών σε Java, Ruby, Perl,
Python, PHP, R, or C++.
Φόρτωμα εφαρμογών και δεδομένων στο Amazon S3.
Ορισμός MapReduce “job flow”:








αριθμός και είδος από Amazon EC2 instances που
χρειάζονται.
τοποθεσία δεδομένων.

Παρακολούθηση εργασιών (monitoring job flow).

Πληρωμή: ογκοχρέωση

-45-

Amazon Elastic MapReduce



Παροχή Hadoop υλοποίησης του MapReduce
Λειτουργίες:





Ανάπτυξη MapReduce εφαρμογών σε Java, Ruby, Perl,
Python, PHP, R, or C++.
Φόρτωμα εφαρμογών και δεδομένων στο Amazon S3.
Ορισμός MapReduce “job flow”:






αριθμός και είδος από Amazon EC2 instances που
χρειάζονται.
τοποθεσία δεδομένων.

Παρακολούθηση εργασιών (monitoring job flow).

-46-

Amazon Elastic MapReduce

-47-

Amazon AWS: όλα μαζί!


Amazon Simple Storage Service (Amazon S3).




Amazon Elastic Compute Cloud (Amazon EC2).




Κατανεμημένη αποθήκευση και διάθεση (cache services)

Amazon Simple Queue Service (Amazon SQS).




Light «Βάση δεδομένων»: διαχείριση δομημένων δεδομένων

Amazon CloudFront.




Virtual computing enironment/application server

Amazon SimpleDB.




Xώρος αποθήκευσης.

Διαχείριση ουρών μηνυμάτων.

Amazon Elastic MapReduce.


Χρήση MapReduce.
-48-

Χρήστες Amazon AWS


Application Hosting




Backup and Storage






http://www.smugmug.com/ (video/photo uploads)

On-Demand Workforce
Web traffic




Harvard Medical School

Media Hosting




http://zoomii.com/ (bookstore)

High Performance Computing




http://www.lindenlab.com/ (second life)

E-Commerce




http://www.dreamfactory.com/

Content Delivery




http://www.dreamfactory.com/

http://www.alexa.com/

Web Hosting

-49-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com

-50-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com


Υπηρεσία GrepTheWeb: επεξεργασία των δεδομένων
που συγκεντρώνει o Alexa crawler κάθε βράδυ.






Δυνατότητα ερωτήσεων πάνω στον κεντρικό index του
Alexa και επιστροφή 10M αποτελεσμάτων (δηλ. στοιχεία
για 10Μ sites).
Περαιτέρω επεξεργασία των αποτελεσμάτων με χρήση
γλώσσας ερωτήσεων που χρησιμοποιεί regular
expressions.

Μοιάζει σαν λειτουργία Grep!

-51-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com










Amazon S3 για αποθήκευση
και πρόσβαση σε δεδομένα
Alexa και για αποθήκευση
των αποτελεσμάτων.
Amazon SQS για την
ενορχήστρωση των
εργασιών.
Amazon SimpleDB για τη
αποθήκευση ενδιάμεσων
αποτελεσμάτων, log και
δεδομένα χρηστών για τις
διάφορες εργασίες.
Amazon EC2 για να τρέχει
ένα Hadoop στιγμιότυπο σε
cluster.
Το ίδιο το Hadoop!
-52-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com


Ροή εργασιών








Launch: ξεκινά το GrepTheWeb, ξεκινώντας instances από
Amazon EC2 και το Hadoop cluster.
Monitor: ελέγχει τις εργασίες map/reduce για
επιτυχία/αποτυχία.
Shutdown: υπολογίζει το κόστος της υπηρεσίας και
τερματίζει τα EC2 instances και το Hadoop cluster.
Cleanup: καθαρίζει το Amazon SimpleDB.

-53-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com

-54-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com




Όταν ξεκινά η εφαρμογή, εισάγεται μήνυμα στη
launch queue.
Launch phase (βλέπει το μήνυμα στην ουρά
της):
 εισάγει status και timestamps στο Amazon
SimpleDB,
 εισάγει μήνυμα στο monitor queue,
 ξεκινά Amazon EC2 instances,
 σηκώνει το Hadoop,
 εκτελεί Map/Reduce tasks,
 εκτελεί Map/Reduce tasks και στα slave
nodes
 κάθε Map task τρέχει regular
expressions πάνω στα αρχεία του Alexa
 κάθε Reduce task συνδυάζει τα
αποτελέσματα και βγάζει τα τελικά.
 Τα τελικά αποτελέσματα γράφονται στο S3.
-55-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com


Monitor phase (βλέπει το
μήνυμα στην ουρά της):
 επιβεβαιώνει το
προηγούμενο status στο
SimpleDB,
 ξεκινά την εργασία monitor
και αλλάζει το status στο
SimpleDB,
 εισάγει μήνυμα στο
shutdown queue και στο
billing queue,
 Ελέγχει περιοδικά το
Hadoop status και
ενημερώνει σχετικά το
SimpleDB.

-56-

Παράδειγμα ολοκληρωμένης eφαρμογής: alexa.com


Shutdown phase (βλέπει το
μήνυμα στην ουρά της):
 ξεκινά την εργασία
shutdown και ενημερώνει
τα σχετικά status και
timestamps στο in Amazon
SimpleDB.
 Τερματίζει τις εργασίες
Hadoop και τα στιγμιότυπα
EC2.
 Υπολογίζει το κόστος
χρήσης.

-57-

Clouds
Cloud computing!

-58-

Διαχείριση δεδομένων στο Σύννεφο


Για τους χρήστες IT:




Για τους IT developers:




Cloud Computing = λογισμικό που κάνει scale.

Για τους παροχείς υπηρεσιών και διαχειριστές:




Cloud Computing = IT as a service.

Cloud Computing = υποδομή κατανεμημένης
υπολογιστικής ισχύος στον Ιστό.

Γενικά χαρακτηριστικά:


ελαστική υπολογιστική ισχύ




pay-as-you-go

αποθήκευση δεδομένων σε πολλά μέρη


high data availability

-59-

Διαχείριση δεδομένων στο Σύννεφο


Τυπικές αρχιτεκτονικές:


παροχή computing instances






παροχή computing capacities







Amazon EC2
software as a service (SaaS,
platform as a service (PaaS)
Amazon Elastic Map Reduce
data intensive applications

και τα 2!

Αντιπροσωπευτικές τεχνολογίες




Amazon AWS
Google App Engine
Microsoft Azure
-60-

Διαχείριση δεδομένων στο Σύννεφο


Τυπικές αρχιτεκτονικές:


παροχή computing instance






παροχή computing capacities







Amazon EC2
software as a service (SaaS,
platform as a service (PaaS)
Amazon Elastic Map Reduce
data intensive applications

και τα 2!

Αντιπροσωπευτικές τεχνολογίες




Amazon AWS
Google App Engine
Microsoft Azure
-61-

Πλεονεκτήματα – μειονεκτήματα για το χρήστη


+Μείωση κόστους εξοπλισμού και λογισμικού.




+Αποδοτική επεξεργασία μεγάλων όγκων δεδομένων.









Κόστος ανάλογα με τη χρήση.
It scales!

+Ευκολία δημιουργίας IT υπηρεσιών.
+Απεριόριστη αποθηκευτική δυνατότητα.
+Αξιοπιστία στη διαθεσιμότητα δεδομένων.
+Καθολική πρόσβαση.
-Ιδιωτικότητα.
-Εξάρτηση από συγκεκριμένες infrustructures.

-62-

Παραδείγματα υπηρεσιών cloud

-63-

Παραδείγματα απόδοσης IT υπηρεσιών

-64-

Cloud vs άλλες αρχιτεκτονικές IT

-65-

Σύννεφα στις Βάσεις Δεδομένων!!!


Συστήματα Διαχείρισης Βάσεων Δεδομένων


Transactional data management (Oracle, DB2, MS Sql
server...)





Εφαρμογές εμπορίου, συναλλαγών, κρατήσεων, κ.λ.π.
Μεγέθη το πολύ λίγα ΤΒ
Πολλές λειτουργίες εγγραφής
ACID


Atomicity




Consistency




στο τέλος μιας δοσοληψίας η βάση δεδομένων πρέπει να είναι σε
συνεπή μορφή (κανόνες ακεραιότητας + λογικοί περιορισμοί)

Isolation




ποτέ μια δοσοληψία (π.χ.μεταφορά χρημάτων) δε θα μείνει στην
μέση! (all or nothing!)

ποτέ μια δοσοληψία δε θα λαμβάνει υπόψη άλλες δοσοληψίες που
εκτελούνται ταυτόχρονα

Durability


εφόσον μια δοσοληψία έχει πραγματοποιηθεί επιτυχώς, το
αποτέλεσμα της δε χάνεται!

-66-

Σύννεφα στις Βάσεις Δεδομένων!!!


Συστήματα Διαχείρισης Βάσεων Δεδομένων


Transactional data management




Δύσκολο να μεταφερθεί σε περιβάλλον cloud!
Δεν υλοποιείται εύκολα σε “shared nothing” αρχιτεκτονικές
Δύσκολη η διατήρηση των απαιτήσεων ACID




Πώς να διατηρηθεί η συνέπεια (consistency) και η ατομικότητα
(atomicity) όταν τα δεδομένα βρίσκονται σε διαφορετικούς
κόμβους;

Ιδιωτικότητα


Συνήθως σε τέτοια συστήματα αποθηκεύονται όλα τα δεδομένα
των λειτoυργιών π.χ. ενός οργανισμού/επιχείρησης στην
μεγαλύτερή τους λεπτομέρεια.

-67-

Σύννεφα στις Βάσεις Δεδομένων!!!


Συστήματα Διαχείρισης Βάσεων Δεδομένων


Analytical data management (Teradata, Netezza,
DATAllegro, Vertica, ASterData, ...)









Εφαρμογές συστημάτων αποφάσεων, αποθηκών δεδομένων
(data warehouses), κ.λ.π.
Μεγέθη: PΒ
Μόνο λειτουργίες ανάγνωσης
Εύκολο να μεταφερθεί σε περιβάλλον cloud!
Yλοποιείται εύκολα σε “shared nothing” αρχιτεκτονικές
Δε χρειάζεται η διατήρηση των απαιτήσεων ACID
Ιδιωτικότητα


Συνήθως σε τέτοια συστήματα αποθηκεύονται δεδομένα
αναφορών (π.χ. πωλήσεις κ.λ.π).

-68-

Analytical Data Management in the Cloud


Λειτουργικές απαιτήσεις:


Αποδοτικότητα




Ανάκαμψη από λάθη






να μη χρειαστεί να επανακτελεστεί μια ερώτηση αν συμβεί
κάτι

Λειτουργία σε ετερογενή περιβάλλοντα




θυμηθείτε! pay-as-you-go!

αργοί και γρήγοροι κόμβοι μαζί, χωρίς οι αργοί να αποτελούν
bottleneck!

Λειτουργίες σε κρυπτογραφημένα δεδομένα
Δυνατότητα επικοινωνίας με άλλα εργαλεία Business
Intelligence.

-69-

-70-

Πηγές






ΙΤ Professional, 11(2), March/April 2009.
IEEE Data Engineering Bulletin, 32(1), March 2009.
http://aws.amazon.com
http://code.google.com/appengine
Bigtable: A Distributed Storage System for Structured
Data, Fay Chang, Jeffrey Dean, Sanjay Ghemawat,
Wilson C. Hsieh, Deborah A. Wallach Mike Burrows,
Tushar Chandra, Andrew Fikes, Robert E. Gruber.
Google, Inc.

-71-

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close