Υπολογιστική Νέφους και Υπηρεσίες Νέφους

Σκοπός μαθήματος

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

Στόχοι μαθήματος

Η παροχή στους φοιτητές του απαραίτητου θεωρητικού και τεχνικού υπόβαθρου σε επίπεδο συστήματος και σύγχρονων τεχνολογιών (κατανεμημένα λειτουργικά συστήματα, εικονικές μηχανές, ενδιάμεσα λογισμικά, πλατφόρμες ανάπτυξης κλπ) για την υποστήριξη της υπολογιστικής νέφους και της ανάπτυξης υπηρεσιών σε αυτό. Η παρουσίαση των δυνατοτήτων υπολογισμού και ανάπτυξης εφαρμογών και ολοκληρωμένων υπηρεσιών που παρέχονται πάνω από το νέφος σε ιδιώτες και σε επιχειρήσεις, τόσο (α) από την πλευρά/όψη του προγραμματιστή (developer: languages, tools, APIs κλπ) όσο και (β) από την πλευρά/όψη του απλού τελικού χρήστη (end-user: τελικές διάφανες υπηρεσίες). Η πρακτική επαφή και εξάσκηση με σχετικές τεχνολογίες και εργαλεία προγραμματισμού/ανάπτυξης (π.χ. KVM, Openstack, Google APIs, MapReduce/Spark κ.α.), καθώς και με τις δυνατότητες που παρέχουν υπάρχοντα περιβάλλοντα παροχής ολοκληρωμένων υπηρεσιών (π.χ. Google, Microsoft, Amazon). Τέλος, βασικό επιπρόσθετο στόχο θα αποτελέσει η επισκόπηση των ειδικότερων απαιτήσεων ασφάλειας και υψηλής διαθεσιμότητας των υπηρεσιών νέφους.

Περιγραφή μαθήματος

Α. Εισαγωγή στην Υπολογιστική Νέφους:
Ορισμοί, βασικά χαρακτηριστικά και δυνατότητες, σε ποιες τεχνολογίες στηρίζεται η ανάπτυξή του, πως μπορεί να κάνει χρήση των υπηρεσιών του ο προγραμματιστής (developer) και πώς ο (απλός) τελικός χρήστης κλπ. Οι έννοιες των IaaS, PaaS και SaaS (Infrastructure as a Service, Platform as a Service, Software as a Service) κλπ. Οι έννοιες των ‘private’, ‘public’, ‘community’ και ‘hybrid’ clouds.

Β. Εικονικές Μηχανές – Εικονοποίηση:
Τι είναι εικονοποίηση και εικονικές μηχανές (virtual machines – virtualization), πως λειτουργούν, πώς επικοινωνούν με τα λειτουργικά συστήματα (είδη εικονοποίησης, ή έννοια του hypervisor και οι υποστηριζόμενοι τύποι κ.α.), ποια η χρήση τους και η σημαντικότητά τους στην ανάπτυξη εφαρμογών στο νέφος, απαιτήσεις οργάνωσης, ολοκλήρωσης και διαχείρισης σε επίπεδο datacenter, αντιπροσωπευτικά εργαλεία και υλοποιήσεις π.χ. VΜware, Xen, KVM, Docker κλπ.

Γ. Ενδιάμεσα Λογισμικά – Εργαλεία Ανάπτυξης:
Τι είναι τα ενδιάμεσα λογισμικά και τα σχετικά εργαλεία/πλατφόρμες ανάπτυξης (toolkits / cloud platforms) και ποια η σημαντικότητά τους για ανάπτυξη υπηρεσιών στο νέφος, διεπαφή με χαμηλότερα επίπεδα (π.χ. εικονικές μηχανές), δυνατότητες που παρέχουν, σχέση/συνεργασία με ολοκληρωμένα συστήματα υπηρεσιών στο νέφος (π.χ. amazon), αντιπροσωπευτικές υλοποιήσεις π.χ. Nimbus, Eucalyptus, OpenNebula, CloudStack, OpenStack κλπ.

