Επέκταση του gRPC framework για την παροχή QoS υπηρεσιών
Διπλωματική Εργασία


Επιβλέπων Εμμανουήλ Βαρβαρίγος
Συσχετιζόμενο μάθημα Δίκτυα Επικοινωνιών

Περιγραφή

Τα σύγχρονα κατανεμημένα συστήματα και οι αρχιτεκτονικές μικροϋπηρεσιών βασίζονται σε κλήσεις απομακρυσμένης διαδικασίας (RPC) για ανταλλαγή δεδομένων ή ενεργοποίηση συμβάντων. Ένα από τα σημαντικότερα πλεονεκτήματα των RPC είναι η δυνατότητα αποσύνδεσης πλήρως των ομότιμων εφαρμογών, οι οποίες μπορούν να παρέχονται από διαφορετικούς προμηθευτές. Ως εκ τούτου, μια εφαρμογή δεν πρέπει να γνωρίζει την εσωτερική δομή και εφαρμογή της ομότιμης εφαρμογής της. Αυτό που προκαλεί μεγάλη ανησυχία είναι οι διεπαφές που εκτίθενται μεταξύ τους. Ομοίως, μία από τις βασικές αρχές των λειτουργιών εικονικού δικτύου (VNFs) είναι η χρήση όσο πιο γενικών API που μπορούν να αναπτυχθούν σε ένα περιβάλλον πολλών προμηθευτών. Συνεπώς, κρίνεται σημαντικό ο ορισμός των API να ακολουθεί μια κοινή τυποποιημένη προσέγγιση.

Το gRPC [1], είναι ένα framework ανοιχτού κώδικα είναι μια πολλά υποσχόμενη τεχνολογία για τον καθορισμό καθαρών και κοινών API. Βασίζεται στο Google Protocol Buffers (GPBs) [2] για τον ορισμό της γλώσσας προγραμματισμού και της ανεξάρτητης πλατφόρμας API, ως αποτελεσματικό πρωτόκολλο επικοινωνίας. Το framework βασίζεται στο μοντέλο πελάτηδιακομιστή (client-server). Ως εκ τούτου, η εφαρμογή διακομιστή παρέχει υπηρεσίες που είναι προσβάσιμες από τον πελάτη. Τόσο οι υπηρεσίες όσο και τα μηνύματα που χρησιμοποιούνται καθορίζονται σε μορφή GPB.

Μια άλλη σημαντική πτυχή των υπηρεσιών δικτύου είναι η πολυπλεξία κίνησης και η παροχή ποιότητας υπηρεσιών (QoS). Οι εικονικές δικτυακες υπηρεσίες (VNF) ενδέχεται να
υποστηρίζουν ταυτόχρονα υπηρεσίες τόσο κρίσιμες από πλευράς απόκρισης (time critical) όσο και όχι (non-time critical) . Στο gRPC, κάθε υπηρεσία είναι μια ροή που βασίζεται στο HTTP/2 πάνω στο εγκατεστημένο κανάλι. Το πρωτόκολλο HTTP/2 [3] παρέχει πολυπλεξία ροής, ωστόσο το gRPC δεν παρέχει κάποιο μηχανισμό για τη διάκριση των προτεραιοτήτων μεταξύ των ροών. Αυτό σημαίνει ότι για να επιτευχθεί διαφοροποίηση υπηρεσίας, απαιτούνται πολλαπλά κανάλια μέσω διαφορετικών TCP συνδέσεων. Αυτό δεν είναι αποτελεσματικό, ειδικά όταν θεωρούμε VNFs, λόγω του αριθμού των δικτυακών συσκευών που πρέπει να υποστηρίζονται από το ίδιο container. Μελέτες δείχνουν ότι καθώς αυξάνεται ο αριθμος των TCP συνδέσεων πέρα από ένα όριο, η απόδοση μειώνεται εκθετικά [4].

Ο στόχος αυτής της διπλωματικής εργασίας είναι να διερευνηθεί η επέκταση του gRPC framework για να ικανοποιήσει τις προαναφερόμενες QoS απαιτήσεις.

Η διπλωματική εργασία θα πραγματοποιηθεί σε συνεργασία με την NOKIA Hellas.

[1] https://grpc.io
[2] https://developers.google.com/protocol-buffers/docs/overview
[3] RFC 7540, Hypertext Transfer Protocol Version 2 (HTTP/2), IETF, 2015
[4] http://libev.schmorp.de/bench.html