Διδάσκων
Αντώνης Χαζάπης
Περιοχή ειδίκευσης μεταπτυχιακών φοιτητών
(Γ) Παράλληλα και Κατανεμημένα Συστήματα
Κατηγορία επιλογής προπτυχιακών φοιτητών
(Ε5) Συστήματα Λογισμικού και Εφαρμογές
Διδακτικές Μονάδες
6 ECTS
Προαπαιτούμενα
HY-335 (Δίκτυα Υπολογιστών), HY-345 (Λειτουργικά Συστήματα) ή άδεια του διδάσκοντα
Πρόγραμμα διαλέξεων
Δευτέρα και Τετάρτη 14:00-16:00, στην αίθουσα Η.206 (εαρινό εξάμηνο 2025)
Επικοινωνία:
hy548_at_csd.uoc.gr (διδάσκων), hy548-list_at_csd.uoc.gr

Περιγραφή Αντικειμένου

Το Διαδίκτυο παρέχει υπηρεσίες σε δισεκατομμύρια χρήστες ανά τον κόσμο. Ιστοσελίδες ενημέρωσης, δίκτυα κοινωνικής δικτύωσης, ηλεκτρονικά καταστήματα, κρατικές υπηρεσίες κτλ. πρέπει να είναι διαθέσιμα ανά πάσα στιγμή, ανεξάρτητα από τον φόρτο που δέχονται. Για αυτόν τον λόγο, οι σύγχρονες εφαρμογές κλίμακας Διαδικτύου αναπτύσσονται στο Cloud (Υπολογιστικό Νέφος). Οι εσωτερικές τους αρχιτεκτονικές έχουν εξελιχθεί σε πολύπλοκους ιστούς από “microservices” (μικρο-υπηρεσίες), που σε φυσικό επίπεδο είναι διασκορπισμένες ανά τον κόσμο, χρησιμοποιώντας εικονικούς πόρους και στοιχεία λογισμικού που προσφέρονται από τους παρόχους Cloud. Σε αυτό το μάθημα εξερευνούμε την οργάνωση υπηρεσιών Διαδικτύου μεγάλης κλίμακας και εστιάζουμε στις τεχνικές και τα εργαλεία που χρησιμοποιούνται για την κατασκευή και εκτέλεση εφαρμογών σε πλατφόρμες Cloud, συμπεριλαμβανομένων των containers και των συναρτήσεων “serverless”. Μέσα από μια σειρά διαλέξεων με πρακτικό χαρακτήρα και σχετικών ασκήσεων οι φοιτητές καθοδηγούνται στην προχωρημένη χρήση και κατανόηση των εσωτερικών διαδικασιών του Kubernetes, που αποτελεί σήμερα το κοινά αποδεκτό πρότυπο για την αφηρημένη σύνθεση υπηρεσιών ανεξαρτήτως παρόχου. Επιπρόσθετα, επεκτεινόμαστε στο πως το Kubernetes εφαρμόζεται στην πράξη από τους μεγάλους παρόχους Cloud, όπως η Amazon και η Google, και πως οι εκτελούμενες αρχιτεκτονικές microservices που βασίζονται σε containers μπορούν να χρησιμοποιούν σχετικές υποστηρικτικές υπηρεσίες και APIs για να πετυχαίνουν αδιάλειπτη λειτουργία σε παγκόσμια κλίμακα.

Μαθησιακοί Στόχοι

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

Ύλη Διαλέξεων

Εβδομάδα Σύντομη περιγραφή ύλης διδακτικής εβδομάδας
1 Εισαγωγή στις αρχιτεκτονικές λογισμικού για το Cloud (παραδείγματα εφαρμογών, η ανάγκη για DevOps, υποδομές Cloud) [διαφάνειες]
2-3 Περιβάλλοντα εκτέλεσης containers (χρήση του Docker: σύνθεση containers, εκτέλεση εφαρμογών, μεταβλητές, αρχεία, δικτύωση) [διαφάνειες]
4-5 Πλατφόρμες ενορχήστρωσης (χρήση του Kubernetes: εντολές, αφηρημένες έννοιες, σύνθεση υπηρεσιών) [διαφάνειες] [παραδείγματα]
6 Αυτόματη κλιμάκωση και serverless (χρήση του autoscaler, συναρτήσεις ως υπηρεσία) [παράδειγμα scaling] [παράδειγμα serverless]
7-9 Δομικά στοιχεία της πλατφόρμας (εσωτερική οργάνωση του Kubernetes, διεπαφές χρήσης και επέκτασης, χρονοπρογραμματιστής, τελεστές, CNI, CSI, διαδικτύωση μεταξύ εγκαταστάσεων, ενσωμάτωση του Edge) [διαφάνειες CRI, CNI, CSI] [διαφάνειες scheduler] [παράδειγμα CRD] [παράδειγμα webhook]
10-12 Παρουσιάσεις εργασιών
13 Πλατφόρμες στο Cloud (προσφερόμενες υπηρεσίες, διεπαφές χρήσης), επισκόπηση μαθήματος [διαφάνειες]

Άλλες παρουσιάσεις: [Helm] [Operator Framework]

Προτεινόμενα Συγγράμματα

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

Υπηρεσίας κλίμακας Διαδικτύου:

Containers και Kubernetes:

Επιλεγμένες Εργασίες σε Συναφή Ειδικά Αντικείμενα:

Ασκήσεις

Εβδομάδα Σύντομη περιγραφή
1-2 Άσκηση 1 (Βασικές λειτουργίες του Docker) [διαθέσιμη οnline]
3-4 Άσκηση 2 (Βασικές λειτουργίες του Kubernetes) [διαθέσιμη οnline]
5-6 Άσκηση 3 (Κλιμάκωση εφαρμογών στο Kubernetes)
7-8 Άσκηση 4 (Επεκτάσεις του Kubernetes)
9-13 Εργασία. Τα θέματα θα αποφασιστούν σε συνεννόηση με τον διδάσκοντα. Ενδεικτικά: Παρουσίαση και demo κάποιου CNCF project, προσαρμοσμένες προσθήκες/επεκτάσεις του Kubernetes, υλοποίηση ολοκληρωμένης εφαρμογής στο Kubernetes με αυτόματη κλιμάκωση, χρήση APIs του Cloud για αυτόματη εκτέλεση εφαρμογών, κτλ.

Τρόπος Αξιολόγησης

Συμμετοχή 15%
Ασκήσεις 60% (4 * 15%)
Εργασία 25%

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