Γιατί φτιάχνουμε Enterprise Service Mesh;

Το Service Mesh είναι ένα πολύ γνωστό αρχιτεκτονικό μοτίβο για την ενοποίηση μικροϋπηρεσιών και τη μετάβαση σε υποδομές cloud. Σήμερα στον κόσμο των κοντέινερ νέφους είναι αρκετά δύσκολο να γίνει χωρίς αυτό. Αρκετές εφαρμογές πλέγματος υπηρεσιών ανοιχτού κώδικα είναι ήδη διαθέσιμες στην αγορά, αλλά η λειτουργικότητα, η αξιοπιστία και η ασφάλειά τους δεν επαρκούν πάντα, ειδικά όταν πρόκειται για τις απαιτήσεις μεγάλων χρηματοοικονομικών εταιρειών σε όλη τη χώρα. Αυτός είναι ο λόγος για τον οποίο εμείς στη Sbertech αποφασίσαμε να προσαρμόσουμε το Service Mesh και θέλουμε να μιλήσουμε για το τι είναι καλό για το Service Mesh, τι δεν είναι τόσο ωραίο και τι πρόκειται να κάνουμε για αυτό.

Γιατί φτιάχνουμε Enterprise Service Mesh;

Η δημοτικότητα του μοτίβου Service Mesh αυξάνεται με τη δημοτικότητα των τεχνολογιών cloud. Είναι ένα ειδικό επίπεδο υποδομής που απλοποιεί την αλληλεπίδραση μεταξύ διαφορετικών υπηρεσιών δικτύου. Οι σύγχρονες εφαρμογές cloud αποτελούνται από εκατοντάδες ή και χιλιάδες τέτοιες υπηρεσίες, καθεμία από τις οποίες μπορεί να έχει χιλιάδες αντίγραφα.

Γιατί φτιάχνουμε Enterprise Service Mesh;

Η αλληλεπίδραση και η διαχείριση αυτών των υπηρεσιών είναι βασικό καθήκον του Service Mesh. Στην πραγματικότητα, αυτό είναι ένα μοντέλο δικτύου πολλών διακομιστών μεσολάβησης, το οποίο διαχειρίζεται κεντρικά και εκτελεί ένα σύνολο πολύ χρήσιμων λειτουργιών.

Σε επίπεδο διακομιστή μεσολάβησης (επίπεδο δεδομένων):

  • Εκχώρηση και διανομή πολιτικών δρομολόγησης και εξισορρόπησης κυκλοφορίας
  • Διανομή κλειδιών, πιστοποιητικών, μαρκών
  • Συλλογή τηλεμετρίας, δημιουργία μετρήσεων παρακολούθησης
  • Ενοποίηση με υποδομές ασφάλειας και παρακολούθησης

Σε επίπεδο επιπέδου ελέγχου:

  • Εφαρμογή πολιτικών δρομολόγησης και εξισορρόπησης κυκλοφορίας
  • Διαχείριση επαναλήψεων και χρονικών ορίων, ανίχνευση «νεκρών» κόμβων (διακοπή κυκλώματος), διαχείριση σφαλμάτων έγχυσης και διασφάλιση ανθεκτικότητας υπηρεσιών μέσω άλλων μηχανισμών
  • Έλεγχος ταυτότητας/εξουσιοδότηση κλήσης
  • Μετρήσεις απόρριψης (παρατηρησιμότητα)

Το φάσμα των χρηστών που ενδιαφέρονται για την ανάπτυξη αυτής της τεχνολογίας είναι πολύ ευρύ - από μικρές νεοφυείς επιχειρήσεις έως μεγάλες εταιρείες του Διαδικτύου, για παράδειγμα, το PayPal.

Γιατί χρειάζεται το Service Mesh στον εταιρικό τομέα;

Υπάρχουν πολλά σαφή οφέλη από τη χρήση ενός Service Mesh. Πρώτα απ 'όλα, είναι απλά βολικό για προγραμματιστές: για τη σύνταξη κώδικα εμφανίζεται μια τεχνολογική πλατφόρμα, γεγονός που απλοποιεί σημαντικά την ενσωμάτωση στην υποδομή cloud λόγω του γεγονότος ότι το επίπεδο μεταφοράς είναι εντελώς απομονωμένο από τη λογική της εφαρμογής.

