Δευτέρα 2 Ιανουαρίου 2017

Τι είναι το «Cloud Computing»

Τι είναι το «cloud computing»
To «cloud computing» είναι μία τεχνολογία που έχει αναπτυχθεί τα τελευταία χρόνια και πλέον πολλές εφαρμογές βασίζονται πάνω σε αυτό. To «cloud computing» είναι ζωτικής σημασίας για τις μικρομεσαίες επιχειρήσεις γιατί προωθεί την παραγωγικότητα και μειώνει τα κόστη της επιχείρησης.
Ο ορίσμός το τι είναι cloud, σύμφωνα με το National Institute of Standards and Technology: Το cloud computing είναι ένα μοντέλο που επιτρέπει ευέλικτη, on-demand δικτυακή πρόσβαση σε ένα κοινόχρηστο σύνολο παραμετροποιήσιμων υπολογιστικών πόρων (όπως δίκτυα, servers, αποθηκευτικοί χώροι, εφαρμογές και υπηρεσίες), το οποίο μπορεί να τροφοδοτηθεί γρήγορα και να διατεθεί με ελάχιστη προσπάθεια διαχείρισης ή αλληλεπίδραση με τον πάροχο της υπηρεσίας. Αυτό το cloud μοντέλο προωθεί την διαθεσιμότητα και αποτελείται από πέντε βασικά χαρακτηριστικά, τρία μοντέλα παροχής υπηρεσιών, και τέσσερα μοντέλα ανάπτυξης.
Το «cloud» στο ίντερνετ, το απεικονίζουν σαν ένα σύννεφο στο οποίο συνδέονται τα router, οι webservers στους οποίους υπάρχουν οι web εφαρμογές κ.τ.λ. και εν συνεχεία οι υπολογιστές που χρησιμοποιούν αυτές τις εφαρμογές. Το σύννεφο αυτό είναι το λεγόμενο «cloud».
Το «cloud computing» είναι μία δομή, με την οποία μας δίνεται η δυνατότητα να έχουμε πρόσβαση και να χρησιμοποιούμε web εφαρμογές χωρίς να τις διαθέτουμε στον υπολογιστή μας ή σε κάποια άλλη συσκευή που είναι διασυνδεδεμένη με το ίντερνετ. Σε αυτή τη δομή η εφαρμογή βρίσκεται σε ένα server και εμείς τη χρησιμοποιούμε χωρίς να χρειάζεται να την εγκαταστήσουμε στον υπολογιστή μας. Για παράδειγμα η Adobe, η γνωστή εταιρία, έχει δημιουργήσει μία online πλατφόρμα, την Adobe Creative Cloud. Αυτή η πλατφόρμα λειτουργεί ως εξής: Ένας χρήστης μπορεί με ένα αρκετά μικρό ποσό μηνιαίως να γίνει μέλος και να χρησιμοποιεί online εργαλεία όπως το Photoshop, Dreamweaver. Αυτό γίνεται χωρίς να χρειάζεται ο χρήστης να έχει κάποιο από αυτά τα προγράμματα στον υπολογιστή του. Όλα τα updates κλπ γίνονται από την ίδια την εταιρία και ο χρήστης πληρώνει ποσό ανάλογα με την «πακέτο» που έχει επιλέξει. Το Photoshop κοστίζει πάνω από 1000 Ευρώ. Με αυτήν την cloud εφαρμογή ο χρήστης ενώ χρησιμοποιεί το πλήρες software πληρώνει μόνο λίγα ευρώ το μήνα για τη χρήση αυτή και το βασικότερο είναι ότι έχει πρόσβαση σε αυτό και στα αρχεία του από οποιονδήποτε υπολογιστή.
Πλεονεκτήματα cloud computing.
Ένα από τα πιο βασικά πλεονεκτήματα του cloud computing είναι η οικονομία. Το κόστος που μπορεί να έχει ένα λογισμικό ίσως να είναι απαγορευτικό για μία μικρή εταιρία. Με το «cloud» τα δεδομένα αυτά αλλάζουν καθώς η εταιρία δεν πληρώνει την εφαρμογή αλλά πληρώνει την χρήση της. Συνήθως σε cloud δίκτυα υπάρχουν πολλές δυνατότητες και «πακέτα» για την πληρωμή της χρήσης κάποιας εφαρμογής. Μεγάλος Αποθηκευτικός Χώρος. Η αποθήκευση των διαφόρων πληροφοριών είναι θέμα υψίστης σημασίας. Με το cloud computing έχουμε συνήθως όσο αποθηκευτικό χώρο θα χρειαστούμε. Πρόσβαση από οποιαδήποτε συσκευή διαθέτει σύνδεση στο ίντερνετ. Πολύ μεγάλη ευελιξία.
Μειονεκτήματα του cloud computing.
Ασφάλεια δεδομένων. Είναι λογικό κάποιες φορές να έχουμε συγκεκριμένα δεδομένα σε δικό μας τοπικό server και όχι στο cloud. Αυξημένη πολυπλοκότητα. Αυτό συμβαίνει όταν έχουμε μία εφαρμογή αποθηκευμένη κάπου τοπικά, σε ένα δικό μας webserver και προσπαθούμε να την κάνουμε να επικοινωνήσει με μία άλλη στο cloud. Τα πράγματα εκεί γίνονται αρκετά περίπλοκα και πολλές φορές η λύση εκτός ότι δεν είναι προφανής, αποτυγχάνει.
Ο όρος «υπηρεσία» στο cloud computing.
«Υπηρεσία», είναι η δυνατότητα που μας παρέχει το cloud σύστημα να χρησιμοποιούμε κάποιο software μέσα σε αυτό το δίκτυο. Αυτή η δυνατότητα ονομάζεται «υπηρεσία».
Βασικά είδη υπηρεσιών που μας προσφέρει το cloud computing:
Software as Service (SasS): Σε αυτό τον τύπο μοντέλο υπάρχει ένα application το οποίο βρίσκεται σε ένα cloud server και ο χρήστης μπορεί να έχει πρόσβαση σε αυτό μέσω μίας απλή σύνδεσης στο ίντερνετ. Η δυνατότητα που παρέχεται στον καταναλωτή είναι να χρησιμοποιεί τις εφαρμογές του παρόχου που τρέχουν σε μια cloud υποδομή. Οι εφαρμογές είναι προσβάσιμες από διάφορες client συσκευές μέσω ενός thin client interface, όπως ένα πρόγραμμα περιήγησης στο Web (π.χ. web-based email). Το software αυτό ανήκει σε κάποιον κατασκευή και ο χρήστης το πληρώνει ανάλογα με την χρήση που του κάνει και τους πόρους που χρειάζεται. Το βασικό πλεονέκτημα του μοντέλου «software as service» είναι ότι ο κατασκευαστής αναλαμβάνει τα έξοδα συντήρησης του software καθώς και τη φιλοξενία του σε κάποιον cloud server. Ο χρήστης πληρώνει μόνο την χρήση που κάνει (αν και υπάρχουν και cloud applications που είναι δωρεάν). Επίσης το μοντέλο SasS είναι δημιουργημένο με βασικό γνώμονα τη σωστή λειτουργία του software με χρήση browser. Όσον αφορά την ασφάλεια των διαφόρων εφαρμογών, συνήθως χρησιμοποιείται SSL (Secure Sockets Layer) το οποίο είναι παγκοσμίως αναγνωρισμένο. Έτσι, οι χρήστες μπορούν με ασφάλεια να χρησιμοποιήσουν το cloud application. Ένα καλό παράδειγμα, ώστε να γίνει αντιληπτό αυτό είναι το GoogleDrive και οι εφαρμογές που μπορούν να τρέξουν απ' ευθείας σε αυτό (δείτε σχετικά). Ο καταναλωτής δεν έχει τη διαχείριση ή τον έλεγχο της χρησιμοποιούμενης cloud υποδομής συμπεριλαμβανομένων των δικτύων, των servers, των λειτουργικών συστημάτων, των αποθηκευτικών μονάδων, ή ακόμα και μεμονωμένων δυνατοτήτων της εφαρμογής, με την πιθανή εξαίρεση κάποιων περιορισμένων user-specific ρυθμίσεων παραμετροποίησης των εφαρμογών.
Platform as Service (PasS): Το βασικό του στοιχείο είναι ότι παρέχει την πλατφόρμα την οποία χρησιμοποιεί ένας χρήστης για να δημιουργήσει κάτι, για παράδειγμα ένα web application, χωρίς να εγκαταστήσει τίποτα. Το «platform as service» μοντέλο χρησιμοποιείται πιο πολύ για δημιουργία web interfaces, web εφαρμογών κλπ. Η δυνατότητα που παρέχεται στον καταναλωτή είναι να αναπτύσσει πάνω στην cloud υποδομή εφαρμογές που έχει δημιουργήσει ή εφαρμογές που έχει αποκτήσει, οι οποίες έχουν δημιουργηθεί με χρήση γλωσσών προγραμματισμού και εργαλείων που υποστηρίζονται από τον πάροχο. Ο καταναλωτής δεν διαχειρίζεται ούτε ελέγχει τη σχετική cloud υποδομή που συμπεριλαμβάνει τα δίκτυα, τους servers, τα λειτουργικά συστήματα ή τα αποθηκευτικά μέσα, αλλά έχει τον έλεγχο των εφαρμογών που έχουν αναπτυχθεί, και ενδεχομένως, των παραμετροποιήσεων του περιβάλλοντος φιλοξενίας των εφαρμογών. Ένα σημαντικό πρόβλημα που υπάρχει με αυτό το μοντέλο είναι ότι αυτή η εφαρμογή που δημιουργούμε βασίζεται σε ένα συγκεκριμένο framework και υπάρχει πιθανότητα αν θελήσουμε να την μεταφέρουμε σε άλλο παροχέα cloud υπηρεσιών αυτή να μη λειτουργεί σωστά.
Cloud Infrastructure as a Service (IAAS): Η δυνατότητα που παρέχεται στον καταναλωτή είναι να μπορεί να δεσμεύσει προς χρήση επεξεργαστική ισχύ, αποθηκευτικά μέσα, δίκτυα, και άλλους θεμελιώδεις υπολογιστικούς πόρους, όπου ο καταναλωτής είναι σε θέση να αναπτύξει και να εκτελέσει αυθαίρετο λογισμικό, το οποίο μπορεί να περιλαμβάνει λειτουργικά συστήματα και εφαρμογές. Ο καταναλωτής δεν έχει τη διαχείριση ή τον έλεγχο της χρησιμοποιούμενης cloud υποδομής, αλλά έχει τον έλεγχο των λειτουργικών συστημάτων, των αποθηκευτικών μέσων, των εφαρμογών που έχουν αναπτυχθεί και πιθανόν κάποιον περιορισμένο έλεγχο επιλεγμένου εξοπλισμού δικτύωσης (π.χ. firewalls).
Storage as a service (StaaS): Στο μοντέλο αυτό υπάρχει κάποιος πάροχος αποθηκευτικού χώρου online ο οποίος στην ουσία τον νοικιάζει έναντι κάποιας αμοιβής. Ένα παράδειγμα απλό θα μπορούσε να θεωρηθεί το Dropbox.
Hardware as Service (HaaS): Ο προμηθευτής αυτής της cloud υπηρεσίας παρέχει στον χρήστη έναντι «ενοικίου»-αμοιβής το hardware που χρειάζεται όπως web servers, μνήμη CPU ,αποθηκευτικό χώρο και ότι άλλο χρειάζεται ο χρήστης σε επίπεδο hardware. Τα χρήματα που πληρώνει κάποιος στο HaaS είναι αντίστοιχα της χρήσεως των πόρων του συστήματος που κάνει.
Database as Service (DaaS): Σε αυτό το μοντέλο υπάρχει μία υπηρεσία online παρέχει την βάση δεδομένων την οποία μπορούμε να χρησιμοποιήσουμε με κάποιο web application. Σε αυτό το μοντέλο το βασικό πλεονέκτημα είναι ότι πληρώνουμε ανάλογα με την χρήση. Ουσιαστικά όσο πιο πολύ κόσμος χρησιμοποιεί την εφαρμογή μας τόσο περισσότερα χρήματα πληρώνουμε. Μία τέτοια υπηρεσία είναι η mongoDB.
Βασικά μοντέλα πρακτικής εφαρμογής που μας προσφέρει το cloud computing:
Private cloud: Η cloud υποδομή λειτουργεί αποκλειστικά και μόνο για έναν. Η διαχείρισή της μπορεί να γίνεται από τον ίδιο τον οργανισμό ή από τρίτους και μπορεί να βρίσκεται εντός ή εκτός των εγκαταστάσεων του οργανισμού.
Community cloud: Η cloud υποδομή μοιράζεται μεταξύ πολλών οργανισμών και υποστηρίζει μια συγκεκριμένη κοινότητα που έχει κοινές ανησυχίες (πχ. αποστολή, απαιτήσεις ασφαλείας, πολιτική και θέματα συμμόρφωσης). Η διαχείρισή της μπορεί να γίνεται από τον ίδιο τον οργανισμό ή από τρίτους και μπορεί να βρίσκεται εντός ή εκτός των εγκαταστάσεων του οργανισμού.
Public cloud: Η cloud υποδομή διατίθεται στο ευρύ κοινό ή σε μια μεγάλη ομάδα εταιρειών και ανήκει σε έναν οργανισμό που πουλά υπηρεσίες cloud.
Hybrid cloud: Η cloud υποδομή είναι μια σύνθεση από δύο ή περισσότερα clouds (private, community or public) τα οποία παραμένουν μοναδικές οντότητες, αλλά συνδέονται μεταξύ τους με τυποποιημένη ή αποκλειστική τεχνολογία που επιτρέπει τη φορητότητα δεδομένων και εφαρμογών (π.χ. εξισορρόπηση φόρτου εργασίας μεταξύ των clouds).
Πασίγνωστες εταιρίες που παρέχουν υπηρεσίες cloud computing:
Η amazon, η google και η microsoft. Η εταιρία amazon παρέχει βασικές υπηρεσίες όπως:
Amazon Elastic Compute Cloud
Amazon Simple Storage Service (S3) η οποία παρέχει αποθηκευτικό χώρο online.
Όσον αφορά την Microsoft , η πλατφόρμα που χρησιμοποιεί για να παρέχει cloud computing υπηρεσίες είναι η Azure. Η πλατφόρμα αυτή παρέχει μία μεγάλη ποικιλία από εργαλεία που εφαρμόζουν διάφορα μοντέλα cloud computing όπως το «HaaS» και το «PaaS».
H google , τέλος , παρέχει την app engine.
Cloud Os και Cloud Applications: Από τη στιγμή που ο χρήστης εκτελεί κάποιες εργασίες που απαιτούν CPU, μνήμη κλπ αυτά συντελούν στο να σκεφτούμε ότι στο cloud υπάρχει ένα λειτουργικό σύστημα όπως ακριβώς σε ένα τοπικό υπολογιστή. Αυτό θα μπορούσε να ονομαστεί cloud operating system. Ένα cloud application είναι μία εφαρμογή που χρησιμοποιεί τους πόρους του cloud Os με σκοπό την ανάπτυξη και τη λειτουργία της.
Βασικά μοντέλα εφαρμογών του Cloud Computing:
Public Cloud: Αυτό το μοντέλο δημιουργείται από εκατοντάδες web servers που τρέχουν και πάρα πολλά datacenters σε διάφορα σημεία του πλανήτη. Αυτό έχει ως αποτέλεσμα να μπορεί κάποιος να χρησιμοποιήσει μία υπηρεσία διαλέγοντας την τοποθεσία που θα βρίσκεται η εφαρμογή. Στην πραγματικότητα διαλέγει το datacenter που είναι πιο κοντά του. Για παράδειγμα μία εταιρία στην Αμερική θα διαλέξει ένα cloud server που βρίσκεται στην Ν. Αμερική. Εταιρίες που προσφέρουν το public cloud είναι οι: Google, Amazon, Rackspace κλπ. Αυτή η public εφαρμογή του cloud υποστηρίζεται από εταιρίες πολύ εύρωστες οικονομικά διότι η ανάπτυξη και συντήρηση των webserver και datacenter παγκοσμίως κοστίζει πολλά χρήματα.Μία εφαρμογή που χρησιμοποιεί το «public cloud» είναι τα CDN (content delivery networks) μέσα από τα οποία το περιεχόμενα ενός site αποθηκεύεται σε κάποια datacenters παγκοσμίως και τα προσφέρει στους χρήστες της ιστοσελίδας όταν τα ζητάνε με πολύ μεγάλες ταχύτητες.
Private Cloud: Αυτό το είδος της cloud τεχνολογίας εφαρμόζεται μέσα σε οργανισμούς-εταιρίες όπου δημιουργείται ένα cloud δίκτυο το οποίο όμως βρίσκεται στα όρια του οργανισμού αυτού. Το δίκτυο αυτό δημιουργείται κατά παραγγελία με βάση τις ανάγκες του οργανισμού.
Η τεχνολογία «Virtualization» στο cloud computing.
Η τεχνολογία virtualization είναι η κινητήριος δύναμη του cloud computing. Στην τεχνολογία αυτή μπορούμε να χωρίσουμε ένα φυσικό hardware, ένα webserver, σε πολλά κομμάτια που το κάθε ένα τρέχει το δικό του λειτουργικό. Έτσι επιτυγχάνεται άριστη λειτουργικότητα, ταχύτητα και απόλυτη αξιοποίηση των πόρων του συστήματος. Με τον όρο virtualization εννοούμε την τεχνολογία με την οποία τα φυσικά συστήματα μετατρέπονται σε ιδεατά (virtual machines). Κάθε φυσικός πόρος (επεξεργαστική ισχύς, μνήμη, δίκτυο, storage κλπ.) γίνεται ένας ενιαίος πόρος και μοιράζεται ταυτόχρονα σε πολλά εικονικά συστήματα. 
Για μια λύση virtualization χρειάζονται τα εξής μέρη:
Κατάλληλος εξοπλισμός hardware
Λογισμικό virtualization (hypervisor)
Λογισμικό διαχείρισης
To cloud συνδέεται με την έννοια virtualization γιατί ουσιαστικά είναι ένα σύνολο συνδεδεμένων virtual machines. Αυτός είναι ο λόγος που τα cloud δίκτυα έχουν τόσες πολλές δυνατότητες και επεκτασιμότητα διότι μοιράζονται του πόρους διάφορων συνδεδεμένων virtual machines. Με το virtualization το hardware διαχωρίζεται από το software (λειτουργικά συστήματα και εφαρμογές). Ο hypervisor είναι ένα νέο επίπεδο «virtualization layer» μεταξύ του hardware και του software, που ενοποιεί τους φυσικούς πόρους και τους διαμοιράζει στα ιδεατά συστήματα με τρόπο διάφανο. Τα ιδεατά συστήματα συνεχίζουν να νομίζουν ότι επικοινωνούν απευθείας με το hardware, αλλά στην πραγματικότητα επικοινωνούν με το virtualization layer. Αυτό επιτρέπει τη μετακίνηση επεξεργαστικής ισχύος, μνήμης ή και storage από ένα virtual machine σε άλλο εν ώρα λειτουργίας και σύμφωνα με τις ανάγκες. Το αποτέλεσμα είναι η καλύτερη εκμετάλλευση των πόρων συνολικά, μεγάλη εξοικονόμηση ενέργειας και φυσικού χώρου και ευκολότερη διαχείριση της υποδομής. Σήμερα το virtualization έχει διεισδύσει σε πολλές επιχειρήσεις, αλλά αναμένεται ότι γρήγορα τα περισσότερα συστήματα θα γίνουν ιδεατά, καθώς οι απαιτήσεις για αποδοτική χρησιμοποίηση του hardware, μείωση της ηλεκτρικής κατανάλωσης και αναγκών ψύξης, γίνονται όλο και πιο επιτακτικές.