Δ. Τεχνολογίες προγραμματισμού που προσφέρονται για την ανάπτυξη εφαρμογών/υπηρεσιών και επιστημονικούς υπολογισμούς στο νέφος:
Διαθέσιμες τεχνολογίες και ολοκληρωμένες βιβλιοθήκες, ολοκλήρωση διαδραστικών εφαρμογών και υπολογισμών υψηλών απαιτήσεων, διεπαφές που απαιτούνται. Επισκόπηση γνωστών/διαδεδομένων σχετικών γλωσσών και εργαλείων (scripting languages, development tools, APIs κλπ). Παραδείγματα χρήσης και πρακτική άσκηση στα περιβάλλοντα (ενδεικτικά) των Google APIs και των Hadoop/MapReduce, Spark.

Ε. Εφαρμογές/υπηρεσίες νέφους για τον τελικό χρήστη:
Θα εξεταστούν: (α) υπηρεσίες φιλοξενίας (hosting), (β) υπηρεσίες αυτοματισμού γραφείου και συνεργασίας (office automation and collaboration), (γ) υπηρεσίες ανάπτυξης web και mobile εφαρμογών, (δ) άλλες επιχειρηματικές εφαρμογές πάνω από το νέφος (CRM, ERP, E-Commerce, Data Center services κλπ), (ε) η σύγχρονη τάση: δυναμικά περιβάλλοντα παροχής διαφανούς υπολογιστικής ισχύος και πόρων για εκτέλεση υπολογισμών και εφαρμογών κατ’ απαίτηση (π.χ. Amazon EC2, GAE, Azure), (στ) επισκόπηση των κύριων vendors (Google, Microsoft, Amazon κ.α.) και των υπηρεσιών τους.

ΣΤ. Άλλα Ζητήματα:
Απαιτήσεις ασφάλειας (security), Ανάγκες υψηλής διαθεσιμότητας (high availability), Σχεδιασμός χωρητικότητας (capacity planning), Παροχή πόρων (resource provisioning), Τα οικονομικά του Cloud Computing (cloudonomics) κ.α.

Βιβλιογραφία

  1. Thomas Erl, Ricardo Puttini, Zaigham Mahmood, Cloud Computing: Concepts, Technology & Architecture, Prentice Hall, Μετάφραση: Σαμαράς Ιωάννης, Εκδ. Γκιούρδας, 2013.
  2. Kris Jamsa, Cloud Computing, Jones & Bartlett Learning, 2012.
  3. Barrie Sosinsky, Cloud Computing Bible, Wiley, 2011.
  4. Kai Hwang, Jack Dongarra, and Geoffrey Fox, Distributed and Cloud Computing, Morgan Kaufmann, 2011.
  5. Robert Elsenpeter, Anthony Velte and Toby Velte, Cloud Computing: A Practical Appoach, Μετάφραση: Γκλαβά Μαρία, Εκδ. Γκιούρδας, 2010.
  6. Borko Furht and Armando Escalante, Handbook of Cloud Computing, Springer, 2010.
  7. David Sarna, Implementing and Developing Cloud Computing Applications, Auerbach Publications, 2010.
  8. Tom White, Hadoop the definitive guide, O’Reilly Media, 2009.
  9. Jure Leskovec, Anand Rajaraman and Jeff Ullman, Mining of Massive Datasets, Cambridge University Press, 2012.
  10. Jimmy Lin, Chris Dyer and Graeme Hirst, Data-Intensive Text Processing with MapReduce, Morgan and Claypool Publishers, 2010.
  11. Dan Sanderson, Programming Google App Engine, O’Reilly Media, 2009.
  12. Denise Gosnell, Professional Development with Web APIs: Google, eBay, Amazon.com, MapPoint & FedEx, John Wiley & Sons, 2005.