Περαιτέρω, Το Service Mesh απλοποιεί τη σχέση μεταξύ προμηθευτών και καταναλωτών. Σήμερα, είναι πολύ πιο εύκολο για τους παρόχους API και τους καταναλωτές να συμφωνήσουν μόνοι τους για τις διεπαφές και τις συμβάσεις, χωρίς να εμπλέκεται ένας ειδικός μεσάζων και διαιτητής ολοκλήρωσης - το λεωφορείο εξυπηρέτησης επιχειρήσεων. Αυτή η προσέγγιση επηρεάζει σημαντικά δύο δείκτες. Η ταχύτητα εισαγωγής νέων λειτουργιών στην αγορά (time-to-market) αυξάνεται, αλλά ταυτόχρονα αυξάνεται το κόστος της λύσης, καθώς η ενοποίηση πρέπει να γίνει ανεξάρτητα. Η χρήση του Service Mesh από ομάδες ανάπτυξης επιχειρηματικής λειτουργικότητας συμβάλλει στη διατήρηση μιας ισορροπίας εδώ. Ως αποτέλεσμα, οι πάροχοι API μπορούν να επικεντρωθούν αποκλειστικά στο στοιχείο εφαρμογής της υπηρεσίας τους και απλώς να το δημοσιεύσουν στο Service Mesh - το API θα γίνει αμέσως διαθέσιμο σε όλους τους πελάτες και η ποιότητα της ενοποίησης θα είναι έτοιμη για παραγωγή και δεν θα απαιτεί ούτε ένα γραμμή πρόσθετου κωδικού.

Το επόμενο πλεονέκτημα είναι ότι ο προγραμματιστής, χρησιμοποιώντας το Service Mesh, εστιάζει αποκλειστικά στην επιχειρηματική λειτουργικότητα — στο προϊόν και όχι στο τεχνολογικό στοιχείο της υπηρεσίας του. Για παράδειγμα, δεν χρειάζεται πλέον να σκέφτεστε το γεγονός ότι σε μια κατάσταση όπου μια υπηρεσία καλείται μέσω του δικτύου, μπορεί να προκύψει κάποια αποτυχία σύνδεσης. Επιπλέον, το Service Mesh βοηθά στην εξισορρόπηση της κυκλοφορίας μεταξύ των αντιγράφων της ίδιας υπηρεσίας: εάν ένα από τα αντίγραφα «πεθάνει», το σύστημα θα αλλάξει όλη την επισκεψιμότητα στα υπόλοιπα ζωντανά αντίγραφα.

Service Mesh - αυτή είναι μια καλή βάση για τη δημιουργία κατανεμημένων εφαρμογών, το οποίο αποκρύπτει από τον πελάτη τα στοιχεία παροχής κλήσεων προς τις υπηρεσίες του τόσο εσωτερικά όσο και εξωτερικά. Όλες οι εφαρμογές που χρησιμοποιούν Service Mesh είναι απομονωμένες σε επίπεδο μεταφοράς τόσο από το δίκτυο όσο και μεταξύ τους: δεν υπάρχει επικοινωνία μεταξύ τους. Σε αυτήν την περίπτωση, ο προγραμματιστής λαμβάνει τον πλήρη έλεγχο των υπηρεσιών του.

πρέπει να σημειωθεί ότι Η ενημέρωση των κατανεμημένων εφαρμογών σε περιβάλλον πλέγματος υπηρεσιών γίνεται ευκολότερη. Για παράδειγμα, μια μπλε/πράσινη ανάπτυξη, στην οποία είναι διαθέσιμα για εγκατάσταση δύο περιβάλλοντα εφαρμογών, το ένα από τα οποία δεν έχει ενημερωθεί και βρίσκεται σε κατάσταση αναμονής. Η επιστροφή στην προηγούμενη έκδοση σε περίπτωση αποτυχίας κυκλοφορίας πραγματοποιείται από έναν ειδικό δρομολογητή, ο ρόλος του οποίου το Service Mesh αντιμετωπίζει καλά. Για να δοκιμάσετε τη νέα έκδοση, μπορείτε να χρησιμοποιήσετε απελευθέρωση καναρινιού — μετάβαση στη νέα έκδοση μόνο 10% της επισκεψιμότητας ή αιτημάτων από μια πιλοτική ομάδα πελατών. Η κύρια κίνηση πηγαίνει στην παλιά έκδοση, τίποτα δεν χαλάει.

