- Γιατί μαθήματα αξιοπιστίας;
- Κλάση 1: Αποτρέψτε την διπλή επεξεργασία με ανίκανους εργάτες επανάληψης
- Κατηγορία 2: Καταργήστε το απόθεμα φαντασμάτων με μοντέλα κατάστασης με κάδο
- Κλάση 3: Διαχωρίστε τον έλεγχο από την πρόσβαση με καθολικό + προβολή
- Κλάση 4: Διατήρηση της παραγγελίας υπό φόρτωση με διαχωρισμό τύπου-aware
- Κατηγορία 5: Εξασφάλιση οικονομικής ακρίβειας με τη συμφωνία κόστους/γεγονότος
- Κατηγορία 6: Λάβετε γρήγορες, έξυπνες αποφάσεις με ενσωμάτωση βελτιστοποίησης
- Ασφάλεια και αξιοπιστία ορίων
- Σχεδιαγράμματα για ανθεκτικότητα με γνώμονα τα γεγονότα
Σε ένα σύστημα τιμολόγησης ή λιανικής, οι αποτυχίες σπάνια προέρχονται από ένα μόνο, προφανές σφάλμα. Μια υπηρεσία τιμολόγησης μπορεί να χρεώσει αθόρυβα έναν πελάτη δύο φορές μετά από μια επανάληψη καταιγίδας. Μια πλατφόρμα λιανικής μπορεί να υπόσχεται μετοχές που έχουν ήδη εξαφανιστεί. Μια ειδοποίηση ασφαλείας μπορεί να φτάσει λίγα λεπτά πολύ αργά για να αποφευχθεί μια παραβίαση.
Η αρχιτεκτονική με γνώμονα τα γεγονότα δίνει ταχύτητα και κλίμακα, αλλά αυτά από μόνα τους δεν εγγυώνται ανθεκτικότητα. Χωρίς προσεκτικό σχεδιασμό, οι επαναλήψεις δημιουργούν διπλασιασμούς, οι καθυστερήσεις λιμοκτονούν τους καταναλωτές και οι αναντιστοιχίες καταστάσεων οδηγούν σε δαπανηρά σφάλματα. Αυτοί είναι κίνδυνοι που αντιμετωπίζει τελικά όποιος κατασκευάζει κατανεμημένα συστήματα.
Με τα χρόνια κατασκευής κατανεμημένων συστημάτων, έχω βρει ότι ο καλύτερος τρόπος για την αντιμετώπιση αυτών των κινδύνων είναι με σχέδια αξιοπιστίας. Κάθε σχεδιάγραμμα καταγράφει μια επαναλαμβανόμενη λειτουργία αποτυχίας και κλιμακώνεται σε διάφορους τομείς, συμπεριλαμβανομένων πληρωμών, λιανικής και ασφάλειας. Κάνουν την αξιοπιστία μια σκόπιμη ιδιότητα του συστήματος, όχι μια εκ των υστέρων σκέψη.
Γιατί μαθήματα αξιοπιστίας;
Χωρίς δομή, οι ομάδες βασίζονται συχνά σε μεμονωμένες διορθώσεις. Αυτά μπορεί να λειτουργούν προσωρινά, αλλά με την πάροδο του χρόνου, δημιουργούν εύθραυστα συστήματα που αποτυγχάνουν υπό πίεση. Η έρευνα δείχνει ότι η αρχιτεκτονική που βασίζεται σε γεγονότα μπορεί να επιδεινώσει τη σύζευξη και την πολυπλοκότητα όταν η αξιοπιστία δεν έχει σχεδιαστεί εξαρχής.
Η κωδικοποίηση μοτίβων αξιοπιστίας σε επαναχρησιμοποιήσιμα προσχέδια σπάει τον κύκλο των επιδιορθώσεων με συνονθύλευμα. Αντί να εφευρίσκουν εκ νέου λύσεις μετά από κάθε διακοπή λειτουργίας, οι ομάδες μπορούν να βασίζονται σε αποδεδειγμένα σχέδια που αντιμετωπίζουν επαναλαμβανόμενες καταστάσεις αστοχίας. Οι ακόλουθες κατηγορίες δείχνουν πώς αυτά τα πρότυπα ενισχύουν την ορθότητα, την ικανότητα ελέγχου και την ανθεκτικότητα σε κλίμακα.
Η παρατηρησιμότητα είναι μέρος της ανθεκτικότητας, όχι ξεχωριστή ανησυχία. Τα σήματα έγκαιρης προειδοποίησης βοηθούν τις ομάδες να ανιχνεύσουν την απόκλιση αξιοπιστίας πριν γίνει περιστατικό ορθότητας.
Είτε χρησιμοποιείτε το New Relic για APM είτε το Splunk για αρχεία καταγραφής και ειδοποιήσεις, βοηθά στη γραμμή βάσης και την παρακολούθηση ενός μικρού συνόλου δεικτών, όπως ποσοστά σφαλμάτων υπηρεσίας και λανθάνουσα κατάσταση επεξεργασίας συμβάντων από άκρο σε άκρο, καθυστέρηση καταναλωτή (ηλικία ανεκτέλεσης), ποσοστά διπλοτύπων ή επανάληψης, αύξηση DLQ, χρόνοι ανακατασκευής προβολής και ποσοστά αναντιστοιχίας συμφωνίας. Όταν αυτά τα σήματα κινούνται, οι ομάδες μπορούν να επέμβουν έγκαιρα και να αποτρέψουν μικρές ασυνέπειες από το να μετατραπούν σε διακοπές ή οικονομικά λάθη.
Κλάση 1: Αποτρέψτε την διπλή επεξεργασία με ανίκανους εργάτες επανάληψης
Για να αποφευχθεί η διπλή επεξεργασία που προκαλείται από επαναλήψεις ή παράδοση εκτός παραγγελίας, οι καταναλωτές πρέπει να είναι ανίκανοι. χωρίς διασφαλίσεις, το ίδιο συμβάν μπορεί να υποβληθεί σε επεξεργασία πολλές φορές, προκαλώντας ασυνεπή κρατικά ή οικονομικά σφάλματα.
Οι ανίκανοι εργαζόμενοι επανάληψης καταναλώνουν τα συμβάντα ντετερμινιστικά χρησιμοποιώντας κλειδιά κατάργησης διπλότυπων ή αναγνωριστικά ακολουθίας, διασφαλίζοντας ότι οι επαναλήψεις δεν οδηγούν σε διπλότυπη επεξεργασία. Οι συναλλακτικές εγγυήσεις του Κάφκα, που περιγράφονται στο έργο του Confluent για ακριβώς-κάποτε σημασιολογίακάνουν αυτό βιώσιμο σε κλίμακα.
Αυτό το μοτίβο αποδείχθηκε απαραίτητο στη χρέωση, όπου μια καταιγίδα επανάληψης ώθησε ένα κύμα διπλών αιτημάτων, αλλά οι ανίκανοι εργαζόμενοι στην επανάληψη απορρόφησαν το φορτίο χωρίς να χρεώσουν τους πελάτες δύο φορές. Οι επαναλήψεις μπορεί να κατακλύσουν τις μεταγενέστερες υπηρεσίες εκτός αν η ανικανότητα είναι σχεδιασμένη.
Η παρακάτω ροή δείχνει πώς ο χειριστής συμβάντων συνδρομής διαχειρίζεται τις επαναλήψεις SNS με τη σειρά, διασφαλίζοντας ότι τα συμβάντα επεξεργάζονται με ασφάλεια πριν φτάσουν στον πυρήνα χρέωσης.
Κατηγορία 2: Καταργήστε το απόθεμα φαντασμάτων με μοντέλα κατάστασης με κάδο
Όταν η κατάσταση του στοιχείου είναι κατακερματισμένη μεταξύ των υπηρεσιών, τα συστήματα ενδέχεται να εμφανίζουν απόθεμα που δεν υπάρχει στην πραγματικότητα. Τα συστήματα λιανικής συχνά υποφέρουν από «φανταστικό απόθεμα», το οποίο οδηγεί σε ακυρώσεις και διαβρώνει την εμπιστοσύνη των πελατών.
Τα μοντέλα καταστάσεων με κάδο το επιλύουν ομαδοποιώντας τις μεταβάσεις καταστάσεων, επιτρέποντας την επανάληψη, τον έλεγχο και τη συμφωνία να λειτουργούν σε συνεπή στιγμιότυπα. Ακαδημαϊκή εργασία για απογραφή φάντασμα ποσοτικοποιεί τη λειτουργική ζημιά και τη φήμη που προκαλείται από ασυνέπειες.
Με την ενοποίηση των γεγονότων σε κουβάδες, εξαλείφθηκαν οι αστοχίες ολοκλήρωσης αγοράς που παραπλάνησαν τους πελάτες. Τα στιγμιότυπα κατάστασης με κουβάδες αποκατέστησαν τη συνοχή, έτσι οι αγοραστές είδαν μόνο ό,τι μπορούσε πραγματικά να αποσταλεί.
Κλάση 3: Διαχωρίστε τον έλεγχο από την πρόσβαση με καθολικό + προβολή
Ledger + προβολή διαχωρίζει την αλήθεια από την ταχύτητα. Το καθολικό είναι μια μόνο προσάρτηση, αμετάβλητη, ελεγχόμενη και πλήρης καταγραφή γεγονότων. Οι προβολές προέρχονται από μοντέλα που κατασκευάστηκαν από αυτό το καθολικό. Είναι βελτιστοποιημένα για γρήγορες ερωτήσεις και είναι ασφαλές να αναδημιουργηθούν.
Αυτός ο διαχωρισμός έχει σημασία επειδή οι έλεγχοι και οι λειτουργίες σε πραγματικό χρόνο έχουν διαφορετικές ανάγκες. Οι έλεγχοι χρειάζονται ένα σταθερό ιστορικό. Οι λειτουργίες χρειάζονται ερωτήματα χαμηλής καθυστέρησης. Όταν ένα κατάστημα προσπαθεί να εξυπηρετήσει και τα δύο, οι ομάδες καταλήγουν με εύθραυστα σχέδια “όλα σε ένα” που δημιουργούν δυσπιστία λόγω αλλαγών στο σχήμα και συμπληρωμάτων.
Παράδειγμα (τιμολόγηση): το καθολικό αποθηκεύει αμετάβλητα συμβάντα χρήσης και προσαρμογής. Μια προβολή “υπόλοιπο πελατών” συγκεντρώνει αυτά τα συμβάντα σε έναν γρήγορο πίνακα που χρησιμοποιείται από πίνακες εργαλείων και δημιουργία τιμολογίων. Εάν η λογική της προβολής αλλάξει, τα δεδομένα γίνονται ασυνεπή ή απαιτείται συμπλήρωση, μπορείτε να δημιουργήσετε ξανά την προβολή αναπαράγοντας ξανά το καθολικό, επαναφέροντας την ορθότητα χωρίς να ξαναγράψετε το ιστορικό. Αυτή είναι η νίκη της αξιοπιστίας: η ιστορία παραμένει συνεπής ενώ τα μοντέλα ανάγνωσης εξελίσσονται.
Κλάση 4: Διατήρηση της παραγγελίας υπό φόρτωση με διαχωρισμό τύπου-aware
Τα συστήματα μεγάλου όγκου πρέπει να μπορούν να διακρίνουν μεταξύ κρίσιμης και μαζικής κυκλοφορίας. Χωρίς προσεκτική κατάτμηση, η τηλεμετρία ή τα συμβάντα χαμηλής προτεραιότητας μπορούν να κατακλύσουν τα ρεύματα και να καθυστερήσουν ροές ευαίσθητες στο χρόνο.
Η κατάτμηση με επίγνωση τύπου το λύνει αυτό διαχωρίζοντας θέματα με βάση τον τύπο συμβάντος ή την αξία της επιχείρησης. Όταν μοντελοποιείται ως πρόβλημα βελτιστοποίησης, αυτή η προσέγγιση βελτιώνει τόσο την απόδοση όσο και τη διαθεσιμότητα.
Στους αγωγούς αποθέματος κατά τη διάρκεια των αιχμής πωλήσεων, τα συμβάντα τηλεμετρίας έφραξαν τις ροές και καθυστέρησαν την «παράδοση» ενημερώσεων. Η κατάτμηση με επίγνωση τύπου εξασφάλιζε τη ροή συμβάντων του κύκλου ζωής σε πραγματικό χρόνο. Ο σχεδιασμός των χωρισμάτων απέτρεψε εσκεμμένα την πείνα και διατήρησε την τάξη.
Η ίδια κατάσταση αποτυχίας εμφανίζεται στα συστήματα ασφαλείας. Η τηλεμετρία μεγάλου όγκου (όπως αρχεία καταγραφής τελικών σημείων ή συμβάντα δικτύου) μπορεί να πλημμυρίσει τη ροή, καθυστερώντας τις χρονικά ευαίσθητες ανιχνεύσεις, συμβάντα κύκλου ζωής ταυτότητας ή ενημερώσεις περιπτώσεων. Η κατάτμηση με επίγνωση του τύπου απομονώνει τη μαζική πρόσληψη από ροές κρίσιμες για αποφάσεις, διασφαλίζοντας ότι οι αγωγοί ειδοποίησης και απόκρισης παραμένουν έγκαιρες ακόμη και κατά τη διάρκεια των αιχμών κατάποσης.
Κατηγορία 5: Εξασφάλιση οικονομικής ακρίβειας με τη συμφωνία κόστους/γεγονότος
Η συμφιλίωση δεν είναι μια στρατηγική επανάληψης. είναι εγγύηση ορθότητας. Τα συστήματα πρέπει να επαληθεύουν συνεχώς ότι η χρήση ευθυγραμμίζεται με το καταγεγραμμένο κόστος. Η οικονομική ακρίβεια απαιτεί την εναρμόνιση των γεγονότων χρήσης με τη χρέωση. Μια χαμένη αναντιστοιχία μπορεί να οδηγήσει σε απώλεια εσόδων ή σε κίνδυνο συμμόρφωσης.
Αυτό το σχέδιο βασίζεται σε προηγούμενα θεμέλια. Η συμφωνία εξαρτάται από τις ίδιες ιδιότητες που περιγράφονται στο Τάξη 3: αμετάβλητη ιστορία και ντετερμινιστικές προβολές. Αλλά ο πυρήνας αυτής της κατηγορίας είναι η επικύρωση και η λογοδοσία: ελέγχους συμφωνίας ότι η επιφάνεια δεν ταιριάζει νωρίς και οδηγεί σε ντετερμινιστική διόρθωση.
Οι αποτελεσματικές πρακτικές περιλαμβάνουν:
- Αυτοματοποιημένοι έλεγχοι συμφωνίας για την έγκαιρη ανίχνευση αναντιστοιχιών
- Εξαιρέσεις ροών εργασιών για την αντιμετώπιση ανωμαλιών χωρίς αποκλεισμό κρίσιμων ροών
- Σαφείς διαδρομές ελέγχου για την υποστήριξη της οικονομικής ακρίβειας και συμμόρφωσης
- Ντετερμινιστικός χειρισμός προσαρμογής, ώστε οι επαναλήψεις να μην δημιουργούν διπλές πιστώσεις/χρεώσεις
Στα συστήματα τιμολόγησης, οι εργασίες συμφωνίας συγκρίνουν τα συμβάντα χρήσης με τα τιμολογημένα ποσά σε σχεδόν πραγματικό χρόνο. Όταν αυτοί οι έλεγχοι εκτελούνται συνεχώς (όχι απλώς στο τέλος), οι ομάδες μπορούν να πιάσουν ολίσθηση νωρίς, συμπεριλαμβανομένων των χαμένων γεγονότων, της διπλής χρήσης, των καθυστερημένων αφίξεων ή της ασυνεπούς λογικής αξιολόγησης, προτού οι ροές εργασιών χρηματοδότησης σκληρύνουν γύρω από λάθος αριθμούς. Στην πράξη, αυτό συχνά εμφανίζει αναντιστοιχίες υλικού εβδομάδες νωρίτερα από το μηνιαίο ή τριμηνιαίο κλείσιμο.
Λεπτομέρεια υλοποίησης (για την υποστήριξη της συμφωνίας): η συμφιλίωση θα πρέπει να είναι ασφαλής για επανάληψη. Κάντε τα αποτελέσματα της συμφωνίας ανεπαρκή (για παράδειγμα, κλειδιά για πελάτη + παράθυρο τιμολογίου + έκδοση τιμολόγησης), έτσι η επανεπεξεργασία παράγει το ίδιο αποτέλεσμα και δεν συνδυάζει προσαρμογές. Αυτό είναι που κάνει το σύστημα ανθεκτικό. Οι έλεγχοι ορθότητας παραμένουν αξιόπιστοι ακόμα και όταν οι εργασίες αποτυγχάνουν και πρέπει να επαναληφθούν. Συνδυάζοντας την ντετερμινιστική επεξεργασία με τους ελέγχους συμφωνίας, τα χρηματοπιστωτικά συστήματα επιτυγχάνουν τόσο ορθότητα όσο και λειτουργική ανθεκτικότητα.
Κατηγορία 6: Λάβετε γρήγορες, έξυπνες αποφάσεις με ενσωμάτωση βελτιστοποίησης
Ορισμένες αποφάσεις πρέπει να είναι σωστές και γρήγορες και η βελτιστοποίηση το επιτρέπει σε πραγματικό χρόνο. Στην εκπλήρωση λιανικής, αυτό θα μπορούσε να σημαίνει αποστολή από ένα κατάστημα για εξοικονόμηση χρόνου ή μια αποθήκη για εξοικονόμηση κόστους.
Το μοτίβο ενσωμάτωσης βελτιστοποίησης ενσωματώνει λύτες, όπως το Gurobi, σε ροές συμβάντων. Η βελτιστοποίηση μικτών ακεραίων μπορεί τώρα να εκτελεστεί σε χιλιοστά του δευτερολέπτου, καθιστώντας την πρακτική για συστήματα σε πραγματικό χρόνο.
Κάποτε ένα επίπεδο βελτιστοποίησης δρομολόγησε μια παραγγελία μέσω ενός κοντινού καταστήματος αντί μιας μακρινής αποθήκης, μειώνοντας σημαντικά τον χρόνο παράδοσης, διατηρώντας άθικτους τους στόχους κόστους. Αυτή η απόφαση θα ήταν αδύνατο να ληφθεί χειροκίνητα σε κλίμακα.
Έκθεση του κλάδου για μετασχηματισμός προμηθειών επισημάνετε τον τρόπο με τον οποίο οι επιχειρήσεις εξαρτώνται όλο και περισσότερο από προηγμένη βελτιστοποίηση για την ανθεκτικότητα της εφοδιαστικής αλυσίδας. Αυτά τα μοντέλα λειτουργούν ήδη σε συστήματα παραγωγής, υποστηρίζοντας αποφάσεις υψηλού κινδύνου σε κλίμακα.
Αυτή η τάξη δίνει έμφαση στη συνεργασία μεταξύ επιστήμης και υποδομής. Τα μοντέλα βελτιστοποίησης πρέπει να ρυθμίζονται για συμβιβασμούς και τα περιβάλλοντα συστήματα πρέπει να διασφαλίζουν ότι λειτουργούν γρήγορα, αξιόπιστα και χωρίς να εμποδίζουν τις ροές.
Ασφάλεια και αξιοπιστία ορίων
Καμία πλατφόρμα που βασίζεται σε γεγονότα δεν μπορεί να είναι αξιόπιστη εάν τα όριά της είναι ανασφαλή ή υπερφορτωμένα. Οι αναξιόπιστοι πελάτες μπορούν να υπερφορτώσουν τους μεσίτες και η μη ασφαλής είσοδος μπορεί να καθυστερήσει κρίσιμα γεγονότα.
Η αξιοπιστία των ορίων εξαρτάται από καλά καθορισμένα μοτίβα εισόδου. Οι πύλες θωρακίζουν τους μεσίτες απομονώνοντας την κυκλοφορία, επιβάλλοντας έλεγχο ταυτότητας και επικυρώνοντας διακριτικά. Έρευνα για Πλαίσια ασφαλείας που βασίζονται σε REST δείχνει πώς η αποσύνδεση εξωτερικών πελατών από τα βασικά συστήματα ροής βελτιώνει τόσο την ασφάλεια όσο και την ανθεκτικότητα.
Στην εργασία μου στον τομέα της μηχανικής ασφάλειας, η επιβολή των ορίων ήταν αδιαπραγμάτευτη. Ένας μεσίτης ροής κάποτε λύγισε κάτω από κακόβουλη κίνηση. Η προσθήκη μιας πύλης αποκατέστησε τη σταθερότητα και αφήστε τις κρίσιμες ειδοποιήσεις ασφαλείας να περάσουν χωρίς καθυστέρηση.
Μελέτες μοτίβων χωρίς διακομιστή ενισχύουν το ίδιο μάθημα, αποδεικνύοντας ότι τα επίπεδα ενορχήστρωσης ενισχύουν την αξιοπιστία σε περίπτωση αποτυχίας. Οι πύλες ασφαλείας ενσωματώνουν αυτήν την αρχή διατηρώντας την αρθρωτή βαθμίδα και διασφαλίζοντας αξιόπιστη είσοδο ακόμη και υπό πίεση.
Η παρακάτω ροή δείχνει πώς η πύλη απομονώνει τον Κάφκα μεσολαβώντας τον έλεγχο ταυτότητας και τους ελέγχους διακριτικών, επιτρέποντας μόνο στην επικυρωμένη κίνηση να φτάσει στον μεσίτη.

