Πρόσφατα ξεκινήσαμε ένα μικρό έργο για να καθαρίσουμε τον τρόπο με τον οποίο μέρη των συστημάτων μας επικοινωνούν παρασκηνιακά στο Buffer. Κάποιο γρήγορο πλαίσιο: χρησιμοποιούμε κάτι που ονομάζεται SQS (Amazon Simple Queue Service. Αυτές οι ουρές λειτουργούν σαν αίθουσες αναμονής για εργασίες. Ένα μέρος του συστήματός μας αφήνει ένα μήνυμα και ένα άλλο το παίρνει αργότερα. Σκεφτείτε το σαν να αφήνετε μια σημείωση σε έναν συνάδελφο. Δεν χρειάζεται να περιμένουμε για απάντηση. Το έργο μας ήταν να εκτελέσουμε τακτική συντήρηση: να ενημερώσουμε τα εργαλεία που χρησιμοποιούμε για να δοκιμάζουμε τις ουρές τοπικά και να καθαρίζουμε τις παραμέτρους τους. Όμως, ενώ χαρτογραφούσαμε τις ουρές που χρησιμοποιούμε στην πραγματικότητα, βρήκαμε κάτι που δεν περιμέναμε: επτά διαφορετικές διεργασίες στο παρασκήνιο (ή εργασίες cron, οι οποίες είναι προγραμματισμένες εργασίες που δεν εκτελούνταν αυτόματα για πέντε χρόνια). Αυτό είναι χρήσιμο. Να γιατί έχει σημασία, πώς τα βρήκαμε και τι κάναμε γι' αυτό. Γιατί αυτό έχει μεγαλύτερη σημασία από ό,τι νομίζετε. Ναι, η λειτουργία της περιττής υποδομής κοστίζει χρήματα. Θα έλεγα ότι το οικονομικό κόστος είναι στην πραγματικότητα το μικρότερο μέρος του προβλήματος. Κάθε φορά που ένας νέος μηχανικός εντάσσεται στην ομάδα και εξερευνά τα συστήματά μας, αντιμετωπίζει αυτές τις μυστηριώδεις διαδικασίες. Περιστασιακά χρειάζονται ενημερώσεις ασφαλείας, διορθώσεις συμβατότητας, όταν κάτι άλλο αλλάζει, οδήγησε την ομάδα μας να δαπανήσει κύκλους συντήρησης σε διαδρομές που δεν εξυπηρετούσαν κανέναν σκοπό. Συμβαίνει φυσικά σε οποιοδήποτε μακροχρόνιο σύστημα. Μια λειτουργία στο παρασκήνιο που την υποστήριζε συνεχίζει να εκτελείται Ολόκληρη η βάση δεδομένων για γενέθλια που ταιριάζουν με την τρέχουσα ημερομηνία και στείλαμε στους πελάτες ένα εξατομικευμένο μήνυμα ηλεκτρονικού ταχυδρομείου το 2020, αλλάξαμε το εργαλείο συναλλαγών ηλεκτρονικού ταχυδρομείου, αλλά ξεχάσαμε να καταργήσουμε αυτόν τον εργαζόμενο - συνέχισε να λειτουργεί για άλλα πέντε χρόνια. κίνηση (μια δημοφιλής προσέγγιση όπου οι εταιρείες χώρισαν τον κώδικά τους σε πολλές μικρές, ανεξάρτητες υπηρεσίες) πριν από χρόνια. Διαχωρίσαμε τις μονόλιθές μας σε ξεχωριστές υπηρεσίες, η καθεμία με το δικό της αποθετήριο, τη γραμμή ανάπτυξης και την υποδομή της Οι υπηρεσίες εξακολουθούν να υπάρχουν ως λογικά όρια. Αυτό αποδείχθηκε ότι ήταν αυτό που έκανε δυνατή την ανακάλυψη. Στον κόσμο των μικροϋπηρεσιών, κάθε αποθετήριο είναι το δικό του νησί. Σε ένα αποθετήριο, μπορούσαμε επιτέλους να δούμε την πλήρη εικόνα. Μπορούσαμε να εντοπίσουμε ουρές με παραγωγούς, αλλά όχι καταναλωτές.Ανακάλυψη σχεδόν αναπόφευκτη. Τι κάναμε στην πραγματικότητα Μόλις εντοπίσαμε τις ορφανές διαδικασίες, έπρεπε να αποφασίσουμε τι θα κάνουμε με αυτές. Να πώς το προσεγγίσαμε. Πρώτα, εντοπίσαμε το καθένα στην προέλευσή του. Σκάψαμε το ιστορικό git και την παλιά τεκμηρίωση για να καταλάβουμε γιατί δημιουργήθηκε εξαρχής κάθε εργαζόμενος. Στις περισσότερες περιπτώσεις, ο αρχικός σκοπός ήταν ξεκάθαρος: μια εφάπαξ μετεγκατάσταση δεδομένων, μια δυνατότητα που πήρε ηλιοβασίλεμα, μια προσωρινή λύση που ξεπέρασε τη χρησιμότητά της. Στη συνέχεια επιβεβαιώσαμε ότι ήταν πραγματικά αχρησιμοποίητα. Πριν καταργήσουμε οτιδήποτε, προσθέσαμε καταγραφή για να επαληθεύσουμε ότι αυτές οι διαδικασίες δεν έκαναν αθόρυβα κάτι σημαντικό που είχαμε χάσει. Παρακολουθήσαμε για μερικές ημέρες για να βεβαιωθούμε ότι δεν κλήθηκαν καθόλου και τους αφαιρέσαμε σταδιακά. Δεν τα διαγράψαμε όλα με τη μία. Καταργήσαμε τις διαδικασίες μία προς μία, προσέχοντας τυχόν απροσδόκητες παρενέργειες. (Ευτυχώς, δεν υπήρχαν.) Τελικά, τεκμηριώσαμε όσα μάθαμε. Προσθέσαμε σημειώσεις στα εσωτερικά μας έγγραφα σχετικά με το τι είχε κάνει αρχικά κάθε διεργασία και γιατί αφαιρέθηκε, ώστε οι μελλοντικοί μηχανικοί να μην αναρωτιούνται αν χάθηκε κάτι σημαντικό. Τι άλλαξε μετά τον καθαρισμό Είμαστε ακόμα νωρίς στη μέτρηση του πλήρους αντίκτυπου, αλλά ορίστε τι έχουμε δει μέχρι στιγμής. Το απόθεμα υποδομής μας είναι πλέον ακριβές. Όταν κάποιος ρωτά, "Τι εργαζόμενους τρέχουμε;" Μπορούμε πραγματικά να απαντήσουμε σε αυτήν την ερώτηση με σιγουριά.Οι συνομιλίες ενσωμάτωσης έχουν γίνει επίσης πιο απλές. Οι νέοι μηχανικοί δεν σκοντάφτουν σε μυστηριώδεις διαδικασίες και αναρωτιούνται αν λείπουν το πλαίσιο. Η βάση κωδικών αντικατοπτρίζει αυτό που κάνουμε στην πραγματικότητα, όχι αυτό που κάναμε πριν από πέντε χρόνια. Αντιμετωπίστε τους αναμετασχηματιστές ως αρχαιολογία και πρόληψη. Η μεγαλύτερη απολαβή μου από αυτό το έργο: κάθε σημαντικός αναμεταδότης είναι μια ευκαιρία για αρχαιολογία. Όταν είστε βαθιά σε ένα σύστημα, καταλαβαίνετε πραγματικά πώς συνδέονται τα κομμάτια, είστε στην τέλεια θέση να αμφισβητήσετε τι χρειάζεται ακόμα. Αυτή η ουρά από κάποιο παλιό έργο; Ο εργαζόμενος που δημιούργησε κάποιος για μια εφάπαξ μετεγκατάσταση δεδομένων; Η προγραμματισμένη εργασία που αναφέρεται σε μια δυνατότητα που δεν έχετε ακούσει ποτέ; Μπορεί να εξακολουθούν να εκτελούνται. Να τι ενσωματώνουμε στη διαδικασία μας στο εξής: Κατά τη διάρκεια οποιασδήποτε αναμόρφωσης, ρωτήστε: τι άλλο αγγίζει αυτό το σύστημα που δεν έχουμε εξετάσει εδώ και καιρό; Κατά την κατάργηση μιας δυνατότητας, ανιχνεύστε την μέχρι τις διεργασίες του παρασκηνίου, όχι μόνο τον κώδικα που αντιμετωπίζει ο χρήστης. Όταν κάποιος φεύγει από την ομάδα, τεκμηριώστε τι ήταν υπεύθυνος για το παλιό μας κώδικα. που δεν έχουν γίνει ακόμη μετεγκατάσταση στο μεμονωμένο αποθετήριο. Καθώς συνεχίζουμε την εδραίωση, είμαστε σίγουροι ότι θα βρούμε περισσότερα από αυτά τα κρυμμένα λείψανα. Αλλά τώρα είμαστε έτοιμοι να τους πιάσουμε και να αποτρέψουμε τη δημιουργία νέων. Όταν όλος ο κώδικάς σας μένει σε ένα μέρος, η ορφανή υποδομή δεν έχει πού να κρυφτεί.
Τι μάθαμε αφού βρήκαμε 7 ξεχασμένες δουλειές που τρέχουν για 5 χρόνια
By Social Media
·
·
6 min read
·
646 views
Read in:
aa
ace
af
ak
alz
am
ar
as
awa
ay
az
ba
ban
be
bew
+191 more
bg
bho
bik
bm
bn
brx
bs
bug
ca
ceb
cgg
ckb
co
crh
cs
cv
cy
da
de
din
doi
dv
dyu
dz
ee
el
en
eo
es
et
eu
fa
ff
fi
fj
fo
fr
fur
fy
ga
gd
gl
gom
gn
gu
ha
haw
he
hi
hil
hne
hmn
hr
hrx
ht
hu
hy
id
ig
ilo
is
it
ja
jam
jv
ka
kab
kbp
kg
kha
kk
kl
km
kn
ko
kri
ku
ktu
ky
la
lb
lg
li
lij
ln
lo
lmo
lt
ltg
lua
luo
lus
lv
mai
mak
mg
mi
min
mk
ml
mn
mni-mtei
mos
mr
ms
mt
my
nd
ne
nl
nn
no
nr
nso
nus
ny
oc
om
or
pa
pag
pam
pap
pl
ps
pt
pt-br
qu
rn
ro
ru
rw
sa
sah
sat
sc
scn
sg
si
sk
sl
sm
sn
so
sq
sr
ss
st
su
sus
sv
sw
szl
ta
tcy
te
tg
th
ti
tiv
tk
tl
tn
to
tpi
tr
trp
ts
tt
tum
ty
udm
ug
uk
ur
uz
ve
vec
vi
war
wo
xh
yi
yo
yua
yue
zap
zh
zh-hk
zh-tw
zu