ΕΠ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, εξειδικευμένο λογισμικό

Οργάνωση Διδασκαλίας

 

Δραστηριότητα

Φόρτος Εργασίας (Εξαμήνου)

Παρακολούθηση διαλέξεων

39

Εργαστηριακή Άσκηση

0

Ατομικές ή Ομαδικές Εργασίες

0

Προετοιμασία για το Εργαστήριο - Αναφορές Εργαστηρίου

0

Εκπόνηση Μελέτης

0

Εκπόνηση Μελέτης

86

Σύνολο

125

Αξιολόγηση Φοιτητών

Ατομικές ή Ομαδικές Εργασίες (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