Αρχιτεκτονική Microservice - Μάθετε, δημιουργήστε και αναπτύξτε μικροσυσκευές



Αυτό το ιστολόγιο εξηγεί λεπτομερώς την Αρχιτεκτονική της Μικροεξυπηρεσίας. Περιλαμβάνει επίσης τα υπέρ και τα κατά και μια μελέτη περίπτωσης που εξηγεί την αρχιτεκτονική του UBER.

Αρχιτεκτονική Μικροεξυπηρέτησης:

Από το δικό μου , πρέπει να έχετε μια βασική κατανόηση της αρχιτεκτονικής Microservice.Όμως, είναι επαγγελματίας με θα απαιτήσει περισσότερα από τα βασικά. Σε αυτό το ιστολόγιο, θα μπείτε στο βάθος των αρχιτεκτονικών εννοιών και θα τις εφαρμόσετε χρησιμοποιώντας μια μελέτη περίπτωσης UBER.

Σε αυτό το ιστολόγιο, θα μάθετε για τα εξής:





  • Ορισμός της αρχιτεκτονικής μικροσυσκευών
  • Βασικές έννοιες της αρχιτεκτονικής μικροϋπολογιστών
  • Πλεονεκτήματα και μειονεκτήματα της αρχιτεκτονικής Microservice
  • UBER - Μελέτη περίπτωσης

Μπορείτε να ανατρέξετε στο , για να κατανοήσουμε τις βασικές αρχές και τα οφέλη των Microservices.

Θα είναι δίκαιο μόνο εάν σας δώσω τον ορισμό των Μικροσυσκευών.



Ορισμός μικροσυσκευών

Ως εκ τούτου, δεν υπάρχει σωστός ορισμός του Microservices γνωστού και ως Microservice Architecture, αλλά μπορείτε να πείτε ότι είναι ένα πλαίσιο που αποτελείται από μικρές, ατομικά αναπτυσσόμενες υπηρεσίες που εκτελούν διαφορετικές λειτουργίες.

Οι μικροϋπηρεσίες εστιάζουν σε έναν ενιαίο επιχειρηματικό τομέα που μπορεί να εφαρμοστεί ως πλήρως ανεξάρτητη αναπτυσσόμενη υπηρεσία και να τις εφαρμόσει σε διαφορετικές τεχνολογικές στοίβες.

Διαφορές μεταξύ Μονολιθικής Αρχιτεκτονικής και Μικροσυσκευών - Αρχιτεκτονική Μικροσυσκευών - Edureka



Φιγούρα 1: Διαφορά μεταξύ Μονολιθικής και Μικροσυσκευής Αρχιτεκτονικής - Αρχιτεκτονική Μικροεξυπηρετήσεων

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

Για να σας κάνω να κατανοήσετε καλύτερα, επιτρέψτε μου να σας πω μερικές βασικές έννοιες της αρχιτεκτονικής μικροϋπηρεσιών.

Βασικές έννοιες της αρχιτεκτονικής μικροϋπολογιστών

Πριν ξεκινήσετε να δημιουργείτε τις δικές σας εφαρμογές χρησιμοποιώντας μικροϋπηρεσίες, πρέπει να είστε σαφείς σχετικά με το εύρος και τις λειτουργίες της εφαρμογής σας.

Ακολουθούν ορισμένες οδηγίες που πρέπει να ακολουθούνται κατά τη συζήτηση των μικροϋπηρεσιών.

Οδηγίες κατά το σχεδιασμό μικροσυσκευών

  • Ως προγραμματιστής, όταν αποφασίσετε να δημιουργήσετε μια εφαρμογή διαχωρίστε τους τομείς και να είστε ξεκάθαροι με τις λειτουργίες.
  • Κάθε μικροϋπηρεσία που σχεδιάζετε θα επικεντρώνεται μόνο σε μία υπηρεσία της εφαρμογής.
  • Βεβαιωθείτε ότι έχετε σχεδιάσει την εφαρμογή με τέτοιο τρόπο ώστε κάθε υπηρεσία να μπορεί να αναπτυχθεί ξεχωριστά.
  • Βεβαιωθείτε ότι η επικοινωνία μεταξύ μικροϋπηρεσιών γίνεται μέσω διακομιστή χωρίς κατάσταση.
  • Κάθε υπηρεσία μπορεί να μετατραπεί σε μικρότερες υπηρεσίες, έχοντας τις δικές τους μικροϋπηρεσίες.

