Recentment hem iniciat un petit projecte per netejar com es comuniquen parts dels nostres sistemes entre bastidors a Buffer. Algun context ràpid: utilitzem una cosa anomenada SQS (Amazon Simple Queue Service. Aquestes cues actuen com a sales d'espera per a tasques. Una part del nostre sistema deixa un missatge i una altra el recull més tard. Penseu en això com si deixeu una nota per a un company de feina quan envieu aquestes dades al sistema: La nota no ha d'esperar una resposta. El nostre projecte era realitzar un manteniment rutinari: actualitzar les eines que utilitzem per provar cues localment i netejar-ne la configuració. Però mentre estàvem traçant el mapa de quines cues utilitzem realment, vam trobar alguna cosa que no esperàvem: set processos de fons diferents (o tasques cron, que són tasques programades que s'executen automàticament) i els treballadors no havien fet res durant cinc anys Útil. A continuació, s'explica per què és important, com els hem trobat i què hem fet al respecte. Per què això és més important del que es pensaria. Sí, fer un càlcul ràpid i per a un d'aquests treballadors hauríem pagat entre 360 i 600 dòlars durant 5 anys. La neteja, diria que el cost financer és en realitat la part més petita del problema. Cada vegada que un nou enginyer s'uneix a l'equip i explora els nostres sistemes, es troben amb aquests misteriosos processos "Què fa aquest treballador es converteix en una pregunta que consumeix el temps d'incorporació i crea incertesa, ja que tots hem estat allà, mirant-hi alguna cosa important". La infraestructura "oblidada" de vegades necessita atenció. Actualitzacions de seguretat, problemes de dependència, correccions de compatibilitat quan canvia alguna cosa, això va fer que el nostre equip gastés cicles de manteniment que no serveixen per a res. I amb el temps, el coneixement institucional es va esvair. La veritat és que això passa de manera natural en qualsevol sistema de llarga durada. Una funció queda obsoleta, però el treball de fons que l'admetia continua funcionant "temporalment" per gestionar una migració i mai s'elimina Una tasca programada es torna redundant després d'un canvi arquitectònic, però ningú pensa en comprovar-ho per a la celebració base de dades sencera per als aniversaris que coincideixen amb la data actual i enviat als clients un correu electrònic personalitzat. Durant un refactor el 2020, vam canviar la nostra eina de correu electrònic transaccional, però ens vam oblidar d'eliminar aquest treballador; va continuar funcionant durant cinc anys més. Cap d'aquests són errors d'individus: sense una neteja intencionada integrada a la nostra manera de treballar, l'entropia va ajudar a trobar-ho a moltes empreses. Moviment de microserveis (un enfocament popular en què les empreses dividien el seu codi en molts serveis independents) fa anys. Vam dividir el nostre monòlit en serveis separats, cadascun amb el seu propi dipòsit, canal de desplegament i infraestructura. En aquell moment, tenia sentit: cada servei es podia desplegar per si mateix, amb límits clars entre equips en un dipòsit únic multiservei. Els serveis encara existeixen com a límits lògics, però conviuen en un mateix lloc. Això va resultar ser el que va fer possible el descobriment. En el món dels microserveis, cada dipòsit és la seva pròpia illa. Els enginyers que treballen en un altre mai no poden veure un únic repositori, on no hi ha cap repositori. Finalment vam poder veure la imatge completa. Podríem rastrejar cada cua fins als seus consumidors i productors. Podríem trobar cues amb productors, però sense consumidors. Podríem trobar treballadors que ja no existien. La consolidació no va ser dissenyada per ajudar-nos a trobar una infraestructura zombi.descobriment gairebé inevitable. Què vam fer realmentUn cop identificats els processos orfes, vam haver de decidir què fer-hi. Així és com l'hem abordat. Primer, hem traçat cadascuna fins al seu origen. Vam explorar la història de git i la documentació antiga per entendre per què es va crear cada treballador en primer lloc. En la majoria dels casos, el propòsit original era clar: una migració de dades única, una funció que es va posar de sol, una solució temporal que va sobreviure a la seva utilitat. Aleshores vam confirmar que realment no s'utilitzaven. Abans d'eliminar qualsevol cosa, vam afegir el registre per verificar que aquests processos no estaven fent en silenci alguna cosa important que ens havíem perdut. Vam fer un seguiment durant uns dies per assegurar-nos que no fossin trucats en absolut i els vam eliminar gradualment. No ho hem esborrat tot alhora. Vam eliminar els processos un per un, vigilant els efectes secundaris inesperats. (Per sort, no n'hi havia.) Finalment, vam documentar el que vam aprendre. Hem afegit notes als nostres documents interns sobre què havia fet originalment cada procés i per què s'ha eliminat, de manera que els futurs enginyers no es pregunten si ha faltat alguna cosa important. Què ha canviat després de la neteja Encara estem aviat per mesurar l'impacte total, però això és el que hem vist fins ara. El nostre inventari d'infraestructura ara és precís. Quan algú pregunta: "Quins treballadors gestionem?" De fet, podem respondre aquesta pregunta amb confiança. Les converses d'incorporació també s'han tornat més senzilles. Els nous enginyers no ensopeguen amb processos misteriosos i es pregunten si els falta context. La base de codi reflecteix el que realment fem, no el que vam fer fa cinc anys. Tracta els refactors com a arqueologia i prevenció. La meva principal conclusió d'aquest projecte: cada refactor significatiu és una oportunitat per a l'arqueologia. Quan estàs endinsat en un sistema, entenent realment com es connecten les peces, estàs en la posició perfecta per qüestionar-te què encara es necessita. Aquella cua d'algun projecte antic? El treballador que algú va crear per a una migració de dades única? La tasca programada que fa referència a una funció de la qual mai no heu sentit a parlar? És possible que encara estiguin en execució. Això és el que estem incorporant al nostre procés a partir d'ara: durant qualsevol refactorització, pregunteu: què més afecta aquest sistema que fa temps que no hem mirat? Quan deixeu d'utilitzar una funció, rastregeu-la fins als processos en segon pla, no només al codi orientat a l'usuari. Quan algú surti de l'equip, documenteu el que estaven al capdavant de les parts que encara tenim en segon pla. base de codi que encara no s'han migrat al repositori únic. A mesura que continuem consolidant-nos, estem segurs que trobarem més d'aquestes relíquies amagades. Però ara estem preparats per detectar-los i evitar que se'n formin de nous. Quan tot el vostre codi viu en un sol lloc, la infraestructura orfe no té on amagar-se.
El que vam aprendre després de trobar 7 feines oblidades durant 5 anys
By Social Media
·
·
6 min read
·
685 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