Running Kafka clusters on Kubernetes
Λειτουργία Kafka cluster σε Kubernetes περιβάλλον
Master Thesis
Συγγραφέας
Ntosas, Dimitrios
Ημερομηνία
2019-02-25Επιβλέπων
Kyriazis, DimosthenisΚυριαζής, Δημοσθένης
Προβολή/ Άνοιγμα
Λέξεις κλειδιά
Kafka ; KubernetesΠερίληψη
Οι προσεγγίσεις στο σχεδιασμό λογισμικού άλλαξαν ριζικά την τελευταία δεκαετία. Η εμφάνιση των δυνατοτήτων του Cloud Computing, συνοδευόμενη από πιο απαιτητικές επιχειρησιακές απαιτήσεις, έκανε τη βιομηχανία να κινηθεί προς νέες αρχιτεκτονικές που υποσχέθηκαν να φέρουν την απόδοση του λογισμικού στο επόμενο επίπεδο. Κατά συνέπεια, λειτουργίες όπως το Message Queuing και το Containerized Workload Orchestration, έγιναν κοινές απαιτήσεις στη σύγχρονη μηχανική λογισμικού. Το Kafka ως σύστημα Message Broker και το Kubernetes ως Container Orchestrator φέρνουν εξαιρετικά χαρακτηριστικά για να εξυπηρετούν τις παραπάνω ανάγκες και έχουν ήδη δοκιμαστεί σε κρίσιμα επιχειρησιακά περιβάλλοντα. Τα προβλήματα αρχίζουν να εμφανίζονται στη συντήρηση και τη χρήση αυτών των συστημάτων. Τα Kafka και Kubernetes, μαζί με τις ισχυρές λειτουργικότητες τους, εισάγουν μεγάλη πολυπλοκότητα τόσο για τους διαχειριστές όσο και για τους τελικούς χρήστες που συνήθως λειτουργούν ως ανάχωμα για την υιοθέτησή τους σε υφιστάμενες ή νέες εγκαταστάσεις. Θέλουμε να δώσουμε λύση αυτά τα προβλήματα δημιουργώντας μια πλατφόρμα που συνδυάζει τα Kafka και Kubernetes και παρέχει τις λειτουργίες τους ως Υπηρεσία. Μια διεπαφή αφαίρεσης που προσφέρει απλότητα και την αυτοπεποίθηση στον τρόπο με τον οποίο οι εφαρμογές και οι χρήστες αλληλεπιδρούν με αυτές τις τεχνολογίες. Ο στόχος μας για τις εφαρμογές που χρησιμοποιούν αυτή την πλατφόρμα είναι να εκμεταλλεύονται οφέλη που ξεκινούν από την αξιοπιστία και την απόδοση έως τη βελτιωμένη ανοχή σφαλμάτων. Ο στόχος μας για χρήστες που ενεργούν ως Διαχειριστές είναι να μειώσουμε το βάρος των χειρωνακτικών λειτουργιών και να επιτύχουμε μια ομαλότερη εμπειρία στη διοικητική διαδικασία. Για τους χρήστες που ενεργούν ως Μηχανικοί Λογισμικού, θέλουμε να παρέχουμε τη δυνατότητα μιας σημαντικής μείωσης της πολυπλοκότητας στα πρότυπα ανάπτυξης τους και έναν μινιμαλιστικό τρόπο δήλωσης των εξαρτήσεων των εφαρμογών τους.