Τώρα, που έχετε διαβάσει τις βασικές οδηγίες κατά το σχεδιασμό μικροσυσκευών, ας κατανοήσουμε την αρχιτεκτονική των μικροϋπηρεσιών.

Πώς λειτουργεί η αρχιτεκτονική Microservice;

Μια τυπική αρχιτεκτονική Microservice (MSA) πρέπει να αποτελείται από τα ακόλουθα στοιχεία:

  1. Πελάτες
  2. Πάροχοι ταυτότητας
  3. API πύλης
  4. Μορφές μηνυμάτων
  5. Βάσεις δεδομένων
  6. Στατικό περιεχόμενο
  7. Διαχείριση
  8. Ανακάλυψη υπηρεσίας

Ανατρέξτε στο παρακάτω διάγραμμα.

πώς να χρησιμοποιήσετε σημαφοφόρους στην Ιάβα

Σχήμα 2: Αρχιτεκτονική Μικροσυσκευών - Αρχιτεκτονική Μικροσυσκευών

Ξέρω ότι η αρχιτεκτονική φαίνεται λίγο περίπλοκη, αλλά αςΕγώαπλοποιήστε το για εσάς.

1. Πελάτες

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

2. Πάροχοι ταυτότητας

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

3. Πύλη API

Δεδομένου ότι οι πελάτες δεν καλούν απευθείας τις υπηρεσίες, το API Gateway λειτουργεί ως σημείο εισόδου για τους πελάτες να προωθούν αιτήματα σε κατάλληλες μικροϋπηρεσίες.

Τα πλεονεκτήματα της χρήσης πύλης API περιλαμβάνουν:

  • Όλες οι υπηρεσίες μπορούν να ενημερωθούν χωρίς να γνωρίζουν οι πελάτες.
  • Οι υπηρεσίες μπορούν επίσης να χρησιμοποιούν πρωτόκολλα ανταλλαγής μηνυμάτων που δεν είναι φιλικά προς τον ιστό.
  • Το API Gateway μπορεί να εκτελεί οριζόντιες λειτουργίες όπως παροχή ασφάλειας, εξισορρόπηση φορτίου κ.λπ.

Μετά τη λήψη των αιτημάτων των πελατών, η εσωτερική αρχιτεκτονική αποτελείται από μικροϋπηρεσίες που επικοινωνούν μεταξύ τους μέσω μηνυμάτων για τον χειρισμό αιτημάτων πελατών.

4. Μορφές μηνυμάτων

Υπάρχουν δύο τύποι μηνυμάτων μέσω των οποίων επικοινωνούν:

  • Σύγχρονα μηνύματα: Στην περίπτωση που οι πελάτες περιμένουν τις απαντήσεις από μια υπηρεσία, συνήθως οι Υπηρεσίες Μικροσυντήρησης χρησιμοποιούν REST (Αντιπροσωπευτική μεταφορά κράτους) καθώς βασίζεται σε έναν ανιθαγενή, διακομιστή-πελάτη και το Πρωτόκολλο HTTP . Αυτό το πρωτόκολλο χρησιμοποιείται καθώς είναι ένα κατανεμημένο περιβάλλον και κάθε λειτουργικότητα αντιπροσωπεύεται με έναν πόρο για τη διεξαγωγή λειτουργιών
  • Ασύγχρονα μηνύματα: Στην περίπτωση που οι πελάτες δεν περιμένουν τις απαντήσεις από μια υπηρεσία, οι Μικροεπηρεσίες συνήθως τείνουν να χρησιμοποιούν πρωτόκολλα όπως AMQP, STOMP, MQTT . Αυτά τα πρωτόκολλα χρησιμοποιούνται σε αυτόν τον τύπο επικοινωνίας δεδομένου ότι ο χαρακτήρας των μηνυμάτων ορίζεται και αυτά τα μηνύματα πρέπει να είναι διαλειτουργικά μεταξύ των εφαρμογών.

