Βασικές έννοιες και εργαλεία DevOps
Γενικά
Κωδικός: ΕΠ42
Γλώσσα: Ελληνική
Τρόπος διδασκαλίας: Δια ζώσης
Προαπαιτούμενα:
Λειτουργικά Συστήματα
Κατανεμημένα Συστήματα
Δίκτυα Υπολογιστών
Βάσεις Δεδομένων
Φόρτος εργασίας
- Διαλέξεις: 39.0 ώρες
- Εργαστήριο: 0.0 ώρες
- Μελέτη: 86.0 ώρες
- Εργασία: 0.0 ώρες
Περιεχόμενο Μαθήματος
Θεματική Ενότητα 1: Επικαιροποίηση προαπαιτούμενων γνώσεων
-Απομακρυσμένη σύνδεση και παραμετροποίηση (ssh)
-Βασικές εντολές linux και διαχείριση συστημάτων (shell scripts and system administration) - service management
-Σύνοψη της γλώσσας προγραμματισμού python
Θεματική Ενότητα 2: Αποθετήρια κώδικα
Θεματική Ενότητα 3: Αυτοματοποίηση
-Εισαγωγή στην ansible - προετοιμασία περιβάλλοντος- inventory
-Τα πιο κοινά ansible modules
-Ansible playbooks
-Συνθήκες και διαχείριση σφαλμάτων
-Vault
-Vagrant
-Ansible galaxy
-Παράδειγμα: εγκατάσταση μιας python web εφαρμογής με χρήση της ansible
Θεματική Ενότητα 4: Virtualization και Containers
-Εισαγωγή στο virtualization
-Containers και διαχείρισή τους
-Δημιουργία images
-Container filesystems
-Δικτύωση
-Volumes
Θεματική Ενότητα 5: Αυτοματοποίηση εκτέλεσης containers
-Docker-compose
-Παράδειγμα χρήσης: containerize a python application
Θεματική Ενότητα 6: Συνεχής Ενσωμάτωση
-Εισαγωγή στο CI/CD
-Testing
-Εγκατάσταση και παραμετροποίηση jenkins
-Συσχέτιση jenkins με αποθετήριο κώδικα
-Build and test python container image
Θεματική Ενότητα 7: Συνεχής Παράδοση
-Deploy
-notifications/alerting
Θεματική Ενότητα 8: Kubernetes
-Περιβάλλοντα εκτέλεσης containers
-Βασικές οντότητες στο kubernetes
-Δικτύωση
-Deploy
-Monitoring
Θεματική Ενότητα 9: Microservices
-Πλεονεκτήματα / μειονεκτήματα
-Application gateways
-Identity Management
Θεματική Ενότητα 10: Ασφάλεια
-Oauth2
-Keycloak
Μαθησιακά Αποτελέσματα
Το DevOps αποτελεί το θεμέλιο λίθο των σύγχρονων ομάδων ανάπτυξης λογισμικού, αλλά και τον σύγχρονο τρόπο ανάπτυξης λογισμικού σε επιχειρησιακά περιβάλλοντα. Πρόκειται για μια καινοτόμα διαδικασία, που συνδυάζει τις ικανότητες των ομάδων ανάπτυξης λογισμικού (developers) και των λειτουργιών (IT operations), με στόχο τη βελτίωση της συνεργασίας και της παραγωγικότητας, μέσω της αυτοματοποίησης των υποδομών (infrastructure), των ροών εργασιών (workflows), και της συνεχούς εποπτείας των επιδόσεων της εφαρμογής που βρίσκεται υπό ανάπτυξη. Σε αντίθεση με το μονολιθικό και παρωχημένο πλέον μοντέλο ανάπτυξης λογισμικού που ακολουθούνταν παλαιότερα, με την εισαγωγή του DevOps, το λογισμικό προγραμματίζεται σε μικρά τμήματα, τα οποία ενσωματώνονται, ελέγχονται, εποπτεύονται και αναπτύσσονται παράλληλα, κερδίζοντας χρόνο και χρήματα, αλλά και εξασφαλίζοντας την διαλειτουργικότητά τους
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής/ η φοιτήτρια θα είναι σε θέση να διαχειριστεί και να αυτοματοποιήσει αρκετές διαδικασίες εγκατάστασης/παραμετροποίησης λογισμικού καθώς και την προετοιμασία της υποδομής και των υπηρεσιών που θα υποστηρίζουν τα σύγχρονα πληροφοριακά συστήματα.
Δεξιότητες
- Προσαγμογή σε νέες καταστάσεις, Ομαδική εεργασία, Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέωεις
