You are on page 1of 8

Από τα Grids στα Clouds

1. Γενικές έννοιες του Grid

Το Grid ορίζεται ως ένα σύστημα, που οργανώνει κατανεμημένους πόρους


χρησιμοποιώντας προτυποποιημένα, ανοιχτά, γενικού σκοπού πρωτόκολλα και
διεπαφές για να δώσει ουσιώδη ποιότητα υπηρεσίας (2).
Βασικά στοιχεία του ορισμού αυτού εξετάζονται παρακάτω:

Οργάνωση κατανεμημένων πόρων: Ένα Grid ενσωματώνει και οργανώνει


Υπολογιστικούς πόρους και τους χρήστες, που υπάρχουν μέσα στις
διαφορετικές περιφέρειες ελέγχου.

Χρήση προτυποποιημένων, ανοιχτών, γενικού σκοπού πρωτόκολλων και


διεπαφές: Το Grid είναι κατασκευασμένο από ανοιχτά πρωτόκολλα
και διεπαφές που αποκρίνονται σε θεμελιώδη προβλήματα όπως πιστοποίηση,
εξουσιοδότηση, ανακάλυψη πόρων και πρόσβαση σε πόρους.

Παροχή ουσιωδών ποιοτήτων υπηρεσίας (QoS): Το Grid επιτρέπει στους


πόρους, από τους οποίους απαρτίζεται, να χρησιμοποιούνται
με οργανωμένο τρόπο για να παρέχουν διάφορες ποιοτικές υπηρεσίες.

Η αρχιτεκτονική του Grid περιγράφεται συνοπτικά παρακάτω (2):

Εικόνα 1: Αρχιτεκτονική του Grid

• Δομή (Fabric): Το στρώμα αυτό του Grid παρέχει την πληθώρα των
πόρων, που μπορούν να διαμοιραστούν μεταξύ των χρηστών του grid
μέσω των πρωτοκόλλων που παρέχει στους χρήστες του. Οι πόροι μπορεί

1
να είναι για παράδειγμα ένα κατανεμημένο σύστημα αρχείων, ένα cluster
υπολογιστών κλπ. Τα στοιχεία του fabric υλοποιούν τοπικές λειτουργίες
ανά πόρο που λειτουργούν πάνω σε συγκεκριμένους πόρους (είτε
φυσικούς είτε λογικούς) οι οποίοι μπορεί να ανήκουν σε τρείς
κατηγορίες:
o Υπολογιστικοί Πόροι
o Αποθηκευτικά Μέσα
o Δικτυακοί Πόροι
• Συνδεσιμότητα: Το επίπεδο της συνδεσιμότητας ορίζει τα θεμελιώδη
πρωτόκολλα επικοινωνίας και πιστοποίησης, που είναι απαραίτητα για
τις δικτυακές συνδιαλλαγές του Grid. Τα πρωτόκολλα επικοινωνίας
επιτρέπουν την συνδιαλλαγή δεδομένων μεταξύ των πόρων του
επιπέδου δομής, και τα πρωτόκολλα πιστοποίησης χτισμένα πάνω σε
αυτά παρέχουν ασφαλείς κρυπτογραφημένους μηχανισμούς
πιστοποίησης για τους χρήστες του Grid (1).
• Διαμοίραση Πόρων: Το επίπεδο διαμοίρασης πόρων (και
συνδεσιμότητας) επιτρέπει στον πιστοποιημένο χρήστη να χειριστεί
απομακρυσμένους πόρους δικτύου και υπηρεσίες. Ο ρόλος του επιπέδου
αυτού είναι η διαπραγμάτευση, η αρχικοποίηση, η επίβλεψη, ο έλεγχος, η
λογιστική και η πληρωμή της διαμοίρασης ενεργειών σε μεμονωμένους
πόρους (4).
• Συγκεντρωτικές υπηρεσίες: Το επίπεδο αυτό περιέχει πρωτόκολλα και
υπηρεσίες που δεν συσχετίζονται με κανένα συγκεκριμένο πόρο αλλά με
συλλογές πόρων. Παραδείγματα τέτοιων υπηρεσιών είναι τα παρακάτω:
o Υπηρεσίες Καταλόγου που επιτρέπουν την ανακάλυψη
υπαρχόντων πόρων.
o Υπηρεσίες συν-ανάθεσης, δρομολόγησης και μεσάζουσες
υπηρεσίες που επιτρέπουν την ανάθεση ενός ή περισσότερων
πόρων για ένα σκοπό και την δρομολόγηση εργασιών προς
αυτούς.
o Υπηρεσίες επίβλεψης και διάγνωσης υποστηρίζουν την επίβλεψη
των πόρων από αποτυχία ή κακόβουλες επιθέσεις.
o Υπηρεσίες αντιγράφων ασφαλείας δεδομένων υποστηρίζουν την
αντιγραφή των δεδομένων με σκοπό την αύξηση της απόδοσης
και της αξιοπιστίας αυτών.
• Εφαρμογές: Είναι το υψηλότερο επίπεδο όπου εκτελούνται οι
εφαρμογές των χρηστών που χρησιμοποιούν τα χαμηλότερα επίπεδα του
Grid έτσι ώστε να έχουν πρόσβαση στους πόρους αυτού.