Επίσης Το Service Mesh μας παρέχει έλεγχο SLA σε πραγματικό χρόνο. Το κατανεμημένο σύστημα διακομιστή μεσολάβησης δεν θα επιτρέψει στην υπηρεσία να αποτύχει όταν ένας από τους πελάτες υπερβαίνει το όριο που του έχει εκχωρηθεί. Εάν η απόδοση του API είναι περιορισμένη, κανείς δεν θα μπορεί να την κατακλύσει με μεγάλο αριθμό συναλλαγών: το Service Mesh βρίσκεται μπροστά από την υπηρεσία και δεν επιτρέπει την περιττή κίνηση. Απλώς θα αντεπιτεθεί στο επίπεδο ενοποίησης και οι ίδιες οι υπηρεσίες θα συνεχίσουν να λειτουργούν χωρίς να το αντιληφθούν.

Εάν μια εταιρεία θέλει να μειώσει το κόστος για την ανάπτυξη λύσεων ενοποίησης, το Service Mesh βοηθά επίσης: Μπορείτε να μεταβείτε στην έκδοση ανοιχτού κώδικα από εμπορικά προϊόντα. Το Enterprise Service Mesh βασίζεται στην έκδοση ανοιχτού κώδικα του Service Mesh.

Ένα άλλο πλεονέκτημα - τη διαθεσιμότητα ενός ενιαίου πλήρους συνόλου υπηρεσιών ολοκλήρωσης. Επειδή όλη η ενοποίηση δημιουργείται μέσω αυτού του ενδιάμεσου λογισμικού, μπορούμε να διαχειριστούμε όλη την κίνηση ενοποίησης και τις συνδέσεις μεταξύ των εφαρμογών που αποτελούν τον επιχειρηματικό πυρήνα της εταιρείας. Είναι πολύ άνετο.

Και τελικά Το Service Mesh ενθαρρύνει μια εταιρεία να μετακινηθεί σε μια δυναμική υποδομή. Τώρα πολλοί αναζητούν τη μεταφορά εμπορευματοκιβωτίων. Κόβοντας ένα μονόλιθο σε μικροϋπηρεσίες, εφαρμόζοντας όλα αυτά όμορφα - το θέμα είναι σε άνοδο. Αλλά όταν προσπαθείτε να μεταφέρετε ένα σύστημα που είναι σε παραγωγή για πολλά χρόνια σε μια νέα πλατφόρμα, αντιμετωπίζετε αμέσως μια σειρά προβλημάτων: το να το σπρώξετε όλο σε κοντέινερ και να το εγκαταστήσετε στην πλατφόρμα δεν είναι εύκολο. Και η υλοποίηση, ο συγχρονισμός και η αλληλεπίδραση αυτών των κατανεμημένων στοιχείων είναι ένα άλλο πολύ περίπλοκο θέμα. Πώς θα επικοινωνήσουν μεταξύ τους; Θα υπάρξουν διαδοχικές αστοχίες; Το Service Mesh σάς επιτρέπει να επιλύσετε ορισμένα από αυτά τα προβλήματα και να διευκολύνετε τη μετάβαση από την παλιά αρχιτεκτονική στη νέα, λόγω του γεγονότος ότι μπορείτε να ξεχάσετε τη λογική ανταλλαγής δικτύου.

Γιατί χρειάζεστε προσαρμογή Service Mesh;

Στην εταιρεία μας, εκατοντάδες συστήματα και μονάδες συνυπάρχουν και ο χρόνος εκτέλεσης είναι πολύ φορτωμένος. Δεν αρκεί λοιπόν ένα απλό μοτίβο ενός συστήματος να καλεί ένα άλλο και να λαμβάνει απάντηση, γιατί στην παραγωγή θέλουμε περισσότερα. Τι άλλο χρειάζεστε από ένα εταιρικό πλέγμα εξυπηρέτησης;

Γιατί φτιάχνουμε Enterprise Service Mesh;

Υπηρεσία επεξεργασίας εκδηλώσεων

Ας φανταστούμε ότι πρέπει να κάνουμε επεξεργασία συμβάντων σε πραγματικό χρόνο - ένα σύστημα που αναλύει τις ενέργειες του πελάτη σε πραγματικό χρόνο και μπορεί να του κάνει αμέσως μια σχετική προσφορά. Για να εφαρμόσετε παρόμοια λειτουργικότητα, χρησιμοποιήστε αρχιτεκτονικό μοτίβο που ονομάζεται αρχιτεκτονική με γνώμονα το γεγονός (EDA). Κανένα από τα τρέχοντα Πλέγματα Υπηρεσίας δεν υποστηρίζει εγγενώς τέτοια μοτίβα, αλλά αυτό είναι πολύ σημαντικό, ειδικά για μια τράπεζα!

