Ni lastatempe komencis malgrandan projekton por purigi kiel partoj de niaj sistemoj komunikas malantaŭ la kulisoj ĉe Buffer. Iu rapida kunteksto: ni uzas ion nomitan SQS (Amazon Simple Queue Service. Ĉi tiuj vicoj agas kiel atendoĉambroj por taskoj. Unu parto de nia sistemo demetas mesaĝon, kaj alia prenas ĝin poste. Pensu pri tio kiel lasi noton al iu kunlaboranto, kiam vi sendas la datumon: "He, kunlaboranto, kiam vi sendas la datumojn." noto ne devas atendi respondon. Nia projekto estis plenumi rutinan prizorgadon: ĝisdatigi la ilojn, kiujn ni uzas por testi vostojn loke kaj purigi ilian agordon. Sed dum ni elkalkulis kiajn vicojn ni efektive uzas, ni trovis ion, kion ni ne atendis: sep malsamajn fonajn procezojn (aŭ kronajn laborojn, kiuj estas planitaj taskoj kiuj funkcias aŭtomate) kaj laboristoj tute silentis dum kvin jaroj utila.Jen kial tio gravas, kiel ni trovis ilin, kaj kion ni faris pri tio.Kial ĉi tio gravas pli ol vi pensus. Jes, funkcii nenecesan infrastrukturon kostas monon, mi faris rapidan kalkulon kaj por unu el tiuj laboristoj, ni pagintus 360-600 USD dum 5 jaroj. Ĉi tio estas modesta kvanto en la granda skemo de nia financo. purigado, mi argumentus, ke la financa kosto estas efektive la plej malgranda parto de la problemo. Ĉiufoje kiam nova inĝeniero aliĝas al la teamo kaj esploras niajn sistemojn, ili renkontas ĉi tiujn misterajn procezojn "Kion faras ĉi tiu laboristo fariĝas demando, kiu manĝas tempon de enŝipiĝo kaj kreas necertecon, ĉar Ni ĉiuj estis tie, ĉar ĝi povas tuŝi ion gravan." "Forgesita" infrastrukturo foje bezonas atenton. Sekurecaj ĝisdatigoj, dependaj korektoj, kiam io alia ŝanĝiĝas. Ĉi tio kondukis al nia teamo elspezanta ciklojn pri kodaj vojoj, kiuj ne servis.Kaj kun la tempo, la institucia kono malaperis. Ĉu tio estis provizora riparo, kiu fariĝis daŭra? vero estas tio okazas nature en iu longdaŭra sistemo. Funkcio estas malrekomendita, sed la fona laboro, kiu subtenis ĝin, daŭre funkcias "provizore" por trakti migradon, kaj ĝi neniam estas malkonstruita. Planita tasko fariĝas superflua post arkitektura ŝanĝo, sed neniu pensas kontroli ĉi tiun taskon ĉe la naskiĝtago tuta datumbazo por naskiĝtagoj kongruaj kun la nuna dato kaj sendis al klientoj personigitan retpoŝton Dum refactorado en 2020, ni ŝanĝis nian transakcian retpoŝtan ilon sed forgesis forigi ĉi tiun laboriston—ĝi daŭre funkciis dum kvin pliaj jaroj. Neniu el tiuj estas fiaskoj de individuoj - Sen intencita purigado konstruita en kiel ni laboras, la arkitekturo helpis al multaj kompanioj trovi. mikroservoj-movado (populara aliro kie kompanioj dividis sian kodon en multajn malgrandajn sendependajn servojn) antaŭ jaroj. Ni dividis nian monoliton en apartajn servojn, ĉiu kun sia propra deponejo, disfalda dukto kaj infrastrukturo Tiutempe, ĝi havis sencon: ĉiu servo povus esti deplojita memstare, kun klaraj limoj inter teamoj en plurservan ununuran deponejon. La servoj ankoraŭ ekzistas kiel logikaj limoj, sed ili vivas kune en unu loko. Ĉi tio ebligis la malkovron. En la mondo de mikroservoj, ĉiu deponejo estas sia propra insulo. Forgesita laboristo en unu deponejo eble neniam estas rimarkita de inĝenieroj laborantaj en alia loko, kie ne ekzistas unuopa deponejo. ni povis finfine vidi la plenan bildon Ni povis spuri ĉiun voston al ĝiaj konsumantoj kaj produktantoj. Ni povis trovi vicojn kun produktantoj, sed neniuj konsumantoj. Ni povis trovi laboristojn referencantajn atendovicojn kiuj ne plu ekzistis. La firmiĝo ne estis desegnita por helpi nin trovi zombian infrastrukturon.malkovro preskaŭ neevitebla.Kion ni efektive faris Post kiam ni identigis la orfigitajn procezojn, ni devis decidi kion fari kun ili. Jen kiel ni alproksimiĝis al ĝi.Unue, ni spuris ĉiun al ĝia origino. Ni fosis tra git-historio kaj malnova dokumentaro por kompreni kial ĉiu laboristo estis kreita en la unua loko. Plejofte, la origina celo estis klara: unufoja datummigrado, trajto kiu ricevis sunsubiron, provizora solvo kiu postvivis ĝian utilecon. Tiam ni konfirmis ke ili estis vere neuzataj. Antaŭ ol forigi ion ajn, ni aldonis ensalutadon por kontroli, ke ĉi tiuj procezoj ne kviete faras ion gravan, kiun ni maltrafis. Ni monitoris dum kelkaj tagoj por certigi, ke ili tute ne estas vokataj, kaj ni forigis ilin iom post iom. Ni ne forigis ĉion samtempe. Ni forigis procezojn unu post alia, atentante neatenditajn kromefikojn. (Feliĉe, ne estis.)Fine, ni dokumentis tion, kion ni lernis. Ni aldonis notojn al niaj internaj dokumentoj pri tio, kion ĉiu procezo origine faris kaj kial ĝi estis forigita, do estontaj inĝenieroj ne scivolis ĉu io grava malaperis.Kio ŝanĝiĝis post purigadoNi ankoraŭ frue mezuras la plenan efikon, sed jen kion ni vidis ĝis nun.Nia infrastruktura inventaro nun estas preciza. Kiam iu demandas: "Kiujn laboristojn ni kuras?" ni efektive povas respondi tiun demandon kun konfido.Ankaŭ enŝipiĝaj konversacioj fariĝis pli simplaj. Novaj inĝenieroj ne trovas misterajn procezojn kaj scivolas ĉu ili mankas kunteksto. La kodbazo reflektas tion, kion ni efektive faras, ne tion, kion ni faris antaŭ kvin jaroj.Traktu refaktorojn kiel arkeologion kaj preventadon. Mia plej granda elprenaĵo de ĉi tiu projekto: ĉiu signifa refaktoro estas ŝanco por arkeologio. Kiam vi estas profunde en sistemo, vere komprenante kiel la pecoj konektas, vi estas en la perfekta pozicio por pridubi tion, kio ankoraŭ bezonas. Tiu vico de iu malnova projekto? La laboristo kiun iu kreis por unufoja datummigrado? La planita tasko, kiu referencas funkcion pri kiu vi neniam aŭdis? Ili eble ankoraŭ funkcias.Jen kion ni konstruas en nian procezon antaŭen:Dum iu refaktoro, demandu: kio alia tuŝas ĉi tiun sistemon, kiun ni delonge ne rigardis?Kiam malrekomendis funkcion, spuru ĝin ĝis ĝiaj fonaj procezoj, ne nur la uzantan kodon.Kiam iu forlasas la teamon, dokumentu, kion ili estis en la fono de niaj malnovaj partoj, precipe ni havas en la fono, kiujn ni ankoraŭ prizorgas. kodbazo kiuj ankoraŭ ne estis migritaj al la ununura deponejo. Dum ni daŭre solidiĝas, ni certas, ke ni trovos pli da ĉi tiuj kaŝitaj relikvoj. Sed nun ni estas instalitaj por kapti ilin kaj malhelpi novajn formiĝon. Kiam via tuta kodo loĝas en unu loko, orfa infrastrukturo ne havas kie kaŝiĝi.

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