2
2. Εισαγωγή στο Cloud Computing
Το Cloud Computing αποτελεί μια εδραιωμένη έκφανση της τεχνολογίας των
κατανεμημένων συστημάτων με κάποια ιδιαίτερα χαρακτηριστικά που το
τοποθετούν στο επίκεντρο των σημερινών εξελίξεων σε ότι αφορά την
προσφορά υπολογιστικών πόρων στο διαδίκτυο (1).

2.1 Ορισμοί
Το Cloud Computing είναι η παροχή συχνά εικονικών πόρων, που μπορούν
δυναμικά να κλιμακωθούν (dynamic scalability), ως υπηρεσία μέσω του
διαδικτύου έχοντας ως πρότυπο του οργανισμούς κοινής ωφέλειας (utilities)
(3). Επίσης πέραν των υπηρεσιών που παραδίδονται μέσω του διαδικτύου, που
από παλαιότερα ονομάζονται Λογισμικό ως υπηρεσία (Software-as-a-Service -
Saas), το Cloud Computing αναφέρεται και στο υλικό αλλά και το λογισμικό
συστημάτων που χρησιμοποιεί και στα κέντρα δεδομένων (data centers) (4).

Στο cloud υπάρχουν 3 βασικά μοντέλα παροχής υπηρεσιών:

1. Υποδομή ως υπηρεσία (Infrastructure as a Service - IaaS): Αυτή η


υπηρεσία προσφέρει το υλικό (hardware) για την εκτέλεση εφαρμογών
και αποθήκευση δεδομένων.

2. Πλατφόρμα ως υπηρεσία ( Platform as a Service - PaaS): Αυτή η υπηρεσία


παρέχει υποδομή σε υλικό και λογισμικό για την ανάπτυξη εφαρμογών.

3. Λογισμικό ως υπηρεσία (Software as a Service - SaaS): Με αυτή την


υπηρεσία, ο χρήστης μπορεί να χρησιμοποιήσει κάποιο λογισμικό χωρίς
να το έχει αποκτήσει, καταβάλλοντας ένα αντίτιμο ανάλογο της χρήσης
που θα κάνει.

Αυτές είναι οι 3 βασικές κατηγορίες μοντέλων, ωστόσο οι πάροχοι cloud


μπορούν να προσφέρουν πολλούς διαφορετικούς τύπους υπηρεσιών
(Everything as a Service). Π.χ. η ανάλυση αρχείων καταγραφής διαφόρων
συσκευών προσφέρεται ως cloud υπηρεσία (Logging as a Service - LaaS) (5).

Ως Cloud ορίζουμε το υλικό και το λογισμικό που χρησιμοποιεί το datacenter.


Ένα cloud ανάλογα με την διαθεσιμότητά του προς το κοινό μπορεί να χωριστεί
σε δύο κατηγορίες (4):

1. Δημόσιο Cloud (Public Cloud): Αυτό είναι διαθέσιμο προς το κοινό με


