ჩვენ ახლახან დავიწყეთ პატარა პროექტი, რათა გავასუფთავოთ ჩვენი სისტემების ნაწილების კულისებში კომუნიკაცია Buffer-ში. გარკვეული სწრაფი კონტექსტი: ვიყენებთ რაღაც სახელწოდებით SQS (Amazon Simple Queue Service. ეს რიგები მოქმედებს როგორც მოსაცდელები ამოცანების შესასრულებლად. ჩვენი სისტემის ერთი ნაწილი ტოვებს შეტყობინებას, მეორე კი მას მოგვიანებით იღებს. იფიქრეთ იმაზე, როგორც გაუგზავნეთ შენიშვნა კოლეგას, რომ დამუშავდეს ეს შანსი. პასუხს არ უნდა ველოდოთ. ჩვენი პროექტი იყო რუტინული მოვლა: განაახლეთ ინსტრუმენტები, რომლებსაც ვიყენებთ რიგების ლოკალურად შესამოწმებლად და მათი კონფიგურაციის გასასუფთავებლად. მაგრამ სანამ ჩვენ ვაფიქსირებდით რა რიგებს რეალურად ვიყენებთ, აღმოვაჩინეთ ის, რასაც არ ველოდით: შვიდი განსხვავებული ფონური პროცესი (ან კრონის სამუშაოები, რომლებიც დაგეგმილია ამოცანები, რომლებიც სრულდება აბსოლუტური ხუთი წლის განმავლობაში). სასარგებლოა. აი, რატომ არის ეს მნიშვნელოვანი, როგორ ვიპოვნეთ ისინი და რა გავაკეთეთ ამის შესახებ. რატომ არის ეს უფრო მნიშვნელოვანი, ვიდრე თქვენ გგონიათ, დიახ, არასაჭირო ინფრასტრუქტურის გაშვება ჯდება ფულზე. გაწმენდა, მე ვიტყოდი, რომ ფინანსური ხარჯები რეალურად პრობლემის ყველაზე მცირე ნაწილია. ყოველ ჯერზე, როდესაც ახალი ინჟინერი უერთდება გუნდს და იკვლევს ჩვენს სისტემებს, ისინი ხვდებიან ამ იდუმალ პროცესებს. ხანდახან სჭირდება უსაფრთხოების განახლებები, თავსებადობის შესწორებები, როცა რაღაც სხვაგვარად იცვლება. ბუნებრივად ხდება ნებისმიერ ხანგრძლივ სისტემაში. ფუნქცია მოძველებულია, მაგრამ ფონური სამუშაო, რომელიც მას მხარს უჭერდა, აგრძელებს მუშაობას მთელი მონაცემთა ბაზა დაბადების დღეებისთვის, რომელიც ემთხვევა მიმდინარე თარიღს და გავუგზავნეთ კლიენტებს პერსონალიზებული ელფოსტა 2020 წელს, ჩვენ შევცვალეთ ჩვენი ტრანზაქციის ელფოსტის ინსტრუმენტი - ის გაგრძელდა კიდევ ხუთი წლის განმავლობაში. მოძრაობა (პოპულარული მიდგომა, სადაც კომპანიებმა დაყვეს თავიანთი კოდი მრავალ მცირე, დამოუკიდებელ სერვისებად) წლების წინ. ჩვენ დავყავით ჩვენი მონოლითი ცალკეულ სერვისებად, თითოეულს თავისი საცავი, განლაგების მილსადენი და ინფრასტრუქტურა გაერთიანდა მრავალ სერვისულ საცავში. სერვისები ჯერ კიდევ არსებობს, როგორც ლოგიკური საზღვრები, მაგრამ ისინი ერთად ცხოვრობენ. აღმოჩნდა, რომ ეს აღმოჩენა გახდა შესაძლებელი. მიკროსერვისების სამყაროში, დავიწყებული მუშაკი ერთ რეპოში შეიძლება არასოდეს შეამჩნიონ. ერთ საცავში ჩვენ შეგვეძლო გვენახა სრული სურათი. ჩვენ შეგვეძლო მივაკვლიოთ რიგები მწარმოებლებთან, მაგრამ ვერ ვიპოვნეთ რიგები, რომლებიც აღარ არსებობდა.აღმოჩენა თითქმის გარდაუვალია. რა გავაკეთეთ სინამდვილეში მას შემდეგ რაც დავადგინეთ ობოლი პროცესები, უნდა გადაგვეწყვიტა, რა გვექნა მათთან. აი, როგორ მივუდექით მას. პირველ რიგში, ჩვენ მივაკვლიეთ თითოეულს მის წარმოშობას. ჩვენ გავთხარეთ git ისტორია და ძველი დოკუმენტაცია, რათა გავიგოთ, რატომ შეიქმნა თითოეული მუშაკი თავდაპირველად. უმეტეს შემთხვევაში, თავდაპირველი მიზანი ნათელი იყო: მონაცემთა ერთჯერადი მიგრაცია, ფუნქცია, რომელიც ჩასვლას იღებს, დროებითი გამოსავალი, რომელიც გადააჭარბა მის სარგებლობას. შემდეგ ჩვენ დავადასტურეთ, რომ ისინი ნამდვილად გამოუყენებელი იყო. რაიმეს წაშლამდე, ჩვენ დავამატეთ ჟურნალი, რათა დაგვედასტურებინა, რომ ეს პროცესები ჩუმად არ აკეთებდნენ რაღაც მნიშვნელოვანს, რაც გამოგვრჩა. რამდენიმე დღის განმავლობაში ვაკვირდებოდით, რომ საერთოდ არ დარეკეს და ეტაპობრივად მოვხსენით. ჩვენ არ წავშალეთ ყველაფერი ერთდროულად. ჩვენ სათითაოდ ამოიღეთ პროცესები, ვაკვირდებოდით რაიმე მოულოდნელ გვერდით მოვლენებს. (საბედნიეროდ, არ იყო არცერთი.) საბოლოოდ, ჩვენ დავაფიქსირეთ ის, რაც ვისწავლეთ. ჩვენ დავამატეთ შენიშვნები ჩვენს შიდა დოკუმენტებში იმის შესახებ, თუ რა გააკეთა თავდაპირველად თითოეულმა პროცესმა და რატომ იქნა ამოღებული, ასე რომ მომავალ ინჟინრებს არ აინტერესებთ, დაიკარგა თუ არა რაიმე მნიშვნელოვანი. რა შეიცვალა გაწმენდის შემდეგ ჩვენ ჯერ კიდევ ადრე ვართ სრული ზემოქმედების გაზომვაში, მაგრამ აი, რა ვნახეთ აქამდე. ჩვენი ინფრასტრუქტურის ინვენტარი ახლა ზუსტია. როდესაც ვინმე კითხულობს: "რომელ მუშაკებს ვატარებთ?" ჩვენ შეგვიძლია რეალურად ვუპასუხოთ ამ კითხვას დარწმუნებით. საბორტო საუბრები ასევე გამარტივდა. ახალი ინჟინრები არ წააწყდებიან იდუმალ პროცესებს და არ აინტერესებთ, აკლიათ თუ არა კონტექსტი. კოდების ბაზა ასახავს იმას, რასაც ჩვენ რეალურად ვაკეთებთ და არა იმას, რაც გავაკეთეთ ხუთი წლის წინ. მიაქციეთ რეფაქტორებს, როგორც არქეოლოგიას და პრევენციას ჩემი ყველაზე დიდი შედეგი ამ პროექტიდან: ყოველი მნიშვნელოვანი რეფაქტორი არის შესაძლებლობა არქეოლოგიისთვის. როდესაც ღრმად ხართ სისტემაში, ნამდვილად გესმით, როგორ აკავშირებთ ნაწილებს, თქვენ იდეალურ მდგომარეობაში ხართ, რომ კითხოთ რა არის ჯერ კიდევ საჭირო. ეს რიგი ძველი პროექტისგან? მუშაკი ვინმემ შექმნა მონაცემთა ერთჯერადი მიგრაციისთვის? დაგეგმილი დავალება, რომელიც მიუთითებს ფუნქციაზე, რომლის შესახებაც არასოდეს გსმენიათ? ისინი შეიძლება ჯერ კიდევ მუშაობდნენ. აი, რას ვაშენებთ ჩვენს შემდგომ პროცესებში: ნებისმიერი რეფაქტორის დროს, იკითხეთ: კიდევ რა ეხება ამ სისტემას, რომელსაც დიდი ხანია არ ვუყურებდით? ფუნქციის გაუქმებისას, მიადევნეთ თვალი მის ფონურ პროცესებს და არა მხოლოდ მომხმარებლის წინაშე არსებულ კოდს. როდესაც ვინმე ტოვებს გუნდს, დააფიქსირეთ ის, რაც ფონურ კოდს ევალებოდა ჩვენ ჯერ კიდევ გვაქვს. რომლებიც ჯერ არ არის გადატანილი ერთ საცავში. როგორც ვაგრძელებთ კონსოლიდაციას, ჩვენ დარწმუნებულები ვართ, რომ ამ ფარული რელიქვიების მეტს ვიპოვით. მაგრამ ახლა ჩვენ შექმნილია იმისთვის, რომ დავიჭიროთ ისინი და თავიდან ავიცილოთ ახლის წარმოქმნა. როცა მთელი თქვენი კოდი ერთ ადგილას ცხოვრობს, ობოლი ინფრასტრუქტურას დასამალი არსად აქვს.
რა ვისწავლეთ 7 დავიწყებული სამუშაოს პოვნის შემდეგ, რომლებიც 5 წლის განმავლობაში მუშაობდნენ
By Social Media
·
·
6 min read
·
568 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