Η επόμενη ερώτηση που μπορεί να θυμάστε είναι πώς χειρίζονται τα δεδομένα τους οι εφαρμογές που χρησιμοποιούν Microservices;

5. Διαχείριση δεδομένων

Λοιπόν, κάθε Microservice διαθέτει μια ιδιωτική βάση δεδομένων για να συλλαμβάνει τα δεδομένα τους και να εφαρμόζει την αντίστοιχη επιχειρησιακή λειτουργικότητα. Επίσης, οι βάσεις δεδομένων των Microservices ενημερώνονται μόνο μέσω του API υπηρεσιών τους. Ανατρέξτε στο παρακάτω διάγραμμα:

Σχήμα 3: Αναπαράσταση δεδομένων χειρισμού μικροσυσκευών - Αρχιτεκτονική μικροσυσκευών

Οι υπηρεσίες που παρέχει η Microservices μεταφέρονται σε οποιαδήποτε απομακρυσμένη υπηρεσία που υποστηρίζει επικοινωνία μεταξύ διεργασιών για διαφορετικές τεχνολογικές στοίβες.

6. Στατικό περιεχόμενο

Αφού οι Μικροεπηρεσίες επικοινωνούν μέσα τους, αναπτύσσουν το στατικό περιεχόμενο σε μια υπηρεσία αποθήκευσης που βασίζεται σε σύννεφο που μπορεί να τις παραδώσει απευθείας στους πελάτες μέσω Δίκτυα παράδοσης περιεχομένου (CDN) .

πώς να ξεκινήσετε μια τάξη στο python

Εκτός από τα παραπάνω στοιχεία, υπάρχουν κάποια άλλα στοιχεία που εμφανίζονται σε μια τυπική αρχιτεκτονική μικροσυσκευών:

7. Διαχείριση

Αυτό το στοιχείο είναι υπεύθυνο για την εξισορρόπηση των υπηρεσιών σε κόμβους και τον εντοπισμό αστοχιών.

8. Ανακάλυψη υπηρεσίας

Λειτουργεί ως οδηγός για τις Μικροσυσκευές για την εύρεση της οδού επικοινωνίας μεταξύ τους καθώς διατηρεί μια λίστα υπηρεσιών στις οποίες βρίσκονται οι κόμβοι.

Εγγραφείτε στο κανάλι σας στο YouTube για να λαμβάνετε νέες ενημερώσεις ..!

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

Πλεονεκτήματα και μειονεκτήματα της αρχιτεκτονικής Microservice

Ανατρέξτε στον παρακάτω πίνακα.

Πλεονεκτήματα της αρχιτεκτονικής Microservice Μειονεκτήματα της μικροσυσκευής Αρχιτεκτονική
Ελευθερία χρήσης διαφορετικών τεχνολογιώνΑυξάνει τις προκλήσεις αντιμετώπισης προβλημάτων
Κάθε μικροεξυπηρέτηση επικεντρώνεται στην ικανότητα μιας επιχείρησηςΑυξάνει την καθυστέρηση λόγω απομακρυσμένων κλήσεων
Υποστηρίζει μεμονωμένες αναπτυσσόμενες μονάδεςΑυξημένες προσπάθειες για διαμόρφωση και άλλες λειτουργίες
Επιτρέπει συχνές εκδόσεις λογισμικούΔύσκολο να διατηρηθεί η ασφάλεια των συναλλαγών
Εξασφαλίζει την ασφάλεια κάθε υπηρεσίαςΣκληρή παρακολούθηση δεδομένων σε διάφορα όρια υπηρεσίας
Πολλές υπηρεσίες αναπτύσσονται και αναπτύσσονται παράλληλαΔύσκολη μετακίνηση κώδικα μεταξύ υπηρεσιών

