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.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free