Εξέλιξη Κομματιού
Μάθημα 1: Σχεδιασμός Μικροϋπηρεσιών
• Ένα καλό όριο μικροϋπηρεσίας
• Χρήση του Domain Driven Design (DDD)
• Εναλλακτικές λύσεις στα όρια του επιχειρησιακού τομέα (Volatility, Data, Technology, Organizational)
• Διάσπαση του Monolith
• Πρόωρη αποσύνθεση
• Αποσύνθεση ανά στρώμα
• Χρήση μοτίβων αποσύνθεσης (Strangler, Parallel Run, Feature Toggle)
• Ζητήματα αποσύνθεσης δεδομένων (Απόδοση, Ακεραιότητα, Συναλλαγές)
Μάθημα 2: Βελτιστοποίηση Docker και Runtime
• Επιλογή του κατάλληλου βασικού image
• Ελαχιστοποίηση του αριθμού των στρωμάτων (layers)
• Χρήση πολυπλέων κατασκευών (multi-stage builds)
• Βελτιστοποίηση εικόνας (ταξινόμηση οριζόντιων παραμέτρων, κ.λπ.)
• Εκμετάλλευση της cache κατασκευής
• Σταθεροποίηση των εκδόσεων εικόνων
• Λεπτομερής ρύθμιση της κατανομής πόρων
• Ασφαλές πράκτικές containers
Διαμόρφωση runtime για απόδοση
Μάθημα 3: Kubernetes & Στρατηγικές Κυκλοφορίας
Επισκόπηση Deployments στο Kubernetes
• Δημιουργία και εκτέλεση αρχικής ανάπτυξης
• Επιλογές Deployment στο Kubernetes
Προσομοίωση Rolling Update Deployments
• Κατανόηση του Rolling Update
• Δημιουργία και εκτέλεση Rolling Update
• Αναίρεση (Rolling Back) του Deployment
Προσομοίωση Canary Deployments
• Κατανόηση των Canary Deployments
• Δημιουργία και εκτέλεση Canary Deployment
Προσομοίωση Blue-Green Deployments
• Κατανόηση των Blue-Green Deployments
• Δημιουργία και εκτέλεση Blue-Green Deployment
Λειτουργία Jobs και CronJobs
• Δημιουργία Job και CronJob
Εντοπισμός Σφαλμάτων και Αντιμετώπιση Ζητημάτων
• Τεχνικές εντοπισμού σφαλμάτων με το kubectl
Μάθημα 4: Αυτοματοποίηση & Λειτουργική Αποδοτικότητα
Χρήση Python για Αυτοματοποίηση Κοινών Εργασιών στο Kubernetes
• Χρήση Python για τη διεξαγωγή διοικητικών εργασιών στο Kubernetes
• Χρήση Python για τον ορισμό αντικειμένων διαμόρφωσης
• Χρήση Python για τη δημιουργία αντικειμένων Deployment
• Παρακολούθηση Events στο Kubernetes με Python
• Κλιμάκωση (Scaling) ενός Deployment με Python
Κατανόηση των Προκλήσεων της Αυτοματοποίησης Αναπτύξεων
• Δήλωση Διαμόρφωσης στο Kubernetes
• Διαχείριση της Ακεραιότητας της Διαμόρφωσης
Χρήση της Προσέγγισης GitOps για την Αυτοματοποίηση Αναπτύξεων
• Αρχές του GitOps
• Εισαγωγή στο Flux
• Εγκατάσταση του Flux σε ένα Cluster Kubernetes
Διαμόρφωση Flux για Αυτόματες Αναπτύξεις
• Χρήση ειδοποιήσεων (Notifications)
• Δομή αποθετηρίου πηγαίου κώδικα (Source Repository)
Αντιμετώπιση Ενημερώσεων Εφαρμογών με Αυτοματοποίηση Εικόνων
• Ενημέρωση του Deployment της Εφαρμογής με Flux
• Σάρωση Αποθετηρίων Εικόνων Container για Tags
• Ορισμός Πολιτικής για την επιλογή της νεότερης έκδοσης εικόνας
• Διαμόρφωση Flux για αυτόματες ενημερώσεις εικόνας
Μάθημα 5: Παρατηρησιμότητα & Προσδιορισμός Αιτίας-Ρίζας
Δυνατότητες Καταγραφής και Αποτύπωσης στο Kubernetes
• Γιατί η καταγραφή και το αποτύπωση είναι σημαντικά
• Πρόσβαση στα logs του Kubernetes
• Logs Pods και Containers
Logs Control Plane
• Χρήση Πόρων από κόμβους (Nodes) και pods
Συλλογή και Ανάλυση των Logs
• Συγχώνευση Log (Log Aggregation)
• Οπτικοποίηση Log
Κατανεμημένο Αποτύπωση στο Kubernetes
• Τι είναι το κατανεμημένο αποτύπωση (distributed tracing)
• Χρήση OpenTelemetry
• Εργαλεία Κατανεμημένου Αποτυπώματος
• Εργονομία (Instrumenting) μιας Εφαρμογής
• Χρήση Αποτύπωσης για τον Εντοπισμό Ζητημάτων Απόδοσης
Παρακολούθηση με Prometheus και Grafana
• Έννοιες Παρατηρησιμότητας
• Εργαλεία Παρακολούθησης
• Χρήση Instrumentation Prometheus
Προηγμένες Περιπτώσεις Χρήσης για Log
• Επεξεργασία Logs
• Φιλτράρισμα και Εμπλουτισμός των Logs
• Event Sourcing
Μάθημα 6: Προσομοίωση Κρίσεων Cluster & Ανταπόκριση σε Συμβάντα
• Κατανόηση των διαφορετικών τύπων αστοχιών σε ένα περιβάλλον cluster
• Προσομοίωση Αστοχίας Κόμβου (Node Failure)
• Εξοργισμός Pods & Σενάριο Εξάντλησης Πόρων
• Ζητήματα Δικτύου
• Αστοχίες DNS για τη διαχείριση των timeouts εφαρμογών
• Προσομοίωση Διακοπής του API Server
• Προσομοίωση υψηλής κυκλοφορίας για τη σταθερότητα του συστήματος
• Αστοχία Αποθήκευσης
• Σφάλματα Διαμόρφωσης
• Κατανόηση των διαδικασιών αναφοράς συμβάντων
Μάθημα 7: Τεχνητή Νοημοσύνη για Υποστήριξη Εντοπισμού Σφαλμάτων
• Οφέλη της Γενικευμένης Τεχνητής Νοημοσύνης για το Kubernetes
• Αρχιτεκτονική CLI του K8sGPT
• Εγκατάσταση του K8sGPT CLI
• Εντολές και Χρήση του K8sGPT
• Χρήση Analyzers K8sGPT (podAnalyzer, pvcAnalyzer, rsAnalyzer, κ.λπ.)
• Ανάλυση του Cluster με K8sGPT
• Ανάλυση Ζητημάτων Πραγματικού Χρόνου με K8sGPT
• Operator εντός cluster για K8sGPT
Απαιτήσεις
- Βασικές γνώσεις του τερματικού του Linux (Linux command line)
- Εμπειρία στην ανάπτυξη εφαρμογών ή στη διαχείριση συστημάτων
- Γνωριμία με containers (εννοιές Docker)
- Βασική κατανόηση εννοιών Kubernetes (pods, deployments, services)
- Γενική κατανόηση της αρχιτεκτονικής λογισμικού (π.χ. APIs, υπηρεσίες)
Κοινό-στόχος:
- Μηχανικοί DevOps
- Μηχανικοί Υπολογιστικών Συστημάτων (SREs)
- Προγραμματιστές Backend / Λογισμικού που εργάζονται με μικροϋπηρεσίες
- Μηχανικοί Cloud και Μηχανικοί Πλατφορμών
-
Διαχειριστές Συστημάτων που μετάβainουν σε περιβάλλοντα Kubernetes
Σχόλια (2)
Ο Craig ήταν εξαιρείτικά πληροφορημένος και εμπλεγμένος στην εκπαίδευση, πάντα διασφαλίζοντας ότι προσέχουμε, προσαρμόζοντας τα παραδείγματα στις καθημερινές μας δραστηριότητες και πάντα παρέχοντας απάντηση όταν ζητούνταν, ακόμη και αν η πληροφορία δεν εξακολουθούσε να βρίσκεται στην παρουσίαση.
Ecaterina Ioana Nicoale - BOOKING HOLDINGS ROMANIA SRL
Κομμάτι - DevOps Foundation®
Μηχανική Μετάφραση
Υψηλό επίπεδο υποχρέωσης και γνώσεων του εκπαιδευτή
Jacek - Softsystem
Κομμάτι - DevOps Engineering Foundation (DOEF)®
Μηχανική Μετάφραση