Πληροφοριακά Συστήματα Μεγάλης Κλίμακας Cloud Computing Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Ενότητα #05 Cloud providers Cloud providers Amazon Google Microsoft 1
Amazon Web Services Επισκόπηση Amazon Simple Storage Service (S3): παρέχει online αποθηκευτικό χώρο, Amazon Elastic Compute Cloud (EC2): web service που επιτρέπει σε προγραμματιστές να χρησιμοποιήσουν και διαχειριστούν Linux/UNIX αλλά και Windows server instances στα data centres της Amazon, Amazon Elastic MapReduce: web service για επεξεργασία τεράστιου όγκου πληροφορίας (χρησιμοποιεί Hadoop + Ruby). Amazon Storage Service (S3) (1 από 2) Σύμφωνα με την Amazon, η σχεδίαση του S3 στοχεύει στο να παρέχει (λεπτομέρειες της σχεδίασης του S3 δεν έχουν δημοσιευθεί από την Amazon): Αυτόματη κλιμάκωση, υψηλή διαθεσιμότητα, κλπ με χαμηλό κόστος. Αποθηκεύει αντικείμενα<=5 TB συσχετισμένα με μετάδεδομένα (<=2 KB), Κάθε αντικείμενο (object) αποθηκεύεται σε ένα bucket στο οποίο του προσδίδεται και ένα μοναδικό κλειδί (από τον προγραμματιστή), 2
Amazon Storage Service (S3) (2 από 2) Κάθε bucket αποθηκεύεται σε μία περιοχή που θα υποδείξει ο προγραμματιστής (πχ EU region Ireland), Τα objects δεν μετακινούνται ποτέ εκτός και εάν το ζητήσει ο προγραμματιστής, Παρέχονται μηχανισμοί αυθεντικοποίησης για την ασφάλεια των δεδομένων από μη εξουσιοδοτημένους χρήστες. Τα objects μπορεί να είναι ιδιωτικά ή δημόσια και δίνονται δικαιώματα σε συγκεκριμένους χρήστες, Τιμολόγηση: http://aws.amazon.com/s3/ Amazon Elastic Compute Cloud (EC2) (1 από 2) Το EC2 αποτελεί μία web υπηρεσία που επιτρέπει χρήστες να τρέχουν και διαχειρίζονται Linux / UNIX και Windows server instances στα data centres της Amazon. Amazon Elastic Compute Cloud (EC2) (2 από 2) Επιτρέπει στους χρήστες την ενοικίαση virtual computers στους οποίους τρέχουν τις εφαρμογές τους, Επιτρέπει κλιμακούμενη ανάπτυξη εφαρμογών: οι χρήστες μπορούν να πραγματοποιήσουν την εκκίνηση ενός Amazon Machine Image (AMI) για να δημιουργήσουν μια εικονική μηχανή την οποία η Amazon αποκαλεί ένα instance", και η οποία περιέχει το οποιοδήποτε επιθυμητό λογισμικό. 3
Instances: On demand: τιμολόγηση υπολογιστικών πόρων με την ώρα χωρίς άλλες υποχρεώσεις (no long-term commitments), Reserved: προπληρωμή του κάθε instance που θα απαιτηθεί συνεπάγεται και σημαντική μείωση του κόστους του (έκπτωση) Spot: επιτρέπει στου χρήστες να υποβάλουν προσφορές για μη χρησιμοποιούμενους πόρους του Amazon EC2 και να τους χρησιμοποιήσουν όσο η προσφορά υπερβαίνει την τρέχουσα τιμή του Spot ( τα Spot Instances μειώνουν σημαντικά το κόστος του Amazon EC2). EC2 Elastic (ελαστικό): οι χρήστες μπορούν να δημιουργούν, να εκτελούν και να τερματίζουν server instances όσο χρειάζεται πληρώνοντας με την ώρα για ενεργούς servers, Παρέχει στους χρήστες έλεγχο γεωγραφικής περιοχής για τα instances που θα χρησιμοποιήσουν επιτυγχάνοντας αυξημένες επιδόσεις αλλά και αξιοπιστία: Για παράδειγμα, για να ελαχιστοποιηθεί ο χρόνος εκτέλεσης μπορεί ένας χρήστης να ορίσει server instances σε πολλές διαφορετικές γεωγραφικές ζώνες οι οποίες είναι απομονωμένες μεταξύ τους ώστε σε περίπτωση κατάρρευσης κάποιου instance να συνεχίσει κάποιο άλλο. Χαρακτηριστικά (1 από 2) Multiple locations (regions): παρέχει την δυνατότητα τοποθέτησης instances σε διαφορετικές περιοχές και το Amazon EC2 Service Level Agreement είναι κατά 99.95% διαθέσιμο για περιοχή που δραστηριοποιείται το Amazon EC2 πχ: US East (Northern Virginia), US West (Northern California), EU (Ireland), Asia Pacific (Singapore), and Asia Pacific (Tokyo), Amazon Virtual Private Cloud: μία ασφαλής γεφύρωση μεταξύ της επιχείρησης (πληροφοριακό σύστημα) και του AWS cloud. Amazon VPC επιτρέπει την σύνδεση του υφιστάμενου πληροφοριακού συστήματος μίας επιχείρησης με ένα σύνολο απομονωμένων πόρων (AWS compute resources) με σύνδεση τύπου Virtual Private Network (VPN). 4
Χαρακτηριστικά (2 από 2) Auto Scaling: επιτρέπει την προς τα πάνω ή κάτω κλιμάκωση της υπηρεσίας Amazon EC2 ανάλογα με τις συνθήκες που θα ορισθούν, Elastic Load Balancing: αυτόματη κατανομή εργασιών σε πολλά Amazon EC2 instances, High Performance Computing (HPC) Clusters: Επιτρέπει σύνθετες εργασίες που απαιτούν tightly coupled parallel processes, ή που είναι ιδιαίτερα ευαίσθητες στις ταχύτητες δικτύου να επιτυγχάνουν την ίδια απόδοση με ένα custom-built infrastructure κερδίζοντας από την ελαστικότητα, διαθεσιμότητα και τιμολόγηση κλπ των υποδομών του Amazon EC2, VM Import: εισαγωγή virtual machine images από υπάρχοντα πληροφοριακά συστήματα Πληροφοριακά στα Συστήματα Instances Μεγάλης Κλίμακας της Amazon EC2. Amazon Elastic MapReduce Επιτρέπει επιχειρήσεις, ερευνητές, data analysts, και προγραμματιστές να επεξεργάζονται με χαμηλό κόστος τεράστιους όγκους δεδομένων. Χρησιμοποιεί το Hadoop framework αλλά να τρέχει στις web-scale υποδομές του EC2 και του Amazon S3, Το Elastic MapReduce command line interface απαιτεί Πληροφοριακά Ruby. Συστήματα Μεγάλης Κλίμακας Google Cloud Platform 5
Google Cloud Platform Google App Engine Δημιουργία διαδικτυακών και mobile εφαρμογών με χρήση των υποδομών της Google Υποστηρίζει Java, Python, Ruby, C#, PHP SQL, NoSQL Χρήση των υποδομών ανάλογα με την ζήτηση Χαρακτηριστικά Δημιουργία εφαρμογών σε δημοφιλείς γλώσσες προγραμματισμού, Ανοικτός κώδικας, Απόλυτα ελεγχόμενο και διαχωρίσιμο περιβάλλον, Εργαλεία για ανάπτυξη εφαρμογών, Κλιμακούμενο. Microsoft Azure 6
Επισκόπηση Microsoft Azure: βοηθάει τους προγραμματιστές να δημιουργήσουν, φιλοξενήσουν και κλιμακώνουν web applications δια μέσω των Microsoft data centres (by Microsoft): I. Compute (εκτέλεση εφαρμογών στο cloud), II. Storage (αποθήκευση και binary και δομημένη πληροφορία), III. Content Delivery Network (επιταχύνει την προσπέλαση σε binary data), IV. Virtual Network (απλή και εύκολα διαχειρίσιμη υπηρεσία για να στηθεί ένα IP-based δίκτυο μεταξύ της επιχείρησης και των υποδομών της Microsoft Azure), V. AppFabric (αναπτύσσει, διαχειρίζεται και παρακολουθεί τις εφαρμογές), VI. Marketplace (online marketplace για προγραμματιστές ώστε να μοιράζονται, βρίσκουν, πουλάν ή αγοράζουν block components, εκπαίδευση, και υπηρεσίες που χρειάζονται για να δημιουργήσουν Microsoft Azure platform applications). Azure regions H γεωγραφική επέκταση αποτελεί προτεραιότητα για την Azure, διότι δίνει τη δυνατότητα στους πελάτες της να επιτύχουν υψηλότερες επιδόσεις και να υποστηρίξει τις απαιτήσεις και τις προτιμήσεις τους σχετικά με την τοποθεσία των δεδομένων. (πηγή: Microsoft, https://azure.microsoft.com/el-gr/regions/) Υποδομές (με αριθμούς) 1989: το πρώτο data center (Redmond, Washington), >1εκατομμύριο: οι servers σε όλα τα data centers σήμερα, >15 δισεκατομμύρια δολάρια: η επένδυση σε υποδομές, >30 τρισεκατομμύρια: ο αριθμός των αποθηκευμένων αντικειμένων, <1,5 εκατομμύρια: αιτήσεις χρήσης του δικτύου ανά δευτερόλεπτο, 3: ο αριθμός που δηλώνει πόσες φορές το δίκτυο οπτικών ινών της Microsoft στην Β. Αμερική μπορεί να πάει στο φεγγάρι και να επιστρέψει, 2007: η χρονιά ένaρξης υπηρεσιών cloud computing 7
Compute Δυνατότητα εκτέλεσης πολλών διαφορετικών ειδών εφαρμογών, Οι εφαρμογές πρέπει να υλοποιούνται σαν ένας η περισσότερα roles, Η Microsoft Azure τυπικά εκτελεί πολλαπλά instances του κάθε role (χρησιμοποιώντας built-in load balancing), Τρία διαφορετικά είδη από roles: Roles Web roles, Worker roles, VM roles Web Roles Πρόθεση: διευκόλυνση της δημιουργίας Web-based εφαρμογών, Για κάθε Web role δημιουργία εφαρμογών με χρήση τεχνολογιών όπως ASP.NET, Windows Communication Foundation (WCF) είναι τυπική διαδικασία, Υποστηρίζει και εφαρμογές γραμμένες σε πηγαίο κώδικα (PHP, Java, κ.α.). 8
Worker / VM Roles Σχεδιασμένα να εκτελούν ποικιλία προγραμμάτων βασισμένα σε Windows-based κώδικα, Οι προγραμματιστές μπορούν να χρησιμοποιήσουν είτε το.net framework είτε άλλο λογισμικό (non-microsoft technologies). Η εφαρμογή αλληλεπιδρά με τους χρήστες μέσω των Web roles, και στην συνέχεια δίνουν τις εργασίες στα worker role για επεξεργασία. VM: Moving on-premises: Μετακίνηση εφαρμογών Windows Server από την επιχείρηση στην Microsoft Azure. Microsoft Azure Applications Υποβολή εφαρμογής: με χρήση του portal της Microsoft Windows Azure, Δυνατή η χρήση συνδυασμού: Web roles instances, Worker role instances, και VM role instances, Κλιμάκωση: αύξηση / μείωση του αριθμού των εκτελούμενων instances, Κλιμάκωση / μείωση των instances πρέπει να γίνει προγραμματιστικά διότι: Microsoft Azure δεν κλιμακώνει αυτόματα ανάλογα με τον φόρτο εργασίας. Storage Windows Azure Storage Service: 1) Blobs (Binary Large Objects), 2) Tables, 3) Queues. 9
Blobs (1 από 2) Ή απλούστερη μέθοδος αποθήκευσης δεδομένων στα Windows, Περιέχει binary data, Ιεραρχικά: κάθε container μπορεί να περιέχει ένα ή περισσότερα blobs, Ένα container παρέχει μία ομαδοποίηση ενός συνόλου από blobs, 1 blob<= 1 TB, Συσχετιζόμενα μετά-δεδομένα: ζεύγη της μορφής <name, value> το πολύ 8KB για κάθε blob (πχ: Που τραβήχτηκε μία JPEG φωτογραφία, ή Ποιος είναι ο τραγουδιστής ενός MP3 αρχείου) Blobs (2 από 2) ΠΗΓΗ: Brad Calder, et. Al., WINDOWS AZURE BLOB Tables ΌΧΙ σχεσιακά tables, Τα δεδομένα αποθηκεύονται σε μια ομάδα οντοτήτων που περιέχουν ιδιότητες, Μπορεί να περιέχει δισεκατομμύρια οντοτήτων διαχειριζόμενα ΤΒ δεδομένων, Query σε table: χρήση OData (για αποκλιμάκωση της πληροφορίας), Open Data protocol (Odata) είναι ένα Web πρωτόκολλο για ερωτήματα και ενημέρωση δεδομένων (http://www.odata.org/home) 10
Odata Επιτρέπει την δημιουργία υπηρεσιών δεδομένων βασισμένων στο HTTP το οποίο επιτρέπει τον προσδιορισμό πηγών με χρήση του Uniform Resource Identifiers (URIs) και έχει ορισθεί σαν ένα μοντέλο δεδομένων το οποίο μπορεί να δημοσιευθεί αλλά και αλλαχθεί από Web clients με χρήση απλών HTTP μηνυμάτων. Πρόθεση του Odata: χρήση, διαχείριση και προσπέλαση πληροφορίας από πολλές διαφορετικές μορφές όπως σχεσιακές βάσεις δεδομένων, συστήματα αρχείων, Web sites κ.α., Queues (1 από 3) Παρέχουν ένα μηχανισμό στα Web role instances για να επικοινωνούν ασύγχρονα με Worker role instances. Από: Windows Azure Queues Queues: Σενάριο (2 από 3) Πολλά Web role instances που εκτελούνται, όπου το καθένα δέχεται εργασίες από τους χρήστες, Ένα Web role instance γράφει ένα μήνυμα σε μία queue (<=8KBs), Το Work role instances διαβάζει τα μηνύματα από αυτό το queue και κατ επέκταση και την εργασία που πρέπει να κάνει, Το μήνυμα γίνεται αόρατο σε άλλους (δεν διαγράφεται) για ένα χρονικό διάστημα (συνήθως 30 δευτερόλεπτα), Όταν η εργασία ολοκληρωθεί το Work role instance διαγράφει το μήνυμα. Σε περίπτωση αποτυχίας (worker): όταν ο χρόνος του αόρατου μηνύματος περάσει γίνεται πάλι ορατό ώστε να διαβασθεί από άλλο Worker role instance) 11
Queues (3 από 3) Από: David Chappell, Introducing Windows Azure Ένα Worker role instance διαγράφει το μήνυμα: χειρισμός αποτυχίας αλλά και το ότι εκτελείται τουλάχιστον μία φορά! Fabric Controller (1 από 2) Κατέχει όλους τους πόρους ενός Microsoft Azure data centre: Computers, switches, load balancers, Διαχειρίζεται όλες τις μηχανές αλλά και το λογισμικό που τρέχει σε αυτές, Αναθέτει εφαρμογές σε μηχανές και στην συνέχεια τις ελέγχει (χρησιμοποιώντας fabric agents iπου είναι εγκαταστημένοι σε κάθε μηχανή): Χρησιμοποιεί το configuration information το οποίο συνοδεύει κάθε εφαρμογή, δηλαδή τι χρειάζεται η εφαρμογή από Web ή Worker role instances, Fabric Controller (2 από 2) Ομαδοποιεί του πόρους που κατέχει σε ένα αριθμό από fault domains, Οπότε μία αστοχία / failure στο data centre δεν μπορεί να «καταστρέψει» ολόκληρη την εφαρμογή. 12
Virtual Machines Extra-small: single core 1.0 GHz CPU, 768 MB memory, 20 GB storage, Small: single core 1.6 GHz CPU, 1.75 GB memory, 225 GB storage, Medium: dual-core 1.6 GHz CPU, 3,5 GB memory, 490 GB storage, Large: four-core 1.6 GHz CPU, 7 GB memory, 1,000 GB storage, Extra-large: eight-core 1.6 GHz CPU, 14 GB memory, 2040 GB storage. Content Delivery Network - CDN Οι αποθηκευτικοί χώροι πρόκειται να προσπελαθούν από πολλές και διαφορετικές τοποθεσίες, Για να αυξηθεί η απόδοση: Το CDN αποθηκεύει αντίγραφα των blobs σε μέρη κοντά στους clients που τα χρησιμοποιούν: Μετά την πρώτη φορά που θα προσπελαθεί ένα blob από έναν χρήστη το CDN αποθηκεύει ένα αντίγραφο κοντά (γεωγραφικά) στον χρήστη, Την επόμενη φορά που θα προσπελαθεί, το περιεχόμενό του παραδίδεται από το cache. Connect (1 από 2) Για να συνδέσει το ενδοεπιχειρησιακό πληροφοριακό σύστημα με την Microsoft Azure, Παρέχει σύνδεση σε επίπεδο IP μεταξύ μίας εφαρμογής στο cloud της Windows Azure και μηχανές που τρέχουν έξω από τις εγκαταστάσεις της με την εγκατάσταση ενός endpoint agent σε κάθε μηχανή που συνδέεται με μία εφαρμογή της Microsofton Azure, 13
Connect (2 από 2) Μόλις εγκατασταθεί ο endpoint agent τότε τα roles μίας εφαρμογής στην Microsoft Azure εμφανίζεται να ανήκει στο ίδιο IP δίκτυο με τις μηχανές της επιχείρησης και αυτό έχει σαν συνέπεια να επιτρέπει μία εφαρμογή της Microsoft Azure: Να μπορεί να προσπελάσει βάσεις δεδομένων της επιχείρησης άμεσα, Να είναι σε κοινό domain με τον ενδοεπιχειρησιακό πληροφοριακό σύστημα (κοινό sign-on στις cloud εφαρμογές από τους χρήστες της επιχείρησης), Χρήση του υπάρχοντος Active Directory accounts και groups για έλεγχο προσπέλασης υπηρεσιών. Επιπλέον.. Azure Services Platform Azure Services Platform MicrosoftAzure, Microsoft.NET: προσφέρει κατανεμημένη πλατφόρμα υπηρεσιών σε cloud-based (αλλά και local) εφαρμογές, Microsoft SQL services: προσφέρει data services στο cloud βασισμένες σε SQL server, Live Services: προσφέρει προσπέλαση δεδομένων από τις εφαρμογές Microsoft s Live αλλά και άλλες ενώ συγχρονίζει τα δεδομένα σε πολλαπλές συσκευές (desktops, laptops,...). 14
Συμπεράσματα Το περιβάλλον της Microsoft Azure + SQL Azure + Ότι άλλο προσφέρει συνολικά η πλατφόρμα της Microsoft Azure: Παρέχουν μία γέφυρα στους προγραμματιστές σε περιβάλλον windows (και όχι μόνο) να μετακινηθούν εύκολα στο Cloud. Τέλος της 5 ης ενότητας Ερωτήσεις? Email: savvas@teilar.gr 15