Είναι πολύ περίεργο ότι η κλήση απομακρυσμένης διαδικασίας (RPC) υποστηρίζεται από όλες τις εκδόσεις του Service Mesh, αλλά δεν είναι φιλικές με το EDA. Επειδή το Service Mesh είναι ένα είδος σύγχρονης κατανεμημένης ενοποίησης και το EDA είναι ένα πολύ σχετικό αρχιτεκτονικό μοτίβο που σας επιτρέπει να κάνετε μοναδικά πράγματα όσον αφορά την εμπειρία του πελάτη.

Το Enterprise Service Mesh θα πρέπει να λύσει αυτό το πρόβλημα. Επιπλέον, θέλουμε να δούμε σε αυτό την υλοποίηση εγγυημένης παράδοσης, ροής και σύνθετης επεξεργασίας συμβάντων χρησιμοποιώντας μια ποικιλία φίλτρων και προτύπων.

Υπηρεσία μεταφοράς αρχείων

Εκτός από το EDA, θα ήταν ωραίο να μπορείτε να μεταφέρετε αρχεία: σε κλίμακα Enterprise, πολύ συχνά είναι δυνατή μόνο η ενσωμάτωση αρχείων. Συγκεκριμένα, χρησιμοποιείται το αρχιτεκτονικό μοτίβο ETL (Extract, Transform, Load). Σε αυτό, κατά κανόνα, όλοι ανταλλάσσουν αρχεία αποκλειστικά: χρησιμοποιούνται μεγάλα δεδομένα, κάτι που δεν είναι πρακτικό να προωθηθούν ξεχωριστά αιτήματα. Η δυνατότητα να υποστηρίζετε εγγενώς τις μεταφορές αρχείων στο Enterprise Service Mesh σας δίνει την ευελιξία που χρειάζεται η επιχείρησή σας.

Υπηρεσία ενορχήστρωσης

Οι μεγάλοι οργανισμοί έχουν σχεδόν πάντα διαφορετικές ομάδες που κατασκευάζουν διαφορετικά προϊόντα. Για παράδειγμα, σε μια τράπεζα, κάποιες ομάδες εργάζονται με καταθέσεις, ενώ άλλες με προϊόντα δανείων, και υπάρχουν πολλές τέτοιες περιπτώσεις. Αυτοί είναι διαφορετικοί άνθρωποι, διαφορετικές ομάδες που φτιάχνουν τα προϊόντα τους, αναπτύσσουν τα API τους και τα παρέχουν σε άλλους. Και πολύ συχνά υπάρχει ανάγκη σύνθεσης αυτών των υπηρεσιών, καθώς και εφαρμογής πολύπλοκης λογικής για διαδοχική κλήση ενός συνόλου API. Για να λύσετε αυτό το πρόβλημα, χρειάζεστε μια λύση στο επίπεδο ενοποίησης που θα απλοποιεί όλη αυτή τη σύνθετη λογική (κλήση πολλών API, περιγραφή της διαδρομής αιτήματος κ.λπ.). Αυτή είναι η υπηρεσία ενορχήστρωσης στο Enterprise Service Mesh.

AI και ML

Όταν οι μικροϋπηρεσίες επικοινωνούν μέσω ενός μόνο επιπέδου ενοποίησης, το Service Mesh γνωρίζει φυσικά τα πάντα για τις κλήσεις κάθε υπηρεσίας. Συλλέγουμε τηλεμετρία: ποιος τηλεφώνησε σε ποιον, πότε, για πόσο καιρό, πόσες φορές κ.λπ. Όταν υπάρχουν εκατοντάδες χιλιάδες από αυτές τις υπηρεσίες και δισεκατομμύρια κλήσεις, τότε όλα αυτά συσσωρεύονται και σχηματίζουν Big Data. Αυτά τα δεδομένα μπορούν να αναλυθούν χρησιμοποιώντας τεχνητή νοημοσύνη, μηχανική μάθηση κ.λπ., και στη συνέχεια μπορούν να γίνουν μερικά χρήσιμα πράγματα με βάση τα αποτελέσματα της ανάλυσης. Θα ήταν σκόπιμο να παραχωρηθεί τουλάχιστον εν μέρει ο έλεγχος όλης αυτής της κίνησης δικτύου και των κλήσεων εφαρμογών που είναι ενσωματωμένες στο Service Mesh στην τεχνητή νοημοσύνη.

Υπηρεσία πύλης API

Συνήθως, ένα Service Mesh έχει διακομιστές μεσολάβησης και υπηρεσίες που συνομιλούν μεταξύ τους εντός μιας αξιόπιστης περιμέτρου. Υπάρχουν όμως και εξωτερικοί αντισυμβαλλόμενοι. Οι απαιτήσεις για τα API που εκτίθενται σε αυτήν την ομάδα καταναλωτών είναι πολύ πιο αυστηρές. Χωρίζουμε αυτήν την εργασία σε δύο κύρια μέρη.

  • Ασφάλεια. Ζητήματα που σχετίζονται με ddos, ευπάθεια πρωτοκόλλων, εφαρμογών, λειτουργικών συστημάτων και ούτω καθεξής.
  • Κλίμακα. Όταν ο αριθμός των API που πρέπει να προβληθούν σε πελάτες ανέρχεται σε χιλιάδες ή και εκατοντάδες χιλιάδες, υπάρχει ανάγκη για κάποιο είδος εργαλείου διαχείρισης για αυτό το σύνολο API. Πρέπει να παρακολουθείτε συνεχώς το API: αν λειτουργούν ή όχι, ποια είναι η κατάστασή τους, ποια κυκλοφορία ρέει, ποια στατιστικά στοιχεία κ.λπ. Μια πύλη API θα πρέπει να χειρίζεται αυτήν την εργασία, ενώ παράλληλα καθιστά ολόκληρη τη διαδικασία διαχειρίσιμη και ασφαλή. Χάρη σε αυτό το στοιχείο, το Enterprise Service Mesh μαθαίνει να δημοσιεύει εύκολα τόσο εσωτερικά όσο και εξωτερικά API.

Υπηρεσία υποστήριξης για συγκεκριμένα πρωτόκολλα και μορφές δεδομένων (AS gateway)

Επί του παρόντος, οι περισσότερες λύσεις Service Mesh μπορούν να λειτουργήσουν εγγενώς μόνο με κίνηση HTTP και HTTP2 ή σε μειωμένη λειτουργία σε επίπεδο TCP/IP. Το Enterprise Service Mesh αναδύεται με πολλά άλλα πολύ συγκεκριμένα πρωτόκολλα μεταφοράς δεδομένων. Ορισμένα συστήματα μπορεί να χρησιμοποιούν μεσίτες μηνυμάτων, άλλα είναι ενσωματωμένα σε επίπεδο βάσης δεδομένων. Εάν η εταιρεία διαθέτει SAP, τότε μπορεί να χρησιμοποιήσει και το δικό της σύστημα ολοκλήρωσης. Επιπλέον, όλα αυτά λειτουργούν και αποτελούν σημαντικό κομμάτι της επιχείρησης.

Δεν μπορείτε απλώς να πείτε: «Ας εγκαταλείψουμε την παλαιού τύπου και ας δημιουργήσουμε νέα συστήματα που μπορούν να χρησιμοποιούν Service Mesh». Για να συνδέσετε όλα τα παλιά συστήματα με τα νέα (σε αρχιτεκτονική microservice), τα συστήματα που μπορούν να χρησιμοποιήσουν Service Mesh θα χρειαστούν κάποιου είδους προσαρμογέα, ενδιάμεσο, πύλη. Συμφωνώ, θα ήταν ωραίο να έβγαινε σε κουτί μαζί με την υπηρεσία. Η πύλη AC μπορεί να υποστηρίξει οποιαδήποτε επιλογή ενσωμάτωσης. Φανταστείτε, απλώς εγκαθιστάτε το Enterprise Service Mesh και είναι έτοιμο να αλληλεπιδράσει με όλα τα πρωτόκολλα που χρειάζεστε. Αυτή η προσέγγιση είναι πολύ σημαντική για εμάς.

Έτσι φανταζόμαστε περίπου την εταιρική έκδοση του Service Mesh (Enterprise Service Mesh). Η περιγραφόμενη προσαρμογή επιλύει τα περισσότερα από τα προβλήματα που προκύπτουν όταν προσπαθείτε να χρησιμοποιήσετε έτοιμες εκδόσεις ανοιχτού κώδικα της πλατφόρμας ενσωμάτωσης. Η αρχιτεκτονική Service Mesh, που παρουσιάστηκε μόλις πριν από μερικά χρόνια, συνεχίζει να εξελίσσεται και είμαστε ενθουσιασμένοι που μπορούμε να συμβάλουμε στην ανάπτυξή της. Ελπίζουμε ότι η εμπειρία μας θα σας φανεί χρήσιμη.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο