Së fundmi kemi filluar një projekt të vogël për të pastruar mënyrën se si pjesët e sistemeve tona komunikojnë prapa skenave në Buffer. Disa kontekst të shpejtë: ne përdorim diçka të quajtur SQS (Shërbimi i radhës i thjeshtë i Amazon. Këto radhë veprojnë si dhomat e pritjes për detyrat. Një pjesë e sistemit tonë lëshon një mesazh dhe një tjetër e merr atë më vonë. Mendoni si t'i dërgoni një shënim një kolegu, por ky sistem nuk e përpunon një shans: "Ai ju merr një shans." nuk duhet të presim për një përgjigje. Projekti ynë ishte të kryenim mirëmbajtjen rutinë: përditësojmë mjetet që përdorim për të testuar radhët në nivel lokal dhe për të pastruar konfigurimin e tyre. Por, ndërsa ishim duke përcaktuar se çfarë radhësh përdorim në të vërtetë, gjetëm diçka që nuk e prisnim: shtatë procese të ndryshme në sfond (ose punë të ndryshme, të cilat janë detyra të planifikuara që nuk funksionojnë në mënyrë absolute për pesë vjet). Ja pse ka rëndësi, si i gjetëm dhe çfarë bëmë në lidhje me të. Pse kjo ka më shumë rëndësi se sa mendoni. Po, funksionimi i infrastrukturës së panevojshme kushton para. Pastrimi, unë do të argumentoja se kostoja financiare është në fakt pjesa më e vogël e problemit. Sa herë që një inxhinier i ri bashkohet me ekipin dhe eksploron sistemet tona, ata ndeshen me këto procese misterioze. Herë pas here ka nevojë për azhurnime të sigurisë, rregullime të përputhshmërisë, kur diçka tjetër ndryshon. ndodh natyrshëm në çdo sistem jetëgjatë. Një veçori zhvlerësohet, por puna në sfond që e mbështeti atë vazhdon të funksionojë "përkohësisht" për të trajtuar një migrim dhe ajo kurrë nuk prishet pas një ndryshimi arkitektonik, por askush nuk mendon ta kontrollonim këtë detyrë e gjithë baza e të dhënave për ditëlindjet që përputhen me datën aktuale dhe u dërguam klientëve një email të personalizuar gjatë një refactor në vitin 2020, ne ndërruam mjetin tonë të postës elektronike të transaksionit, por harruam ta hiqnim këtë punëtor - ai vazhdoi të funksionojë për pesë vjet të tjera. Lëvizja (një qasje popullore ku kompanitë e ndanë kodin e tyre në shumë shërbime të vogla e të pavarura) vite më parë. Ne e ndamë monolitin tonë në shërbime të veçanta, secila me depon e vet, tubacionin e vendosjes dhe infrastrukturën e vet Në atë kohë, kishte kuptim: çdo shërbim mund të vendosej më vete, me kufij të qartë midis ekipeve Të konsoliduara në një depo të vetme me shumë shërbime. Shërbimet ekzistojnë ende si kufij logjik, por ato jetojnë së bashku në një vend. Kjo doli të jetë ajo që e bëri të mundur zbulimin. Në botën e mikroshërbimeve, çdo depo është ishulli i tij. Në një depo, më në fund mundëm të shihnim çdo radhë tek konsumatorët dhe prodhuesit e tij. Mund të gjenim radhë me prodhuesit, por jo konsumatorët.zbulimi pothuajse i pashmangshëm. Çfarë bëmë në të vërtetë Pasi identifikuam proceset jetimë, duhej të vendosnim se çfarë të bënim me to. Ja se si iu qasëm. Së pari, ne gjurmuam secilin në origjinën e tij. Ne gërmuam historinë e git dhe dokumentacionin e vjetër për të kuptuar pse u krijua në radhë të parë secili punëtor. Në shumicën e rasteve, qëllimi fillestar ishte i qartë: një migrim i të dhënave një herë, një veçori që mori muzg, një zgjidhje e përkohshme që e kaloi dobinë e tij. Pastaj konfirmuam se ato ishin vërtet të papërdorura. Para se të hiqnim ndonjë gjë, shtuam regjistrimin për të verifikuar që këto procese nuk po bënin në heshtje diçka të rëndësishme që kishim humbur. Ne monitoruam për disa ditë për t'u siguruar që ata nuk ishin thirrur fare dhe i hoqëm në mënyrë graduale. Ne nuk i fshimë të gjitha menjëherë. Ne hoqëm proceset një nga një, duke vëzhguar ndonjë efekt anësor të papritur. (Për fat, nuk kishte asnjë.) Më në fund, ne dokumentuam atë që mësuam. Ne shtuam shënime në dokumentet tona të brendshme për atë që secili proces kishte bërë fillimisht dhe pse u hoq, kështu që inxhinierët e ardhshëm nuk do të pyesnin veten nëse diçka e rëndësishme mungonte. Çfarë ndryshoi pas pastrimitNe jemi ende herët në matjen e ndikimit të plotë, por ja çfarë kemi parë deri më tani. Inventari ynë i infrastrukturës tani është i saktë. Kur dikush pyet: "Cilët punëtorë drejtojmë?" ne mund t'i përgjigjemi kësaj pyetjeje me besim. Bisedat e hyrjes në bord janë bërë gjithashtu më të thjeshta. Inxhinierët e rinj nuk po ngecin nëpër procese misterioze dhe nuk po pyesin nëse u mungon konteksti. Baza e kodit pasqyron atë që bëjmë ne në të vërtetë, jo atë që bëmë pesë vjet më parë. Trajtojini rifaktorët si arkeologji dhe parandalim. Përfitimi im më i madh nga ky projekt: çdo refaktor domethënës është një mundësi për arkeologjinë. Kur je thellë në një sistem, duke kuptuar me të vërtetë se si lidhen pjesët, je në pozicionin e përsosur për të vënë në dyshim atë që nevojitet ende. Ajo radhë nga ndonjë projekt i vjetër? Punonjësi që krijoi dikush për një migrim të dhënash një herë? Detyra e planifikuar që i referohet një veçorie për të cilën nuk keni dëgjuar kurrë? Ata mund të jenë ende duke u ekzekutuar. Ja çfarë po ndërtojmë në procesin tonë në vijim: Gjatë çdo rifaktori, pyetni: çfarë tjetër e prek këtë sistem që nuk e kemi parë prej kohësh? Kur të zhvlerësoni një veçori, gjurmoni atë deri në proceset e tij të sfondit, jo vetëm kodin që përballet me përdoruesin. Kur dikush largohet nga ekipi, dokumentoni se çfarë ishin në krye të pjesëve tona të vjetra në ato të programeve, veçanërisht në pjesën e vjetër të kodit tonë. që nuk janë migruar ende në depon e vetme. Ndërsa vazhdojmë të konsolidojmë, jemi të sigurt se do të gjejmë më shumë nga këto relike të fshehura. Por tani jemi krijuar për t'i kapur dhe për të parandaluar formimin e të rejave.Kur i gjithë kodi juaj jeton në një vend, infrastruktura jetime nuk ka ku të fshihet.
Çfarë mësuam pasi gjetëm 7 punë të harruara që funksionojnë për 5 vjet
By Social Media
·
·
6 min read
·
193 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