ISTIO. Ένα πλέγμα υπηρεσιών
ΙSTIO. A service mesh
Keywords
Kubernetes ; Istio ; Ενορχήστρωση ; Μικροϋπηρεσίες ; Πλέγμα Υπηρεσιών ; Τεχνολογίες περιεκτώνAbstract
Η υιοθέτηση τεχνολογιών περιεκτών και εργαλείων ενορχήστρωσης όπως το Kubernetes, έχει διαμορφώσει
τον τρόπο υλοποίησης και ανάπτυξης εφαρμογών ιστού. Ο ανταγωνισμός και οι αυξημένες δυνατότητες
των σημερινών δικτύων, έχουν φέρει ένα νέο κύμα παροχών και υπηρεσιών που καλούνται οι εφαρμογές
να αφομοιώσουν. Οι ανάγκες κλιμάκωσης, αρθρωτής διαχείρισης και επέκτασης της λειτουργικότητας μιας
εφαρμογής έχουν οδηγήσει στην υιοθέτηση του μοντέλου των μικροϋπηρεσιών. Η φύση του μοντέλου
αυτού, έφερε αλλαγές στον τρόπο ανάπτυξης εφαρμογών προσθέτοντας νέα επίπεδα λειτουργικότητας.
Τεχνολογίες πλέγματος υπηρεσιών, όπως το Istio, συνδυάζονται με εργαλεία ενορχήστρωσης,
προσφέροντας ένα σύνολο λειτουργιών επιπέδου εφαρμογής. Η συγγραφή της εργασίας αποσκοπεί στην
διεξοδική ανάλυση του τρόπου λειτουργίας της πλατφόρμας Istio καθώς και των δυνατοτήτων που
προσφέρονται μέσα από αυτή. Ακόμη, η εργασία στοχεύει στην κατανόηση των διαδικασιών
ενορχήστρωσης μέσα από την διερεύνηση της πλατφόρμας Kubernetes, καθώς και των πόρων που μπορούν
να δημιουργηθούν σε εκείνη. Έμφαση δόθηκε στην διαχείριση της κίνησης, την παρατηρησιμότητα και
την ασφάλεια εντός ενός πλέγματος υπηρεσιών, αποδίδοντας πραγματικό σενάριο ανάπτυξης εφαρμογής
με την χρήση των παραπάνω εργαλείων. Η εφαρμογή αποτελεί μία πλατφόρμα ιστού, με την οποία ένας
χρήστης μπορεί να δημιουργήσει λίστες αναπαραγωγής καθώς και να προσθέσει μουσικά κομμάτια σε
εκείνες. Η υλοποίησή της στηρίζεται στην αρχιτεκτονική μικροϋπηρεσιών, περιέχοντας ανάπτυξη
υπηρεσιών βάσεων δεδομένων (MongoDB), APIs (NodeJS) και διεπαφής χρήστη (ReactJS). Επιπλέον,
ακολούθησε πρακτική εφαρμογή των μηχανισμών δρομολόγησης επιπέδου εφαρμογής, ασφάλειας και
παρατηρησιμότητας του Istio προσφέροντας ένα σύνολο από πολύτιμες γνώσεις.
Abstract
The adoption of containerization technologies and orchestration tools such as Kubernetes has shaped the
way web applications are implemented and developed. The competition and increased capabilities of
today's networks have brought a new wave of benefits and services that applications are being asked to
assimilate. The needs for scalability, modularity and extension of an application's functionality have led to
the adoption of the microservices model. The nature of this model has brought changes in the way
applications are developed adding new layers of functionality. Service mesh technologies, such as Istio, are
combined with orchestration tools, offering a set of application layer functionality. This paper aims to
provide a thorough analysis of the way that Istio platform works and the functionality offered through it.
Furthermore, the thesis aims to understand the orchestration processes through the exploration of the
Kubernetes platform, as well as the resources that can be created within it. Emphasis was placed on traffic
management, observability and security within a service mesh, yielding a real application development
scenario using the above tools. The application is a web platform, with which a user can create playlists as
well as add music tracks to them. Its implementation is based on the microservices architecture, including
development of database services (MongoDB), APIs (NodeJS) and user interface (ReactJS). In addition,
practical implementation of Istio's application layer routing, security and observability mechanisms
followed, providing a set of valuable insights.