Nemrég elindítottunk egy kis projektet, hogy megtisztítsuk, hogyan kommunikálnak rendszereink egyes részei a Puffer színfalai mögött. Néhány gyors kontextus: valami úgynevezett SQS-t (Amazon Simple Queue Service) használunk. Ezek a sorok várótermekként működnek a feladatokhoz. Rendszerünk egyik része lead egy üzenetet, a másik pedig később veszi fel. Gondoljon arra, mintha egy jegyzetet hagyna egy munkatársnak: "Hey system, that have this send a note." Várjunk a válaszra. Projektünk az volt, hogy rutinszerű karbantartást hajtsunk végre: frissítsük az eszközöket, amelyeket a sorok helyi tesztelésére használunk, és megtisztítjuk a konfigurációjukat. Miközben azonban feltérképeztük, hogy valójában milyen sorokat használunk, találtunk valamit, amire nem számítottunk: hét különböző háttérfolyamat (vagy cron-job, amelyek automatikusan futnak ütemezett feladatok) és olyan dolgozók, akik némán futtak, és azt tapasztaltuk, hogy akár öt évig is Miért fontosabb ez, mint gondolnád? Igen, a felesleges infrastruktúra működtetése pénzbe kerül, és egy gyors számítást végeztem, és az egyik dolgozóért 5 év alatt ~360-600 dollárt fizettünk volna. Ez egy szerény összeg a pénzügyeink nagy rendszerében, de minden bizonnyal tiszta pazarlás egy olyan folyamatért, amely a legnagyobb költséggel jár. Minden alkalommal, amikor egy új mérnök csatlakozik a csapathoz, és felfedezi a rendszereinket, ezekkel a rejtélyes folyamatokkal találkozik. "Mit csinál ez a dolgozó?" Ez ahhoz vezetett, hogy csapatunk olyan karbantartási ciklusokat költ, amelyek nem szolgáltak célt. És az idő múlásával az intézményi ismeretek elhalványultak. Ez egy átmeneti megoldás volt, amely évekkel ezelőtt elhagyta a céget, és a kontextus is megmaradt velük. Hogyan történik ez? Valaki "ideiglenesen" felpörgeti az áttelepítést, és soha nem szakad le. Az ütemezett feladat az építészeti változtatást követően feleslegessé válik, de senkinek nem jut eszébe, hogy ellenőrizze. Ennek érdekében végrehajtottunk egy ütemezett feladatot, amely a személyes születésnapoknak megfelelő 20-as e-mailt küldött tranzakciós e-mail eszköz, de elfelejtette eltávolítani ezt a dolgozót – még öt évig futott. Ezek egyike sem az egyének hibája – ezek a folyamatok kudarcai. A munkamódszereinkbe épített szándékos tisztítás nélkül az entrópia győz. Hogyan segített megtalálni az architektúránkat. Sok vállalathoz hasonlóan a Buffer is felkarolta a mikroszolgáltatások mozgalmát (egy népszerű megközelítés, ahol a cégek különálló szolgáltatásainkat évekkel ezelőtt szétosztották). mindegyik saját tárolóval, telepítési folyamattal és infrastruktúrával volt értelme: minden szolgáltatást önállóan lehetett telepíteni, a csapatok között egyértelmű határokat szabtak. Az évek során azonban rájöttünk, hogy a több tucatnyi adattár kezelésének költsége meghaladja a mi méretű csapatunk előnyeit Ez tette lehetővé a felfedezést. A mikroszolgáltatások világában minden egyes adattár a saját szigete. Lehet, hogy a másikban dolgozó mérnökök soha nem veszik észre a sorneveket, nincs egységes nézet arról, hogy mi fut észrevehető sorok a gyártókkal, de nem fogyasztók. Találtunk olyan dolgozókat, akik már nem létező sorokra hivatkoztak. A konszolidációt nem arra tervezték, hogy segítsen megtalálni a zombi-infrastruktúrát – de ez sikerült.a felfedezés szinte elkerülhetetlen. Amit valójában csináltunk. Miután azonosítottuk az árva folyamatokat, el kellett döntenünk, hogy mit kezdjünk velük. Így közelítettük meg. Először mindegyik eredetét követtük nyomon. Átkutattuk a git történetét és a régi dokumentációt, hogy megértsük, miért jöttek létre az egyes munkások. A legtöbb esetben az eredeti cél egyértelmű volt: egyszeri adatmigráció, egy funkció, amely lejárt, egy ideiglenes megoldás, amely túlélte a hasznát. Aztán megerősítettük, hogy valóban nem használtak. Mielőtt bármit eltávolítottunk volna, naplózást adtunk hozzá, hogy ellenőrizzük, hogy ezek a folyamatok nem csinálnak-e csendben valami fontosat, amit elmulasztottunk. Néhány napig figyeltük, hogy egyáltalán nem hívják-e őket, és fokozatosan eltávolítottuk őket. Nem töröltünk mindent egyszerre. Egyenként távolítottuk el a folyamatokat, figyelve a váratlan mellékhatásokat. (Szerencsére nem volt ilyen.) Végül dokumentáltuk a tanultakat. Jegyzeteket adtunk a belső dokumentumainkhoz arról, hogy az egyes folyamatok mit csináltak eredetileg, és miért távolították el őket, így a jövőbeli mérnökök nem csodálkoznának azon, ha valami fontos eltűnne.Mi változott a tisztítás után Még korán vagyunk a teljes hatás mérésében, de íme, amit eddig láttunk.Infrastruktúra-leltárunk már pontos. Amikor valaki megkérdezi: "Milyen munkásokat vezetünk?" valójában magabiztosan válaszolhatunk erre a kérdésre.A bevezető beszélgetések is egyszerűbbé váltak. Az új mérnökök nem botlanak titokzatos folyamatokba, és nem azon töprengenek, hogy nem hiányzik-e a kontextus. A kódbázis azt tükrözi, amit valójában csinálunk, nem azt, amit öt évvel ezelőtt tettünk. Kezelje a refaktorokat régészetként és megelőzésként. A legnagyobb hozam ebből a projektből: minden jelentős refaktor egy lehetőség a régészet számára. Ha mélyen van egy rendszerben, és igazán megérti, hogyan kapcsolódnak egymáshoz a darabok, akkor tökéletes helyzetben van, hogy megkérdőjelezze, mire van még szükség. Ez a várólista valami régi projektből? Az egyszeri adatmigrációhoz létrehozott dolgozó? Az ütemezett feladat, amely egy olyan funkcióra hivatkozik, amelyről még soha nem hallott? Lehet, hogy még mindig futnak. A következőképpen építjük be a folyamatunkat: Bármely átalakítás során kérdezze meg: mi más érinti még ezt a rendszert, amit már régóta nem néztünk meg? Amikor egy szolgáltatást megszüntetünk, kövesse nyomon a háttérfolyamatokat, ne csak a felhasználói kódot. Ha valaki elhagyja a csapatot, dokumentálja, hogy mi volt a felelős, különösen a régebbi részekben, amelyek még futottak a kódunkban. még áttelepült az egyetlen tárolóba. Ahogy folytatjuk a konszolidációt, biztosak vagyunk benne, hogy még több ilyen rejtett relikviát fogunk találni. De most úgy készültünk, hogy elkapjuk őket, és megakadályozzuk az újak kialakulását. Amikor az összes kód egy helyen él, az árva infrastruktúrának nincs hova bújnia.
Amit megtudtunk, miután 7 elfelejtett állást találtunk 5 éven keresztül
By Social Media
·
·
6 min read
·
578 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