Kami nembe ngamimitian proyek leutik pikeun ngabersihan kumaha bagian tina sistem kami komunikasi balik layar di Buffer.Sababaraha kontéks gancang: kami nganggo anu disebut SQS (Amazon Simple Queue Service. Antrian ieu sapertos kamar ngantosan pikeun tugas. Hiji bagian tina sistem kami ngahapus pesen, sareng anu sanésna nyandak éta engké. Pikirkeun éta sapertos nyéépkeun catetan pikeun batur sapagawean: "Hei, nalika anjeun ngantosan data, éta henteu aya kasempetan." a response.Proyék kami nyaéta pikeun ngalakukeun pangropéa rutin: ngapdet alat anu kami anggo pikeun nguji antrian sacara lokal sareng ngabersihkeun konfigurasina. Tapi nalika kami ngapetakeun antrian naon anu kami anggo, kami mendakan hiji hal anu henteu kami duga: tujuh prosés latar anu béda (atanapi padamelan cron, anu dijadwalkeun tugas anu dijalankeun sacara otomatis) sareng padamel anu parantos ngajalankeun jempé dugi ka lima taun Éta.Naha ieu langkung penting tibatan anu anjeun pikirkeun. Ya, ngajalankeun infrastruktur anu teu dipikabutuh nyaéta artos anu gancang sareng pikeun salah sahiji pagawé éta, kami bakal mayar ~ $ 360-600 salami 5 taun. gabung tim sarta explores sistem kami, aranjeunna sapatemon prosés misterius ieu "Naon nu pagawe ieu ngalakukeun?" cycles on code paths that serves no purpose.Jeung kana waktu, pangaweruh institusional luntur Naha ieu mangrupa perbaikan samentara anu jadi permanén The jalma anu nyieun éta ninggalkeun pausahaan sababaraha taun ka pengker, sarta kontéks nu ditinggalkeun ku aranjeunna "samentara" pikeun nanganan migrasi a, sarta eta pernah meunang torn handap A tugas dijadwalkeun jadi kaleuleuwihan sanggeus parobahan arsitéktur, tapi taya sahijieun nyangka pariksa. Kami biasa ngirim surelek hajatan ulang di Buffer, urang ngajalankeun tugas dijadwalkeun nu mariksa sakabéh databés pikeun ultah nu cocog tanggal ayeuna sarta ngirimkeun hiji email refactor pikeun 2 pagawe ieu-éta tetep ngajalankeun pikeun lima taun deui.Euweuh sahiji anu gagal individu - aranjeunna geus gagal tina prosés Tanpa cleanup ngahaja diwangun kana kumaha urang dianggo, entropi wins.Kumaha arsitéktur kami mantuan kami manggihan etaSapertos loba pausahaan, panyangga dirangkul gerakan microservices (pendekatan populér dimana pausahaan dibeulah kode maranéhanana kana loba leutik, jasa mandiri, misahkeun jasa sorangan) taun ka tukang. Pipa, sareng infrastruktur. Dina waktos éta, éta masuk akal: masing-masing jasa tiasa disebarkeun nyalira, kalayan wates anu jelas antara tim. Tapi salami sababaraha taun, kami mendakan overhead tina ngatur puluhan repositori langkung seueur kauntungan pikeun tim ukuran kami, janten kami ngahijikeun kana gudang tunggal multi-layanan, tapi éta tiasa dipendakan dina hiji tempat. di dunya microservices, unggal gudang mangrupa pulo sorangan A worker poho dina hiji repo mungkin pernah perhatikeun ku insinyur digawé di séjén leuwih lila existed.Konsolidasi teu dirancang pikeun mantuan kami manggihan infrastruktur zombie - tapi dijieun étaPapanggihan ampir teu bisa dihindari.Naon anu sabenerna urang laksanakeun Sakali urang ngaidentipikasi prosés yatim piatu, urang kedah mutuskeun naon anu kudu dilakukeun sareng aranjeunna. Kieu kumaha urang ngadeukeutanana. Kahiji, urang ngalacak masing-masing ka asal-usulna. Urang ngali sajarah git jeung dokuméntasi heubeul ngartos naha unggal pagawe dijieun di tempat munggaran. Dina kalolobaan kasus, tujuan aslina jelas: migrasi data hiji-waktos, fitur anu ngagaduhan surup, workaround samentara anu outlived usefulness na.Lajeng kami dikonfirmasi aranjeunna sabenerna henteu kapake. Sateuacan ngahapus naon waé, kami nambihan logging pikeun pariksa prosés ieu henteu tenang ngalakukeun hal anu penting anu kami sono. Urang diawaskeun pikeun sababaraha poé pikeun mastikeun maranéhna teu disebut pisan, sarta kami dihapus aranjeunna incrementally. Kami henteu ngahapus sadayana sakaligus. Kami ngahapus prosés hiji-hiji, ngawaskeun efek samping anu teu kaduga. (Kabeneran, teu aya.) Tungtungna, urang ngadokumentasikeun naon anu urang diajar. Urang ditambahkeun catetan ka docs internal urang ngeunaan naon unggal prosés mimitina geus dipigawé jeung naha eta dihapus, jadi insinyur hareup moal heran lamun hal penting leungit.Naon robah sanggeus bersih up. Lamun aya nu nanya, "Pagawe naon urang ngajalankeun?" urang sabenerna bisa ngajawab patarosan éta kalayan kapercayaan.Onboarding paguneman geus gotten basajan, teuing. Insinyur anyar henteu ngahalangan prosés anu misterius sareng heran naha aranjeunna leungit kontéks. Codebase ngagambarkeun naon sabenerna urang ngalakukeun, teu naon urang ngalakukeun lima taun ka tukang. Ngubaran refactors salaku arkeologi sarta preventionMy takeaway pangbadagna ti proyék ieu: unggal refactor signifikan mangrupa kasempetan pikeun arkeologi. Nalika anjeun jero dina sistem, bener ngartos kumaha potongan nyambungkeun, anjeun dina posisi sampurna pikeun patarosan naon masih diperlukeun. Éta antrian ti sababaraha proyék heubeul? The worker batur dijieun pikeun migrasi data hiji-waktos? Tugas anu dijadwalkeun anu ngarujuk kana fitur anu anjeun kantos kantos nguping? Éta meureun masih jalan. Ieu naon urang nuju ngawangun kana prosés urang bade ka hareup: Dina mangsa refactor wae, nanya: naon deui némpél sistem ieu nu urang geus teu nempo dina bari? Lamun deprecating hiji fitur, lacak eta kabeh jalan ka prosés tukang na, teu ngan kode-nyanghareup pamaké. Lamun batur ninggalkeun tim, dokumén naon maranéhna boga tanggung jawab, utamana dina bagian tukang kode urang masih ngajalankeun. geus migrasi ka gudang tunggal acan. Nalika urang terus ngahijikeun, urang yakin yén urang bakal mendakan langkung seueur paninggalan anu disumputkeun ieu. Tapi ayeuna urang geus diatur pikeun nyekel aranjeunna sarta nyegah nu anyar ti ngabentuk. Lamun sakabeh kode anjeun cicing di hiji tempat, infrastruktur yatim boga nowhere nyumputkeun.
Anu Kami Diajar Sanggeus Manggihan 7 Pakasaban Hilap Ngajalankeun salami 5 Taun
By Social Media
·
·
6 min read
·
515 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