Χαροκόπειο Πανεπιστήμιο
Σχολή: Ψηφιακής Τεχνολογίας
Τμήμα: Πληροφορικής και Τηλεματικής
Πρόγραμμα: Προπτυχιακό Πρόγραμμα Σπουδών

Βασικές έννοιες και εργαλεία DevOps

Εξάμηνο: 7 ECTS: 5.0 Κατ’ επιλογήν Erasmus

Γενικά

Κωδικός: ΕΠ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, το λογισμικό προγραμματίζεται σε μικρά τμήματα, τα οποία ενσωματώνονται, ελέγχονται, εποπτεύονται και αναπτύσσονται παράλληλα, κερδίζοντας χρόνο και χρήματα, αλλά και εξασφαλίζοντας την δια­λει­τουργικότητά τους


Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής/ η φοιτήτρια θα είναι σε θέση να διαχειριστεί και να αυτοματοποιήσει αρκετές διαδικασίες εγκατάστασης/παραμετροποίησης λογισμικού καθώς και την προετοιμασία της υποδομής και των υπηρεσιών που θα υποστηρίζουν τα σύγχρονα πληροφοριακά συστήματα.

Δεξιότητες

- Προσαγμογή σε νέες καταστάσεις, Ομαδική εεργασία, Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέωεις