ΕΠ42 - Bασικές έννοιες και εργαλεία DevOps
Γενικά
Σχολή: Ψηφιακής Τεχνολογίας
Τμήμα: Πληροφορικής και Τηλεματικής
Επίπεδο Σπουδών: Προπτυχιακό
Τίτλος Μαθήματος: Bασικές έννοιες και εργαλεία DevOps
Κωδικός Μαθήματος: ΕΠ42
Τύπος: Επιστημονικής Περιοχής
Εξάμηνο Σπουδών: 6
Γλώσσα Διδασκαλίας και Εξετάσεων: Ελληνική
Προσφέρεται σε φοιτητές Erasmus: ΝΑΙ
Ηλεκτρονική Σελίδα Μαθήματος: https://elearning.hua.gr/moodle/course/view.php?id=3
Αυτοτελείς Δραστηριότητες
Εβδομαδιαίες ώρες διδασκαλίας (Θεωρία): 3
Εβδομαδιαίες ώρες διδασκαλίας (Εργαστήριο): 0
Πιστωτικές μονάδες: 5
Μαθησιακά Αποτελέσματα
Στόχος του μαθήματος είναι η εξοικείωση με εργαλεία διαχείρισης, αυτοματοποίησης και παρακολούθησης υπολογιστικών μονάδων (φυσικών ή εικονικών). Επίσης η διαχείριση και ανάπτυξη εφαρμογών στο cloud.
Scripting
Εργαλεία αυτοματοποίησης εργασιών
Εργαλεία CI/CD
Εργαλεία monitoring
Logs best practices
Firewalls
Proxies και reverse proxies
Web servers vs application servers
Διαχείριση dns
Συντήρηση του κώδικα σε σύστημα κατανεμημένου ελέγχου
Linux Chroot, cgroups, namespaces
Virtualization
Παραμετροποίηση vm σε cloud providers
Process management tools
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής/ η φοιτήτρια θα είναι σε θέση να διαχειριστεί και να αυτοματοποιήσει αρκετές διαδικασίες εγκατάστασης/παραμετροποίησης λογισμικού καθώς και την προετοιμασία της υποδομής και των υπηρεσιών που θα υποστηρίζουν τα σύγχρονα πληροφοριακά συστήματα.
Γενικές Ικανότητες
- Προσαγμογή σε νέες καταστάσεις, Ομαδική εεργασία, Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέωεις
Περιεχόμενο Μαθήματος
Βασικά
Advanced shell and python scripting
Ansible
Εργαλεία CI/CD (π.χ. Jenkins, travis-ci, concourse)
Εργαλεία monitoring (icinga, nagios, prometheus)
Logs best practices (logs rotation, log analyzers, log tools - Elasticsearch-Logstash-Kibana)
Firewalls (iptables)
Proxies και reverse proxies (nginx, envoy)
Web servers vs application servers
Διαχείριση dns
Συντήρηση του κώδικα σε σύστημα κατανεμημένου ελέγχου (git)
Linux Chroot, cgroups, namespaces
Virtualization (kvm, QEMU)
Παραμετροποίηση vm σε cloud providers
Process management tools (supervisor, pm2)
Json vs yaml vs Toml
Επιπλέον
Ασφάλεια στον παγκόσμιο ιστό (SSL/TLS και JSON Web Token)
κάλυψη της λειτουργίας του κώδικα με ελέγχους μονάδας (unit testing), εξειδίκευση σε python - pytest
Δημιουργία διαχειριστικού περιβάλλοντος με το Django framework ή το fastapi
Docker, containers, docker-compose, docker hub
Διδακτικές και Μαθησιακές Μέθοδοι - Αξιολόγηση
Τρόπος Παρακολούθησης: πρόσωπο-με-πρόσωπο
Χρήση Τεχνολογιων Πληροφορίας και Επικοινωνιών:
moodle, youtube, εξειδικευμένο λογισμικό
Οργάνωση Διδασκαλίας
Αξιολόγηση Φοιτητών
Ατομικές ή Ομαδικές Εργασίες (100%)
Συνιστώμενη Βιβλιογραφία
Beyer, Betsy, et al. Site Reliability Engineering: How Google Runs Production Systems. " O'Reilly Media, Inc.", 2016.
Shotts Jr, William E. The Linux command line: A complete introduction. No Starch Press, 2019.
Chacon, Scott, and Ben Straub. Pro git. Apress, 2014.
Geerling, Jeff. Ansible for DevOps: Server and configuration management for humans. Leanpub, 2015.
Springer / Automated Software Engineering