Биз жакында эле Буферде системаларыбыздын бөлүктөрү көшөгө артында кантип байланышып жатканын тазалоо үчүн чакан долбоорду баштадык. Кээ бир тез контекст: биз SQS (Amazon Simple Queue Service) деп аталган нерсени колдонобуз. Бул кезектер тапшырмалар үчүн күтүү бөлмөлөрү сыяктуу иштейт. Биздин тутумубуздун бир бөлүгү билдирүүнү түшүрүп, экинчи бөлүгү аны кийинчерээк кабыл алат. Аны кесиптешиңизге эскертме калтыргандай элестетиңиз, ал бул процессти сиз кесиптешиңизге жөнөтүп жатканда: " a. Note жоопту күтүүнүн кереги жок. Биздин долбоор күнүмдүк тейлөөнү ишке ашыруу болчу: биз кезектерди локалдык түрдө сынап, алардын конфигурациясын тазалоо үчүн колдонгон куралдарды жаңыртабыз. Бирок биз чындыгында кандай кезектерди колдонуп жатканыбызды картага түшүрүп жатып, биз күтпөгөн нерсени таптык: жети түрдүү фондо процесстер (же автоматтык түрдө аткарылуучу пландалган тапшырмалар) жана алардын бардыгы беш жылдан бери эч кандай пайдалуу эмес Бул эмне үчүн маанилүү, биз аларды кантип таптык жана бул тууралуу эмне кылдык? Мен бул маселенин эң кичинекей бөлүгү деп эсептейм. Жаңы инженер командага кирип, системаларды изилдеген сайын, алар бул табышмактуу процесстерге туш болушат: "Бул жумушчу эмне кылат? Инфраструктурага кээде көңүл бурулат, башка нерсе өзгөргөндө, бул биздин команданын эч кандай максатка кызмат кылбаган техникалык тейлөө циклине алып келди. бирок чындыгында бул ар кандай узакка созулган системада табигый түрдө болот. Бир функция иштебей калат, бирок кимдир бирөө миграцияны чечүү үчүн жумушчуну "убактылуу" айлантат жана ал эч качан бузулбайт Учурдагы датага дал келген туулган күндөрдүн бардык маалымат базасын текшерген жана кардарларга жекелештирилген электрондук почтаны жөнөткөн пландаштырылган тапшырма 2020-жылы рефактор учурунда биз транзакциялык электрондук почта куралыбызды өчүрүп койдук — ал дагы беш жыл иштей берди. Булардын бири дагы жеке адамдардын каталары эмес — алар көптөгөн компанияларга кандайча иштээрин көрсөткөн. Буфер микросервистердин кыймылын (компаниялар өз коддорун көптөгөн кичинекей, көз карандысыз кызматтарга бөлгөн популярдуу ыкма) жыл мурун кабыл алган. Биз монолитибизди ар биринин өзүнүн репозиторийине, жайылтуу түтүгүнө жана инфраструктурасына ээ болгон өзүнчө кызматтарга бөлгөнбүз. Бул биздин чоңдуктагы бир топ үчүн артыкчылыктардан ашып түштү. Ошентип, кызматтар дагы эле логикалык чектер катары бар, бирок алар бир жерде чогуу жашайт. Бир репозиторийде эмне бар экенине бирдиктүү көз караш жок. Акыры, биз ар бир кезекти анын керектөөчүлөрүнө жана өндүрүүчүлөрүнө карай алдык, бирок эч кандай керектөөчүлөргө кайрыла алган жокпуз.ачылыш дээрлик сөзсүз. Биз эмне кылдык, биз жетим процесстерди аныктагандан кийин, алар менен эмне кылууну чечишибиз керек болчу. Бул жерде биз ага кантип кайрылдык. Биринчиден, биз алардын ар биринин келип чыгышына көз салдык. Ар бир жумушчунун эмне үчүн жаратылганын түшүнүү үчүн биз гит тарыхын жана эски документтерди карап чыктык. Көпчүлүк учурларда, баштапкы максат айкын болгон: бир жолку берилиштерди көчүрүү, күн баткан функция, анын пайдалуулугунан ашып кеткен убактылуу чечүү. Андан кийин биз алар чындап колдонулбаганын ырастадык. Эч нерсени алып салуудан мурун, биз бул процесстер биз өткөрүп жиберген маанилүү нерсени акырындап аткарбагандыгын текшерүү үчүн журналды коштук. Биз бир нече күн алардын такыр чалбаганын текшерип, акырындап алып салдык. Биз баарын дароо өчүргөн жокпуз. Биз күтүлбөгөн терс таасирлерди байкап, процесстерди бир-бирден алып салдык. (Бактыга жараша, андай болгон жок.) Акыры, биз билгендерибизди документтештирдик. Биз ички документтерибизге ар бир процесстин башында эмне кылганы жана ал эмне үчүн алынып салынганы тууралуу эскертүүлөрдү коштук, ошондуктан болочок инженерлер маанилүү бир нерсе жок болуп кеттиби деп таң калбашы үчүн. Тазалангандан кийин эмне өзгөрдү. Биз таасирди толук өлчөөгө али эртебиз, бирок бул жерде буга чейин көргөн нерселер. Биздин инфраструктуранын инвентаризациясы азыр так. Кимдир бирөө «кандай жумушчуларды иштетебиз?» деп сураса. Биз бул суроого ишенимдүү жооп бере алабыз. Жаңы инженерлер табышмактуу процесстерге мүдүрүлүп, контекстти жок кылып жатабы деп ойлонушпайт. Код базасы беш жыл мурун жасаган ишибизди эмес, иш жүзүндө эмне кылып жатканыбызды чагылдырат. Рефакторлорго археология жана алдын алуу катары мамиле кылыңыз Бул долбоордогу эң чоң нерсем: ар бир маанилүү рефактор – археология үчүн мүмкүнчүлүк. Сиз системанын тереңинде болуп, бөлүктөр кантип туташып турганын чындап түшүнгөндө, дагы эле эмне керек экенине шек келтире турган идеалдуу абалда болосуз. Бул эски долбоордон келген кезек? Кимдир бирөө бир жолку маалымат миграциясы үчүн түзүлгөн жумушчубу? Сиз эч качан укпаган функцияга шилтеме берген пландалган тапшырма? Алар дагы эле иштеп жатышы мүмкүн. Бул жерде биз процессибизге эмнени салып жатабыз: Кайсы бир рефактордо, биз көптөн бери карабаган бул системага дагы эмнелер тийип жатат деп сураңыз? Функцияны жокко чыгарып жатканда, аны колдонуучуга караган код эле эмес, анын фондук процесстерине чейин байкаңыз. Кимдир бирөө командадан чыкканда, алар эмне үчүн жооптуу болгонун документтештириңиз, айрыкча биздин коддун эски бөлүктөрү дагы эле бар. азырынча бирдиктүү репозиторийге көчүрүлө элек. Консолидациялоону уланта берсек, биз бул жашыруун калдыктардын көбүн табабыз деп ишенебиз. Бирок азыр биз аларды кармап, жаңыларынын пайда болушуна жол бербөө үчүн жөндөлдүк. Кодуңуздун баары бир жерде жашаганда, жетим инфраструктуранын жашыра турган жери жок.
5 жыл бою иштеген 7 унутулган жумушту тапкандан кийин эмнени билдик
By Social Media
·
·
6 min read
·
719 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