οικονομικό μοντέλο το χρησιδάνειο. Δηλαδή αν κάποιος χρήστης θελήσει,
μπορεί να απασχολήσει με κάποια εργασία ένα τμήμα του cloud για όση
ώρα αυτός επιθυμεί και καλείται τελικά να πληρώσει μόνο για την ώρα
που το χρησιμοποίησε.
2. Ιδιωτικό Cloud (Private Cloud): Αυτό αποτελεί κλειστό datacenter που
λειτουργεί μόνο για τις ανάγκες μίας εταιρείας. Τα ιδιωτικά clouds δεν

3
περιλαμβάνονται μέσα στην γενικότερη έννοια του cloud computing
καθώς δεν προσφέρονται σαν υπηρεσία.

Άρα το Cloud Computing αποτελεί το άθροισμα του SaaS και του Utility
Computing. Οι πάροχοι του SaaS είναι χρήστες του Cloud. Συχνά για διάφορους
λόγους, όπως η οικονομία και ασφάλεια, αναπτύσσονται υβριδικά cloud (7) που
χρησιμοποιούν συγχρόνως ιδιωτικό και δημόσιο cloud, ή ακόμη και παραπάνω
από ένα δημόσιο cloud.

Από την σκοπιά του υλικού ας δούμε τρεις νέες προοπτικές που μας προσφέρει
το cloud computing:

1. Ψευδαίσθηση απείρων υπολογιστικών πόρων κατ' απαίτηση δίνοντας


έτσι την δυνατότητα στους χρήστες του Cloud να μην χρειάζεται να
προετοιμάζονται για την ζήτηση εξαρχής.
2. Εξάλειψη της εξ' αρχής δέσμευσης των χρηστών του Cloud δίνοντας έτσι
την δυνατότητα σε νέες εταιρείες να ξεκινούν με μικρούς πόρους και
καθώς η ζήτηση για την υπηρεσία τους αυξάνεται να αυξάνουν και τους
πόρους τους.
3. Η δυνατότητα να πληρώνουμε για υπολογιστικούς πόρους σε
βραχυχρόνια βάση ανάλογα με την ζήτηση, και την απελευθέρωσή
τους, όταν δεν είναι πλέον απαραίτητοι.

2.2 Διαχωρισμός
Συχνά το Cloud Computing συγχέεται με άλλες τεχνολογίες του διαδικτύου που
προσφέρουν παρόμοιες υπηρεσίες.

Grid Computing: Το Grid Computing είναι μια μορφή κατανεμημένου


υπολογιστικού συστήματος. Σαν ένας εικονικός υπέρ-υπολογιστής αποτελείται
από μια συστάδα χαλαρά συνδεδεμένων συστημάτων, τα οποία συνεργούν για
να βγάλουν εις πέρας μεγάλες εργασίες.

1. Utility Computing: Είναι η "συσκεύαση" υπολογιστικών και


αποθηκευτικών πόρων και η παροχή τους ως μια υπηρεσία παρόμοια με
αυτές της κοινής ωφέλειας.
2. Autonomic Computing: Αυτοδιαχειριζόμενα υπολογιστικά συστήματα.

Πολλές Cloud υλοποιήσεις σήμερα βασίζονται πάνω στα Grid και έχουν
αυτονομιστικά χαρακτηριστικά και χρεώνουν τις υπηρεσίες τους ως παροχές.
Αλλά το Cloud computing αποτελεί κάτι περισσότερο από αυτά και δεν είναι
απαραίτητο κάθε διαφορετικό cloud να περιέχει τα παραπάνω.

2.3 Χαρακτηριστικά
Το Cloud Computing δεν είναι μια αυστηρά ορισμένη έννοια. Στην
πραγματικότητα είναι αρκετά αυθαίρετη και κάθε υλοποίησή του μπορεί να

4
διαφέρει σημαντικά σε σχέση με τις υπόλοιπες. Υπάρχουν όμως κάποια κοινά
χαρακτηριστικά που είναι κοινά μεταξύ των υλοποιήσεων ή τουλάχιστον
μοιάζουν σε ένα μεγάλο βαθμό.