Ας κατανοήσουμε περισσότερα σχετικά με τις Μικροσυσκευές συγκρίνοντας την προηγούμενη αρχιτεκτονική του UBER με την παρούσα.

ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ UBER

Προηγούμενη Αρχιτεκτονική του UBER

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

Σχήμα 4: Μονολιθική Αρχιτεκτονική UBER - Αρχιτεκτονική Μικροεξυπηρέτησης

Το παραπάνω διάγραμμα απεικονίζει την προηγούμενη αρχιτεκτονική του UBER.

  • Υπάρχει ένα REST API με το οποίο συνδέονται οι επιβάτες και οι οδηγοί.
  • Χρησιμοποιούνται τρεις διαφορετικοί προσαρμογείς με API εντός αυτών, για την εκτέλεση ενεργειών όπως χρέωση, πληρωμές, αποστολή email / μηνυμάτων που βλέπουμε όταν κλείνουμε ταξί.
  • Μια βάση δεδομένων MySQL για την αποθήκευση όλων των δεδομένων τους.

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

Δήλωση προβλήματος

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

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

Λύση

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

Ανατρέξτε στο παρακάτω διάγραμμα για να δείτε την αρχιτεκτονική μικροϋπηρεσιών του UBER.

Σχήμα 5: Αρχιτεκτονική Microservice UBER - Αρχιτεκτονική Microservice

  • Η σημαντική αλλαγή που παρατηρούμε εδώ είναι η εισαγωγή του API Gateway μέσω του οποίου συνδέονται όλοι οι οδηγοί και οι επιβάτες. Από το API Gateway, όλα τα εσωτερικά σημεία συνδέονται όπως διαχείριση επιβατών, διαχείριση οδηγού, διαχείριση ταξιδιού και άλλα.
  • Οι μονάδες είναι μεμονωμένες ξεχωριστές αναπτυσσόμενες μονάδες που εκτελούν ξεχωριστές λειτουργίες.
    • Για παράδειγμα: Εάν θέλετε να αλλάξετε οτιδήποτε στις υπηρεσίες μικροχρέωσης χρέωσης, τότε απλώς πρέπει να αναπτύξετε μόνο υπηρεσίες μικροχρέωσης χρέωσης και δεν χρειάζεται να αναπτύξετε τις άλλες.
  • Όλες οι λειτουργίες έχουν πλέον κλιμακωθεί ξεχωριστά, δηλαδή η αλληλεξάρτηση μεταξύ κάθε δυνατότητας καταργήθηκε.
    • Για παράδειγμα, όλοι γνωρίζουμε ότι ο αριθμός των ατόμων που αναζητούν ταξί είναι συγκριτικά μεγαλύτερος από τους ανθρώπους που κάνουν κράτηση ταξί και πραγματοποιούν πληρωμές. Αυτό μας οδηγεί στο συμπέρασμα ότι ο αριθμός των διαδικασιών που λειτουργούν στη μικροεξυπηρέτηση διαχείρισης επιβατών είναι μεγαλύτερος από τον αριθμό των διαδικασιών που λειτουργούν στις πληρωμές.

Σε αυτότρόπος, Το UBER επωφελήθηκε από τη μετατόπισητουαρχιτεκτονική από μονολιθικά έως μικροσυσκευές.

Ελπίζω να σας άρεσε να διαβάζετε αυτήν την ανάρτηση στην αρχιτεκτονική Microservice.Θα έρθω με περισσότερα ιστολόγια, τα οποία θα περιέχουν επίσης πρακτικά.
Ενδιαφέρεστε να μάθετε περισσότερα για τις Μικροσυσκευές;

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

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων του ' Αρχιτεκτονική Μικροεξυπηρέτησης Και θα επικοινωνήσω μαζί σας.