Yn ddiweddar, dechreuon ni brosiect bach i lanhau sut mae rhannau o'n systemau'n cyfathrebu y tu ôl i'r llenni yn Buffer.Some cyd-destun cyflym: rydym yn defnyddio rhywbeth o'r enw SQS (Amazon Simple Queue Service. Mae'r ciwiau hyn yn gweithredu fel ystafelloedd aros ar gyfer tasgau. Mae un rhan o'n system yn gollwng neges, ac mae un arall yn ei chodi'n ddiweddarach. Meddyliwch amdano fel gadael nodyn i gydweithiwr: "Hei, pan fyddwch chi'n cael y broses o aros am y data." Ymateb.Ein prosiect oedd cyflawni gwaith cynnal a chadw arferol: diweddaru'r offer a ddefnyddiwn i brofi ciwiau yn lleol a glanhau eu ffurfweddiad.Ond tra'n bod yn mapio pa giwiau a ddefnyddiwn mewn gwirionedd, daethom o hyd i rywbeth nad oeddem yn ei ddisgwyl: saith proses gefndir wahanol (neu swyddi cron, sy'n dasgau wedi'u hamserlennu sy'n rhedeg yn awtomatig) a gweithwyr a oedd wedi bod yn rhedeg yn dawel am hyd at bum mlynedd. yn bwysicach nag y byddech chi'n ei feddwl Ydy, mae rhedeg seilwaith diangen yn costio arian. Fe wnes i gyfrifiad cyflym ac i un o'r gweithwyr hynny, byddem wedi talu ~$360-600 dros 5 mlynedd Mae hwn yn swm cymedrol yng nghynllun mawr ein cyllid, ond yn bendant yn wastraff pur ar gyfer proses nad yw'n gwneud dim. Mae'r prosesau dirgel hyn. "Beth mae'r gweithiwr hwn yn ei wneud?" yn dod yn gwestiwn sy'n bwyta amser byrddio ac yn creu ansicrwydd Mae hyn yn hanfodol? newid pensaernïol, ond does neb yn meddwl gwirio.Roeddem ni'n arfer anfon e-byst dathlu pen-blwydd yn Buffer i wneud hyn, fe wnaethom gynnal tasg wedi'i threfnu a oedd yn gwirio'r gronfa ddata gyfan ar gyfer penblwyddi sy'n cyfateb i'r dyddiad presennol ac anfon e-bost personol at gwsmeriaid yn ystod refactor yn 2020, fe wnaethom newid ein hofferyn e-bost trafodion ond wedi anghofio cael gwared ar y gweithiwr hwn - fe barhaodd i redeg am bum mlynedd arall. Dim un o'r rhain yn fethiannau proses. Fel llawer o gwmnïau, cofleidiodd Buffer y mudiad microwasanaethau (dull poblogaidd lle'r oedd cwmnïau'n rhannu eu cod yn nifer o wasanaethau bach, annibynnol) flynyddoedd yn ôl. Rhannwyd ein monolith yn wasanaethau ar wahân, pob un â'i gadwrfa, piblinell defnydd, a seilwaith ei hun Ar y pryd, roedd yn gwneud synnwyr: gallai pob gwasanaeth gael ei ddefnyddio ar ei ben ei hun, gyda'r ffiniau dros ddwsinau o flynyddoedd yn fwy amlwg, gyda'r ffiniau clir rhwng y timau a reolir. y manteision ar gyfer tîm ein maint. Felly rydym yn cyfuno i mewn i gadwrfa sengl aml-wasanaeth Mae'r gwasanaethau yn dal i fodoli fel ffiniau rhesymegol, ond maent yn byw gyda'i gilydd mewn un lle.Dyma drodd allan i fod yr hyn a wnaeth darganfyddiad possible.In the microservices world, pob ystorfa yn ynys ei hun. ystorfa, gallem o'r diwedd weld y darlun llawn.darganfod bron yn anochel.Beth wnaethom ni mewn gwirioneddAr ôl i ni adnabod y prosesau amddifad, roedd yn rhaid i ni benderfynu beth i'w wneud â nhw. Dyma sut aethon ni ati. Yn gyntaf, fe wnaethom olrhain pob un i'w darddiad. Fe wnaethom gloddio trwy hanes git a hen ddogfennaeth i ddeall pam y crëwyd pob gweithiwr yn y lle cyntaf. Yn y rhan fwyaf o achosion, roedd y pwrpas gwreiddiol yn glir: mudo data un-amser, nodwedd a gafodd machlud, datrysiad dros dro a oedd yn fwy na'i ddefnyddioldeb. Yna cadarnhawyd nad oeddent yn cael eu defnyddio mewn gwirionedd. Cyn dileu unrhyw beth, fe wnaethom ychwanegu logio i wirio nad oedd y prosesau hyn yn dawel yn gwneud rhywbeth pwysig yr oeddem wedi'i golli. Fe wnaethon ni fonitro am ychydig ddyddiau i wneud yn siŵr nad oedden nhw'n cael eu galw o gwbl, ac fe wnaethon ni eu tynnu'n gynyddrannol. Ni wnaethom ddileu popeth ar unwaith. Fe wnaethon ni ddileu prosesau fesul un, gan wylio am unrhyw sgîl-effeithiau annisgwyl. (Yn ffodus, doedd dim un.) Yn olaf, fe wnaethon ni ddogfennu'r hyn a ddysgon ni. Fe wnaethom ychwanegu nodiadau at ein dogfennau mewnol am yr hyn yr oedd pob proses wedi'i wneud yn wreiddiol a pham y cafodd ei dileu, felly ni fyddai peirianwyr y dyfodol yn meddwl tybed a aeth rhywbeth pwysig ar goll. Pan fydd rhywun yn gofyn, "Pa weithwyr rydyn ni'n eu rhedeg?" gallwn ateb y cwestiwn hwnnw'n hyderus mewn gwirionedd. Mae sgyrsiau ar fyrddio wedi dod yn symlach hefyd. Nid yw peirianwyr newydd yn baglu ar draws prosesau dirgel ac yn meddwl tybed a ydyn nhw'n colli cyd-destun. Mae'r codebase yn adlewyrchu'r hyn rydym yn ei wneud mewn gwirionedd, nid yr hyn a wnaethom bum mlynedd yn ôl.Trin refactors fel archaeoleg ac atalFy tecawê mwyaf o'r prosiect hwn: mae pob adweithydd arwyddocaol yn gyfle ar gyfer archaeoleg.Pan fyddwch chi'n ddwfn mewn system, yn deall yn iawn sut mae'r darnau'n cysylltu, rydych chi mewn sefyllfa berffaith i gwestiynu beth sydd ei angen o hyd. Y ciw hwnnw o ryw hen brosiect? Y gweithiwr a greodd rhywun ar gyfer mudo data un-amser? Y dasg a drefnwyd sy'n cyfeirio at nodwedd nad ydych erioed wedi clywed amdani? Efallai eu bod yn dal i fod yn rhedeg.Dyma beth rydym yn ei gynnwys yn ein proses wrth symud ymlaen: Yn ystod unrhyw refactor, gofynnwch: beth arall sy'n cyffwrdd â'r system hon nad ydym wedi edrych arno ers tro?Wrth anghymeradwyo nodwedd, olrheiniwch yr holl ffordd i'w phrosesau cefndir, nid dim ond y cod sy'n wynebu'r defnyddiwr. Pan fydd rhywun yn gadael y tîm, dogfennwch yr hyn yr oeddent yn gyfrifol amdano, yn enwedig y pethau sy'n dal i fod yn rhan o'n cod cefndir hŷn. yr ystorfa sengl eto. Wrth i ni barhau i atgyfnerthu, rydym yn hyderus y byddwn yn dod o hyd i fwy o'r creiriau cudd hyn. Ond nawr rydym wedi ein sefydlu i'w dal ac atal rhai newydd rhag ffurfio. Pan fydd eich holl god yn byw mewn un lle, nid oes gan seilwaith amddifad unrhyw le i guddio.
Yr Hyn a Ddysgwyd Ar Ôl Dod o Hyd i 7 Swydd Anghofiedig yn Rhedeg am 5 Mlynedd
By Social Media
·
·
6 min read
·
695 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