2.3.1 Οικονομικά
Το βασικό μοντέλο του Cloud Computing ορίζει ότι ο χρήστης πληρώνει για ότι
χρησιμοποιεί, αφού οι υπολογιστικοί πόροι προσφέρονται ως μια υπηρεσία η
οποία δανείζεται από τον cloud provider προς τον cloud user. Ο τελευταίος
καταναλώνει χρόνο από τους πόρους ανάλογα με τις ανάγκες του την
συγκεκριμένη χρονική στιγμή και τελικά πληρώνει ανάλογα με τον χρόνο που
κατανάλωσε.

Το μοντέλο αυτό επιτρέπει στους χρήστες του cloud computing να αποφεύγουν


τα αρχικά κόστη βασικής επένδυσης για υλικό, λογισμικό και υπηρεσίες (Capital
Expenditure - CapEx) μισθώνοντάς τα από τον cloud provider και πληρώνοντας
μόνο για τον χρόνο που τα χρησιμοποιούν ή με βάση κάποιο συνδρομητικό
κόστος προσφέροντας έτσι περισσότερη ευελιξία. Έτσι νέες εταιρείες του
διαδικτύου μπορούν να εισέλθουν στην αγορά με μικρότερο αρχικό κεφάλαιο
και έχουν την δυνατότητα να διακόψουν την χρήση του cloud όποτε θέλουν σε
περίπτωση αποτυχίας της εταιρείας.

Εικόνα 2: Το οικονομικό μοντέλο του Cloud (3)

5
Όπως είναι προφανές και από το διάγραμμα, με τη χρήση των clouds μπορούμε
να αποφύγουμε τα αρχικά κόστη εγκατάστασης και να έχουμε μόνο λειτουργικά
κόστη τα οποία αυξομειώνονται ανάλογα με την χρήση της υπηρεσίας που
προσφέρεται.

2.3.2 Αρχιτεκτονική
Οι περισσότερες υλοποιήσεις του cloud computing σήμερα βασίζονται στην
παροχή αξιόπιστων υπηρεσιών με την χρήση data centers τα οποία είναι
χτισμένα με την χρήση διαφόρων επιπέδων τεχνολογιών εικονικοποίησης
(virtualization). Οι Cloud υπηρεσίες είναι προσβάσιμες από όλους του χρήστες
του διαδικτύου. Επίσης τα clouds προσφέρουν ένα σημείο εισόδου για κάθε
υπηρεσία καθώς αποτελούν κατανεμημένα συστήματα αδιαφανή προς τους
χρήστες, δηλαδή ο χρήστης δεν είναι σε θέση να γνωρίζει ποιος εξυπηρετητής
του προσφέρει την υπηρεσία που λαμβάνει καθώς αυτός είναι κάπου μέσα στο
cloud. Τα clouds γενικότερα προσφέρουν συγκεκριμένα πρότυπα ποιότητας
υπηρεσίας (QoS) και στους εμπορικούς πελάτες τους προσφέρουν Συμφωνίες
Επιπέδου Υπηρεσίας (Service Level Agreements). Τα ανοιχτά πρότυπα και το
λογισμικό ανοιχτού κώδικα γενικότερα έχουν προσφέρει ιδιαίτερα στην
ανάπτυξη πολλών υλοποιήσεων του cloud computing μέχρι σήμερα (3).
Επιπλέον υπάρχει λογισμικό ανοιχτού κώδικα, όπως το owncloud [6], που δίνει
την δυνατότητα δημιουργίας cloud υπηρεσιών στον καθένα. Με αυτόν τον
τρόπο οποιοσδήποτε μπορεί να αξιοποιήσει διαθέσιμους υπολογιστικούς
πόρους για να αναπτύξει την δική του cloud υποδομή, στην οποία θα έχει τον
πλήρη έλεγχο.

2.4 Υλοποιήσεις του Cloud Computing


Κάθε εφαρμογή του Cloud Computing χρειάζεται ένα υπολογιστικό μοντέλο, ένα
μοντέλο αποθήκευσης και ένα μοντέλο επικοινωνίας. Για να πετύχει το σύστημα
ελαστικότητα και την ψευδαίσθηση απείρων πόρων θα πρέπει οι πόροι να είναι
virtualized. Το πώς οι πόροι βέβαια περιπλέκονται και διαμοιράζονται μπορεί να
είναι αδιαφανές ή και διαφανές προς τον προγραμματιστή εφαρμογών. Θα
μπορούσαμε έτσι να συγκρίνουμε τις υλοποιήσεις από το επίπεδο αφαίρεσης
που προσφέρουν προς τον προγραμματιστή (4).

