Πρόσφατα ξεκινήσαμε ένα μικρό έργο για να καθαρίσουμε τον τρόπο με τον οποίο μέρη των συστημάτων μας επικοινωνούν παρασκηνιακά στο Buffer. Κάποιο γρήγορο πλαίσιο: χρησιμοποιούμε κάτι που ονομάζεται SQS (Amazon Simple Queue Service. Αυτές οι ουρές λειτουργούν σαν αίθουσες αναμονής για εργασίες. Ένα μέρος του συστήματός μας αφήνει ένα μήνυμα και ένα άλλο το παίρνει αργότερα. Σκεφτείτε το σαν να αφήνετε μια σημείωση σε έναν συνάδελφο. Δεν χρειάζεται να περιμένουμε για απάντηση. Το έργο μας ήταν να εκτελέσουμε τακτική συντήρηση: να ενημερώσουμε τα εργαλεία που χρησιμοποιούμε για να δοκιμάζουμε τις ουρές τοπικά και να καθαρίζουμε τις παραμέτρους τους. Όμως, ενώ χαρτογραφούσαμε τις ουρές που χρησιμοποιούμε στην πραγματικότητα, βρήκαμε κάτι που δεν περιμέναμε: επτά διαφορετικές διεργασίες στο παρασκήνιο (ή εργασίες cron, οι οποίες είναι προγραμματισμένες εργασίες που δεν εκτελούνταν αυτόματα για πέντε χρόνια). Αυτό είναι χρήσιμο. Να γιατί έχει σημασία, πώς τα βρήκαμε και τι κάναμε γι' αυτό. Γιατί αυτό έχει μεγαλύτερη σημασία από ό,τι νομίζετε. Ναι, η λειτουργία της περιττής υποδομής κοστίζει χρήματα. Θα έλεγα ότι το οικονομικό κόστος είναι στην πραγματικότητα το μικρότερο μέρος του προβλήματος. Κάθε φορά που ένας νέος μηχανικός εντάσσεται στην ομάδα και εξερευνά τα συστήματά μας, αντιμετωπίζει αυτές τις μυστηριώδεις διαδικασίες. Περιστασιακά χρειάζονται ενημερώσεις ασφαλείας, διορθώσεις συμβατότητας, όταν κάτι άλλο αλλάζει, οδήγησε την ομάδα μας να δαπανήσει κύκλους συντήρησης σε διαδρομές που δεν εξυπηρετούσαν κανέναν σκοπό. Συμβαίνει φυσικά σε οποιοδήποτε μακροχρόνιο σύστημα. Μια λειτουργία στο παρασκήνιο που την υποστήριζε συνεχίζει να εκτελείται Ολόκληρη η βάση δεδομένων για γενέθλια που ταιριάζουν με την τρέχουσα ημερομηνία και στείλαμε στους πελάτες ένα εξατομικευμένο μήνυμα ηλεκτρονικού ταχυδρομείου το 2020, αλλάξαμε το εργαλείο συναλλαγών ηλεκτρονικού ταχυδρομείου, αλλά ξεχάσαμε να καταργήσουμε αυτόν τον εργαζόμενο - συνέχισε να λειτουργεί για άλλα πέντε χρόνια. κίνηση (μια δημοφιλής προσέγγιση όπου οι εταιρείες χώρισαν τον κώδικά τους σε πολλές μικρές, ανεξάρτητες υπηρεσίες) πριν από χρόνια. Διαχωρίσαμε τις μονόλιθές μας σε ξεχωριστές υπηρεσίες, η καθεμία με το δικό της αποθετήριο, τη γραμμή ανάπτυξης και την υποδομή της Οι υπηρεσίες εξακολουθούν να υπάρχουν ως λογικά όρια. Αυτό αποδείχθηκε ότι ήταν αυτό που έκανε δυνατή την ανακάλυψη. Στον κόσμο των μικροϋπηρεσιών, κάθε αποθετήριο είναι το δικό του νησί. Σε ένα αποθετήριο, μπορούσαμε επιτέλους να δούμε την πλήρη εικόνα. Μπορούσαμε να εντοπίσουμε ουρές με παραγωγούς, αλλά όχι καταναλωτές.Ανακάλυψη σχεδόν αναπόφευκτη. Τι κάναμε στην πραγματικότητα Μόλις εντοπίσαμε τις ορφανές διαδικασίες, έπρεπε να αποφασίσουμε τι θα κάνουμε με αυτές. Να πώς το προσεγγίσαμε. Πρώτα, εντοπίσαμε το καθένα στην προέλευσή του. Σκάψαμε το ιστορικό git και την παλιά τεκμηρίωση για να καταλάβουμε γιατί δημιουργήθηκε εξαρχής κάθε εργαζόμενος. Στις περισσότερες περιπτώσεις, ο αρχικός σκοπός ήταν ξεκάθαρος: μια εφάπαξ μετεγκατάσταση δεδομένων, μια δυνατότητα που πήρε ηλιοβασίλεμα, μια προσωρινή λύση που ξεπέρασε τη χρησιμότητά της. Στη συνέχεια επιβεβαιώσαμε ότι ήταν πραγματικά αχρησιμοποίητα. Πριν καταργήσουμε οτιδήποτε, προσθέσαμε καταγραφή για να επαληθεύσουμε ότι αυτές οι διαδικασίες δεν έκαναν αθόρυβα κάτι σημαντικό που είχαμε χάσει. Παρακολουθήσαμε για μερικές ημέρες για να βεβαιωθούμε ότι δεν κλήθηκαν καθόλου και τους αφαιρέσαμε σταδιακά. Δεν τα διαγράψαμε όλα με τη μία. Καταργήσαμε τις διαδικασίες μία προς μία, προσέχοντας τυχόν απροσδόκητες παρενέργειες. (Ευτυχώς, δεν υπήρχαν.) Τελικά, τεκμηριώσαμε όσα μάθαμε. Προσθέσαμε σημειώσεις στα εσωτερικά μας έγγραφα σχετικά με το τι είχε κάνει αρχικά κάθε διεργασία και γιατί αφαιρέθηκε, ώστε οι μελλοντικοί μηχανικοί να μην αναρωτιούνται αν χάθηκε κάτι σημαντικό. Τι άλλαξε μετά τον καθαρισμό Είμαστε ακόμα νωρίς στη μέτρηση του πλήρους αντίκτυπου, αλλά ορίστε τι έχουμε δει μέχρι στιγμής. Το απόθεμα υποδομής μας είναι πλέον ακριβές. Όταν κάποιος ρωτά, "Τι εργαζόμενους τρέχουμε;" Μπορούμε πραγματικά να απαντήσουμε σε αυτήν την ερώτηση με σιγουριά.Οι συνομιλίες ενσωμάτωσης έχουν γίνει επίσης πιο απλές. Οι νέοι μηχανικοί δεν σκοντάφτουν σε μυστηριώδεις διαδικασίες και αναρωτιούνται αν λείπουν το πλαίσιο. Η βάση κωδικών αντικατοπτρίζει αυτό που κάνουμε στην πραγματικότητα, όχι αυτό που κάναμε πριν από πέντε χρόνια. Αντιμετωπίστε τους αναμετασχηματιστές ως αρχαιολογία και πρόληψη. Η μεγαλύτερη απολαβή μου από αυτό το έργο: κάθε σημαντικός αναμεταδότης είναι μια ευκαιρία για αρχαιολογία. Όταν είστε βαθιά σε ένα σύστημα, καταλαβαίνετε πραγματικά πώς συνδέονται τα κομμάτια, είστε στην τέλεια θέση να αμφισβητήσετε τι χρειάζεται ακόμα. Αυτή η ουρά από κάποιο παλιό έργο; Ο εργαζόμενος που δημιούργησε κάποιος για μια εφάπαξ μετεγκατάσταση δεδομένων; Η προγραμματισμένη εργασία που αναφέρεται σε μια δυνατότητα που δεν έχετε ακούσει ποτέ; Μπορεί να εξακολουθούν να εκτελούνται. Να τι ενσωματώνουμε στη διαδικασία μας στο εξής: Κατά τη διάρκεια οποιασδήποτε αναμόρφωσης, ρωτήστε: τι άλλο αγγίζει αυτό το σύστημα που δεν έχουμε εξετάσει εδώ και καιρό; Κατά την κατάργηση μιας δυνατότητας, ανιχνεύστε την μέχρι τις διεργασίες του παρασκηνίου, όχι μόνο τον κώδικα που αντιμετωπίζει ο χρήστης. Όταν κάποιος φεύγει από την ομάδα, τεκμηριώστε τι ήταν υπεύθυνος για το παλιό μας κώδικα. που δεν έχουν γίνει ακόμη μετεγκατάσταση στο μεμονωμένο αποθετήριο. Καθώς συνεχίζουμε την εδραίωση, είμαστε σίγουροι ότι θα βρούμε περισσότερα από αυτά τα κρυμμένα λείψανα. Αλλά τώρα είμαστε έτοιμοι να τους πιάσουμε και να αποτρέψουμε τη δημιουργία νέων. Όταν όλος ο κώδικάς σας μένει σε ένα μέρος, η ορφανή υποδομή δεν έχει πού να κρυφτεί.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free