Մենք վերջերս սկսեցինք մի փոքր նախագիծ՝ մաքրելու, թե ինչպես են մեր համակարգերի մասերը կուլիսներում հաղորդակցվում Buffer-ում: Որոշ արագ ենթատեքստ. մենք օգտագործում ենք SQS (Amazon Simple Queue Service: Այս հերթերը գործում են որպես սպասասրահներ՝ առաջադրանքների համար: Մեր համակարգի մի մասը թողարկում է հաղորդագրությունը, իսկ մյուսը վերցնում է այն ավելի ուշ: Մտածեք, որ դա գրություն է թողնում գործընկերոջը, երբ դուք ստանում եք այս հնարավորությունը: Պետք չէ սպասել պատասխանի: Մեր նախագիծն էր կատարել սովորական սպասարկում. թարմացնել գործիքները, որոնք մենք օգտագործում ենք հերթերը լոկալ փորձարկելու և դրանց կազմաձևումը մաքրելու համար: Բայց մինչ մենք քարտեզագրում էինք, թե իրականում ինչ հերթեր ենք օգտագործում, մենք գտանք մի բան, որը չէինք սպասում Ահա թե ինչու է դա կարևոր, ինչպես մենք գտանք դրանք և ինչ արեցինք դրա հետ կապված: Ինչու՞ է սա ավելի կարևոր, քան դուք կարծում եք: Այո, անհարկի ենթակառուցվածքը ծախսում է գումար, և այդ աշխատողներից մեկի համար մենք կվճարեինք 360-600 դոլար 5 տարվա ընթացքում: Մաքրում, ես կպնդեմ, որ ֆինանսական ծախսերը իրականում խնդրի ամենափոքր մասն են: Ամեն անգամ, երբ նոր ինժեներ է միանում թիմին և ուսումնասիրում մեր համակարգերը, նրանք բախվում են այս առեղծվածային գործընթացներին: Անվտանգության թարմացումները, կախվածության շտկումները, երբ ինչ-որ այլ բան փոխվում է, հանգեցրել է նրան, որ մեր թիմը ծախսում է ոչ մի նպատակի համար նախատեսված ցիկլեր: Բնականաբար տեղի է ունենում ցանկացած երկարատև համակարգում: Ֆոնային աշխատանքը, որն աջակցում էր այն, շարունակում է աշխատել Ընթացիկ ամսաթվին համապատասխանող ծննդյան օրվա ամբողջ տվյալների բազան և 2020-ին վերամշակող էլ. Տարիներ առաջ շարժումը (հանրաճանաչ մոտեցում, որտեղ ընկերությունները բաժանեցին իրենց կոդը բազմաթիվ փոքր, անկախ ծառայությունների): Համախմբվել է բազմաֆունկցիոնալ շտեմարանի մեջ: Ծառայությունները դեռևս գոյություն ունեն որպես տրամաբանական սահմաններ, բայց դրանք միասին են ապրում: Պարզվեց, որ դա հնարավոր է դարձրել հայտնագործությունը: Միկրոծառայությունների աշխարհում մոռացված աշխատողը կարող է երբեք չնկատվել մեկ այլ վայրում աշխատող ինժեներների կողմից: Մեկ պահեստում մենք կարողացանք հետևել յուրաքանչյուր հերթին՝ արտադրողների և արտադրողների հետ, բայց չկարողացանք գտնել աշխատողների, որոնք վկայակոչում էին այն հերթերը, որոնք այլևս գոյություն չունեին:բացահայտումը գրեթե անխուսափելի է: Ինչ մենք իրականում արեցինք Երբ մենք բացահայտեցինք որբ գործընթացները, մենք պետք է որոշեինք, թե ինչ անել դրանց հետ: Ահա, թե ինչպես ենք մենք մոտեցել դրան: Նախ, մենք հետևեցինք յուրաքանչյուրի ծագմանը: Մենք փորել ենք git պատմությունը և հին փաստաթղթերը՝ հասկանալու համար, թե ինչու է ստեղծվել յուրաքանչյուր աշխատող ի սկզբանե: Շատ դեպքերում սկզբնական նպատակը պարզ էր. տվյալների միանվագ տեղափոխում, մի հատկանիշ, որը ստացավ մայրամուտ, ժամանակավոր լուծում, որը գերազանցեց դրա օգտակարությունը: Հետո մենք հաստատեցինք, որ դրանք իսկապես չօգտագործված են: Նախքան որևէ բան հեռացնելը, մենք ավելացրեցինք գրանցումը՝ ստուգելու համար, որ այս գործընթացները հանգիստ չեն անում ինչ-որ կարևոր բան, որը մենք բաց էինք թողել: Մի քանի օր մոնիտորինգ ենք արել, որպեսզի համոզվենք, որ նրանց ընդհանրապես չեն կանչել, և աստիճանաբար հեռացրել ենք: Մենք ամեն ինչ միանգամից չենք ջնջել։ Մենք հերթով հեռացրել ենք պրոցեսները՝ հետևելով ցանկացած անսպասելի կողմնակի ազդեցությունների: (Բարեբախտաբար, այդպիսիք չկային:) Վերջապես մենք փաստագրեցինք այն, ինչ սովորեցինք: Մենք նշումներ ենք ավելացրել մեր ներքին փաստաթղթերում այն մասին, թե ի սկզբանե ինչ է արել յուրաքանչյուր պրոցեսը և ինչու է այն հեռացվել, այնպես որ ապագա ինժեներները չմտածեն, թե արդյոք ինչ-որ կարևոր բան անհետացել է: Երբ ինչ-որ մեկը հարցնում է. «Ի՞նչ աշխատողներ ենք մենք ղեկավարում»: մենք իրականում կարող ենք վստահորեն պատասխանել այդ հարցին: Ներքին խոսակցությունները նույնպես ավելի պարզ են դարձել: Նոր ինժեներները չեն բախվում առեղծվածային գործընթացներին և չեն մտածում, թե արդյոք դրանք բացակայում են համատեքստից: Կոդի բազան արտացոլում է այն, ինչ մենք իրականում անում ենք, այլ ոչ թե այն, ինչ արել ենք հինգ տարի առաջ: Վերաբերեք ռեֆակտորներին որպես հնագիտության և կանխարգելման Իմ ամենամեծ ձեռքբերումն այս նախագծից. յուրաքանչյուր նշանակալի ռեֆակտոր հնագիտության համար հնարավորություն է: Այդ հերթը ինչ-որ հին նախագծի՞ց: Աշխատողն ինչ-որ մեկը ստեղծել է տվյալների մեկանգամյա միգրացիայի համար: Պլանավորված առաջադրանքը, որը վկայակոչում է մի առանձնահատկություն, որի մասին երբեք չեք լսել: Նրանք կարող են դեռ գործարկվել: Ահա թե ինչ ենք մենք կառուցում մեր հետագա գործընթացում. Ցանկացած ռեֆակտորի ժամանակ հարցրեք. էլ ի՞նչն է շոշափում այս համակարգը, որը մենք երկար ժամանակ չէինք դիտել: Երբ հնացած գործառույթը, հետևեք այն մինչև ֆոնային գործընթացները, ոչ միայն օգտատիրոջը: Երբ ինչ-որ մեկը հեռանում է թիմից, փաստաթղթավորեք, թե ինչ է նա ղեկավարում ֆոնային կոդերը: որոնք դեռ չեն տեղափոխվել մեկ պահոց: Մինչ մենք շարունակում ենք համախմբվել, մենք վստահ ենք, որ կգտնենք ավելի շատ այս թաքնված մասունքները: Բայց հիմա մենք ստեղծված ենք նրանց բռնելու և նորերի ձևավորումը կանխելու համար: Երբ ձեր ամբողջ ծածկագիրը ապրում է մեկ տեղում, որբ ենթակառուցվածքը թաքցնելու տեղ չունի:
Այն, ինչ մենք սովորեցինք 5 տարի շարունակվող 7 մոռացված աշխատանք գտնելուց հետո
By Social Media
·
·
6 min read
·
580 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