2.4.1 Amazon EC2 (Elastic Compute Cloud)


Σύμφωνα με τον παραπάνω διαχωρισμό, το Amazon EC2 ανήκει στην πλευρά
της πλήρους διαφάνειας. Κάθε EC2 Instance μοιάζει με φυσικό υλικό. Ο χρήστης
μπορεί να προσαρμόσει όλο του το λογισμικό από τον πυρήνα και πάνω. To API1
που προσφέρει το EC2 προβάλλει μόνο μερικές δεκάδες κλήσεις για την
παραμετροποίηση του virtualized υλικού. Δεν υπάρχουν όρια στο τι εφαρμογές

1 API - Application Programming Interface

6
μπορούν να τρέξουν σε αυτό και λόγω του ότι η γενικότερη υλοποίηση
προσφέρει πολύ χαμηλά επίπεδα αφαίρεσης σε όλα τα επίπεδα, επιτρέπει στους
χρήστες να φτιάξουν ότι θέλουν. Αυτό φυσικά κάνει πολύ δύσκολη την
κλιμάκωση και την επαναφορά σε περίπτωση δυσλειτουργίας υλικού.

Το βασικό μοντέλο του EC2 δίνει την δυνατότητα στον χρήστη να νοικιάζει
υλικό πάνω στο οποίο μπορούν να τρέξουν εικονικές μηχανές (virtual
machines). Ο χρήστης έχει την δυνατότητα να δημιουργήσει, να εκτελέσει και να
τερματίσει την λειτουργία εικονικών μηχανών κατά βούληση, όπως αυτός θέλει
πληρώνοντας με την ώρα χρήσης. Επίσης μπορεί να έχει κάποιες περιορισμένες
επιλογές στο επίπεδο του hardware, πάνω στο οποίο θα τρέχουν οι εικονικές
μηχανές. Προσφέρει εικονικές μηχανές που τρέχουν GNU/Linux αλλά και
Microsoft Windows.

Από άποψη αρχιτεκτονικής το EC2 χρησιμοποιούσε την μηχανή Xen για την
δημιουργία και διαχείριση των εικονικών μηχανών μέχρι τον Νοέμβριο του 2017
όπου ανακοίνωσε ότι υιοθετεί το KVM. Κάθε εικονική μηχανή λειτουργεί ως
εικονικός εξυπηρετητής. Ανάλογα με τις υπολογιστικές δυνατότητες, την κύρια
μνήμη που διαθέτουν και τον αποθηκευτικό χώρο που έχουν οι εικονικές
μηχανές χωρίζονται σε μικρές, μεσαίες και μεγάλες.

2.4.2 Google Compute Engine


To Compute Engine λειτουργεί από τον Απρίλιο του 2013 και είναι η IaaS cloud
υπηρεσία της Google. Έχει πολλές ομοιότητες με το EC2 της Amazon, όπως είναι
η δυνατότητα δημιουργίας Windows and Linux εικονικών μηχανών, API, CLI και
GUI διεπαφές. Όπως και το EC2, δίνει την δυνατότητα δημιουργίας μικρών,
μεσαίων και μεγάλων εικονικών μηχανών, αλλά επιπλέον, επιτρέπει στον
χρήστη να δομήσει εικονικές μηχανές με τους πόρους που επιθυμεί.

Η Google έχει cloud υποδομές σε 17 γεωγραφικές περιοχές, 5 στην Ευρώπη , 7


