Ni lastatempe komencis malgrandan projekton por purigi kiel partoj de niaj sistemoj komunikas malantaŭ la kulisoj ĉe Buffer. Iu rapida kunteksto: ni uzas ion nomitan SQS (Amazon Simple Queue Service. Ĉi tiuj vicoj agas kiel atendoĉambroj por taskoj. Unu parto de nia sistemo demetas mesaĝon, kaj alia prenas ĝin poste. Pensu pri tio kiel lasi noton al iu kunlaboranto, kiam vi sendas la datumon: "He, kunlaboranto, kiam vi sendas la datumojn." noto ne devas atendi respondon. Nia projekto estis plenumi rutinan prizorgadon: ĝisdatigi la ilojn, kiujn ni uzas por testi vostojn loke kaj purigi ilian agordon. Sed dum ni elkalkulis kiajn vicojn ni efektive uzas, ni trovis ion, kion ni ne atendis: sep malsamajn fonajn procezojn (aŭ kronajn laborojn, kiuj estas planitaj taskoj kiuj funkcias aŭtomate) kaj laboristoj tute silentis dum kvin jaroj utila.Jen kial tio gravas, kiel ni trovis ilin, kaj kion ni faris pri tio.Kial ĉi tio gravas pli ol vi pensus. Jes, funkcii nenecesan infrastrukturon kostas monon, mi faris rapidan kalkulon kaj por unu el tiuj laboristoj, ni pagintus 360-600 USD dum 5 jaroj. Ĉi tio estas modesta kvanto en la granda skemo de nia financo. purigado, mi argumentus, ke la financa kosto estas efektive la plej malgranda parto de la problemo. Ĉiufoje kiam nova inĝeniero aliĝas al la teamo kaj esploras niajn sistemojn, ili renkontas ĉi tiujn misterajn procezojn "Kion faras ĉi tiu laboristo fariĝas demando, kiu manĝas tempon de enŝipiĝo kaj kreas necertecon, ĉar Ni ĉiuj estis tie, ĉar ĝi povas tuŝi ion gravan." "Forgesita" infrastrukturo foje bezonas atenton. Sekurecaj ĝisdatigoj, dependaj korektoj, kiam io alia ŝanĝiĝas. Ĉi tio kondukis al nia teamo elspezanta ciklojn pri kodaj vojoj, kiuj ne servis.Kaj kun la tempo, la institucia kono malaperis. Ĉu tio estis provizora riparo, kiu fariĝis daŭra? vero estas tio okazas nature en iu longdaŭra sistemo. Funkcio estas malrekomendita, sed la fona laboro, kiu subtenis ĝin, daŭre funkcias "provizore" por trakti migradon, kaj ĝi neniam estas malkonstruita. Planita tasko fariĝas superflua post arkitektura ŝanĝo, sed neniu pensas kontroli ĉi tiun taskon ĉe la naskiĝtago tuta datumbazo por naskiĝtagoj kongruaj kun la nuna dato kaj sendis al klientoj personigitan retpoŝton Dum refactorado en 2020, ni ŝanĝis nian transakcian retpoŝtan ilon sed forgesis forigi ĉi tiun laboriston—ĝi daŭre funkciis dum kvin pliaj jaroj. Neniu el tiuj estas fiaskoj de individuoj - Sen intencita purigado konstruita en kiel ni laboras, la arkitekturo helpis al multaj kompanioj trovi. mikroservoj-movado (populara aliro kie kompanioj dividis sian kodon en multajn malgrandajn sendependajn servojn) antaŭ jaroj. Ni dividis nian monoliton en apartajn servojn, ĉiu kun sia propra deponejo, disfalda dukto kaj infrastrukturo Tiutempe, ĝi havis sencon: ĉiu servo povus esti deplojita memstare, kun klaraj limoj inter teamoj en plurservan ununuran deponejon. La servoj ankoraŭ ekzistas kiel logikaj limoj, sed ili vivas kune en unu loko. Ĉi tio ebligis la malkovron. En la mondo de mikroservoj, ĉiu deponejo estas sia propra insulo. Forgesita laboristo en unu deponejo eble neniam estas rimarkita de inĝenieroj laborantaj en alia loko, kie ne ekzistas unuopa deponejo. ni povis finfine vidi la plenan bildon Ni povis spuri ĉiun voston al ĝiaj konsumantoj kaj produktantoj. Ni povis trovi vicojn kun produktantoj, sed neniuj konsumantoj. Ni povis trovi laboristojn referencantajn atendovicojn kiuj ne plu ekzistis. La firmiĝo ne estis desegnita por helpi nin trovi zombian infrastrukturon.malkovro preskaŭ neevitebla.Kion ni efektive faris Post kiam ni identigis la orfigitajn procezojn, ni devis decidi kion fari kun ili. Jen kiel ni alproksimiĝis al ĝi.Unue, ni spuris ĉiun al ĝia origino. Ni fosis tra git-historio kaj malnova dokumentaro por kompreni kial ĉiu laboristo estis kreita en la unua loko. Plejofte, la origina celo estis klara: unufoja datummigrado, trajto kiu ricevis sunsubiron, provizora solvo kiu postvivis ĝian utilecon. Tiam ni konfirmis ke ili estis vere neuzataj. Antaŭ ol forigi ion ajn, ni aldonis ensalutadon por kontroli, ke ĉi tiuj procezoj ne kviete faras ion gravan, kiun ni maltrafis. Ni monitoris dum kelkaj tagoj por certigi, ke ili tute ne estas vokataj, kaj ni forigis ilin iom post iom. Ni ne forigis ĉion samtempe. Ni forigis procezojn unu post alia, atentante neatenditajn kromefikojn. (Feliĉe, ne estis.)Fine, ni dokumentis tion, kion ni lernis. Ni aldonis notojn al niaj internaj dokumentoj pri tio, kion ĉiu procezo origine faris kaj kial ĝi estis forigita, do estontaj inĝenieroj ne scivolis ĉu io grava malaperis.Kio ŝanĝiĝis post purigadoNi ankoraŭ frue mezuras la plenan efikon, sed jen kion ni vidis ĝis nun.Nia infrastruktura inventaro nun estas preciza. Kiam iu demandas: "Kiujn laboristojn ni kuras?" ni efektive povas respondi tiun demandon kun konfido.Ankaŭ enŝipiĝaj konversacioj fariĝis pli simplaj. Novaj inĝenieroj ne trovas misterajn procezojn kaj scivolas ĉu ili mankas kunteksto. La kodbazo reflektas tion, kion ni efektive faras, ne tion, kion ni faris antaŭ kvin jaroj.Traktu refaktorojn kiel arkeologion kaj preventadon. Mia plej granda elprenaĵo de ĉi tiu projekto: ĉiu signifa refaktoro estas ŝanco por arkeologio. Kiam vi estas profunde en sistemo, vere komprenante kiel la pecoj konektas, vi estas en la perfekta pozicio por pridubi tion, kio ankoraŭ bezonas. Tiu vico de iu malnova projekto? La laboristo kiun iu kreis por unufoja datummigrado? La planita tasko, kiu referencas funkcion pri kiu vi neniam aŭdis? Ili eble ankoraŭ funkcias.Jen kion ni konstruas en nian procezon antaŭen:Dum iu refaktoro, demandu: kio alia tuŝas ĉi tiun sistemon, kiun ni delonge ne rigardis?Kiam malrekomendis funkcion, spuru ĝin ĝis ĝiaj fonaj procezoj, ne nur la uzantan kodon.Kiam iu forlasas la teamon, dokumentu, kion ili estis en la fono de niaj malnovaj partoj, precipe ni havas en la fono, kiujn ni ankoraŭ prizorgas. kodbazo kiuj ankoraŭ ne estis migritaj al la ununura deponejo. Dum ni daŭre solidiĝas, ni certas, ke ni trovos pli da ĉi tiuj kaŝitaj relikvoj. Sed nun ni estas instalitaj por kapti ilin kaj malhelpi novajn formiĝon. Kiam via tuta kodo loĝas en unu loko, orfa infrastrukturo ne havas kie kaŝiĝi.
Kion Ni Lernis Post Trovo de 7 Forgesitaj Laborpostenoj Kurantaj dum 5 Jaroj
By Social Media
·
·
6 min read
·
668 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