Σχεδιαγράμματα για ανθεκτικότητα με γνώμονα τα γεγονότα
Οι πλατφόρμες που βασίζονται σε συμβάντα είναι εξαιρετικά επεκτάσιμες, αλλά η ανθεκτικότητα πρέπει να σχεδιαστεί μέσα. Αυτά τα μοτίβα έχουν αποδειχθεί σε συστήματα χρέωσης, λιανικής και ασφάλειας από τα οποία εξαρτώνται εκατομμύρια άνθρωποι καθημερινά. Οι λεπτομέρειες μπορεί να αλλάξουν, αλλά οι τρόποι αποτυχίας είναι οι ίδιοι. Αυτό σημαίνει ότι οι λύσεις είναι επαναχρησιμοποιήσιμες.
Εάν κατασκευάζετε ή κλιμακώνετε ένα σύστημα που βασίζεται σε συμβάντα αυτήν τη στιγμή, εδώ θα έρθετε. Αναρωτηθείτε: πού μπορεί να παραπλανήσουν τους χρήστες οι αντιγραφές ή οι καταστάσεις φαντασίας; Ποιες αποφάσεις πρέπει να είναι γρήγορες και σωστές;
Είτε διορθώνετε ένα περιστατικό παραγωγής, σχεδιάζετε μια νέα αρχιτεκτονική είτε υποστηρίζετε την ανθεκτικότητα στα ενδιαφερόμενα μέρη, η αξιοπιστία δεν αφορά μόνο τη διατήρηση των συστημάτων online. Πρόκειται για την προστασία της εμπιστοσύνης. Και αυτό είναι κάτι για το οποίο αξίζει να χτιστεί.
VIA: DataConomy.com