στην Αμερική, 4 στην Ασία και 1 στην Αυστραλία σύμφωνα με κάποια
προηγούμενη αναφορά. Έτσι προσφέρει την δυνατότητα στους χρήστες να
χρησιμοποιήσουν την κατάλληλη περιοχή για να αυξήσουν την απόδοση ή να
ευνοήσουν κάποιο άλλον παράγοντα του συστήματός τους. Επίσης, για πρώτη
φορά η Google δίνει την δυνατότητα στους χρήστες της cloud υπηρεσίας της, να
χρησιμοποιούν το δίκτυο οπτικών ινών της και όχι ενός ISP. Ομοίως, η Amazon
έχει cloud υποδομές σε 16 γεωγραφικές περιοχές (σύμφωνα με κάποια
προηγούμενη αναφορά) με πρόσθετες υπηρεσίες που αποσκοπούν στην αύξηση
της ταχύτητας μεταφοράς δεδομένων. Σε κάθε περίπτωση τα δεδομένα
αποθηκεύονται και μεταφέρονται κρυπτογραφημένα.

Όσον αφορά την πολιτική χρεώσεων, Google και Amazon προσφέρουν χρέωση
ανά δευτερόλεπτο. Επίσης έχουν γενναιόδωρα προγράμματα για δωρεάν δοκιμή
των υπηρεσιών τους, που μάλιστα στην περίπτωση της Google, κάποιος μπορεί

7
να χρησιμοποιεί ένα VM με λίγους υπολογιστικούς πόρους ( 0.2 virtual CPU, 0.60
GB μνήμη, 30 GB disk with 5 GB cloud storage) για όσο διάστημα επιθυμεί.

2.4.3 Microsoft Azure


Το Azure τρέχει πάνω σε datacenters που έχει δημιουργήσει η Microsoft για τον
σκοπό αυτό. Παρέχει την δυνατότητα δημιουργίας Windows αλλά και Linux
εικονικών μηχανών. Προσφέρει αντίστοιχα εργαλεία για την επεξεργασία,
αποθήκευση δεδομένων και δικτύωση εικονικών μηχανών, με τα clouds της
Amazon και Google. Κύριο πλεονέκτημα του cloud της Microsoft είναι η
ευκολότερη ανάπτυξη .NET εφαρμογών και η δημιουργία υβριδικών cloud. Η
Microsoft αναγνώρισε έγκαιρα την ανάγκη για υβριδικά cloud και ανέπτυξε
εργαλεία, όπως το Hybrid SQL Server, που βοηθούν στην λειτουργία τους. Τα
τελευταία χρόνια η Microsoft προσέγγισε τις τεχνολογίες ανοιχτού λογισμικού
και το Linux. Χαρακτηριστικό παράδειγμα είναι ότι πλέον το .NET Framework
είναι ανοιχτού κώδικα. Αυτή η τάση φαίνεται και στην cloud υποδομή της, όπου
σύμφωνα με την ίδια εταιρεία το Linux χρησιμοποιείται στην υποδομή του cloud
της καθώς επίσης και το 1/3 των εικονικών μηχανών στο Azure τρέχει Linux.

Αναφορές
1. Ι. Μοσχάκης, «Χρονοδρομολόγηση Παράλληλων Εργασιών σε Υπολογιστικά
Clouds ­ Μοντελοποίηση, Προσομοίωση και Ανάλυση της Απόδοσης».
Μεταπτυχιακή Διατριβή, 2010.

2. Foster, Ian και Kesselman, Carl (Editors). The GRID 2: Blueprint for a New
Computing Infrastructure. [επιμ.] Ian Foster και Carl Kesselman. 2nd Edition.
Elsevier, 2004. ISBN: 1558609334.

3. Wikipedia. Cloud Computing. Wikipedia The Free Encyclopedia.[Online]


Wikimedia. http://en.wikipedia.org/wiki/Cloud_computing.

4. Armbrust, Michael, et al. Above the Clouds: A Berkeley View οf Cloud


Computing. UC Berkeley RAD Systems Laboratory, Technical Report No.
UCB/EECS­2009­28, February 10, 2009.

5. I. Mavridis Ilias and H. Karatza. "Performance evaluation of cloud-based log


file analysis with Apache Hadoop and Apache Spark", Journal of Systems and
Software 125 (2017): 133-151.

6. https://owncloud.org

7. G. L. Stavrinides and H. D. Karatza, “Dynamic Scheduling of Bags-of-Tasks


with Sensitive Input Data and End-to-End Deadlines in a Hybrid Cloud”,
Multimedia Tools and Applications, Springer, 2020.

You might also like