Ons het onlangs 'n klein projek begin om skoon te maak hoe dele van ons stelsels agter die skerms by Buffer kommunikeer. 'n Vinnige konteks: ons gebruik iets genaamd SQS (Amazon Simple Queue Service. Hierdie rye tree op soos wagkamers vir take. Een deel van ons stelsel gee 'n boodskap af, en 'n ander tel dit later op. Dink daaraan soos om 'n nota te los vir 'n hey-verwerker, die stelsel kry die kans, die data-verwerker:." nota hoef nie rond te wag vir 'n antwoord nie. Ons projek was om roetine-instandhouding uit te voer: werk die gereedskap op wat ons gebruik om toue plaaslik te toets en maak hul konfigurasie skoon. Maar terwyl ons gekarteer het watter toue ons eintlik gebruik, het ons iets gevind wat ons nie verwag het nie: sewe verskillende agtergrondprosesse (of cron-take, wat geskeduleerde take is wat al vir vyf jaar lank outomaties aan die gang was) en werkers wat hulle nie gedoen het nie nuttig. Hier is hoekom dit saak maak, hoe ons hulle gevind het, en wat ons daaraan gedoen het. Hoekom dit meer saak maak as wat jy dink Ja, om onnodige infrastruktuur te bestuur, kos geld en vir een van daardie werkers sou ons oor 5 jaar ~$360-600 betaal het. opruiming, sou ek argumenteer dat die finansiële koste eintlik die kleinste deel van die probleem is. Elke keer as 'n nuwe ingenieur by die span aansluit en ons stelsels verken, kom hulle teë met hierdie geheimsinnige prosesse "Wat doen hierdie werker, word 'n vraag wat aanboordtyd opvreet en ons almal daar was - om dit te doen, miskien om iets te doen." "vergete" infrastruktuur het af en toe aandag nodig. waarheid is dit gebeur natuurlik in enige lang-lewende stelsel. 'n Eienskap word afgekeur, maar die agtergrond werk wat dit ondersteun, hou aan om 'n werker "tydelik" te hanteer 'n migrasie, en dit word nooit afgebreek na 'n argitektoniese verandering, maar niemand dink om 'n e-pos te stuur by Buffer taak wat die hele databasis gekontroleer het vir verjaarsdae wat ooreenstem met die huidige datum en aan kliënte 'n persoonlike e-pos gestuur het. Tydens 'n herfaktor in 2020 het ons ons transaksie-e-posnutsding verander, maar het vergeet om hierdie werker te verwyder - dit het nog vyf jaar aangehou. Nie een van hierdie is mislukkings van individue nie - dit is mislukkings van die proses. het die mikrodienste-beweging ('n gewilde benadering waar maatskappye hul kode in baie klein, onafhanklike dienste verdeel het) jare gelede omhels. Ons het ons monoliet in aparte dienste verdeel, elk met sy eie bewaarplek, ontplooiingspyplyn en infrastruktuur. Destyds het dit sin gemaak: elke diens kon op sy eie ontplooi word, met duidelike grense tussen spanne. Ons het dus gekonsolideer in 'n multi-diens enkelbewaarplek. Die dienste bestaan steeds as logiese grense, maar hulle woon saam op een plek. Dit het geblyk te wees wat ontdekking moontlik gemaak het. In die mikrodienstewêreld is elke repository sy eie eiland. bewaarplek kon ons uiteindelik die volledige prentjie naspeur na sy verbruikers en produsente. Ons kon toue met produsente sien, maar geen verbruikers nie.ontdekking byna onvermydelik.Wat ons eintlik gedoen hetToe ons die weesprosesse geïdentifiseer het, moes ons besluit wat om daarmee te doen. Hier is hoe ons dit benader het. Eerstens het ons elkeen na sy oorsprong opgespoor. Ons het deur git-geskiedenis en ou dokumentasie gegrawe om te verstaan ​​hoekom elke werker in die eerste plek geskep is. In die meeste gevalle was die oorspronklike doel duidelik: 'n eenmalige datamigrasie, 'n kenmerk wat sononder gekry het, 'n tydelike oplossing wat die bruikbaarheid daarvan oorleef het. Toe het ons bevestig dat hulle werklik ongebruik is. Voordat ons iets verwyder het, het ons aantekening bygevoeg om te verifieer dat hierdie prosesse nie stilweg iets belangrik gedoen het wat ons gemis het nie. Ons het vir 'n paar dae gemonitor om seker te maak dat hulle glad nie geroep is nie, en ons het hulle inkrementeel verwyder. Ons het nie alles gelyktydig uitgevee nie. Ons het prosesse een vir een verwyder en gekyk vir enige onverwagte newe-effekte. (Gelukkig was daar nie enige nie.) Uiteindelik het ons gedokumenteer wat ons geleer het. Ons het aantekeninge by ons interne dokumente gevoeg oor wat elke proses oorspronklik gedoen het en hoekom dit verwyder is, sodat toekomstige ingenieurs nie sou wonder of iets belangrik weggeraak het nie.Wat het verander na skoonmaakOns is nog vroeg om die volle impak te meet, maar hier is wat ons tot dusver gesien het.Ons infrastruktuur-inventaris is nou akkuraat. Wanneer iemand vra: "Watter werkers bestuur ons?" ons kan eintlik daardie vraag met selfvertroue beantwoord. Aanboordgesprekke het ook makliker geword. Nuwe ingenieurs struikel nie oor geheimsinnige prosesse en wonder of hulle konteks mis nie. Die kodebasis weerspieël wat ons eintlik doen, nie wat ons vyf jaar gelede gedoen het nie.Behandel refaktore as argeologie en voorkomingMy grootste wegneemete van hierdie projek: elke betekenisvolle refaktor is 'n geleentheid vir argeologie.Wanneer jy diep in 'n stelsel is en regtig verstaan ​​hoe die stukke verbind, is jy in die perfekte posisie om te bevraagteken wat nog nodig is. Daardie tou van een of ander ou projek? Die werker wat iemand geskep het vir 'n eenmalige datamigrasie? Die geskeduleerde taak wat verwys na 'n kenmerk waarvan jy nog nooit gehoor het nie? Hulle is dalk nog aan die gang. Hier is wat ons inbou in ons proses vorentoe: Vra tydens enige herfaktor: wat anders raak hierdie stelsel waarna ons 'n ruk lank nie gekyk het nie? Wanneer 'n kenmerk afgekeur word, spoor dit tot by die agtergrondprosesse, nie net die kode wat na die gebruiker gerig is nie. Wanneer iemand die span verlaat, dokumenteer waaroor hulle in die agtergrond verantwoordelik was, veral in die ou dele waaroor ons nog steeds die kode het. wat nog nie na die enkele bewaarplek gemigreer is nie. Soos ons voortgaan om te konsolideer, is ons vol vertroue dat ons meer van hierdie versteekte oorblyfsels sal vind. Maar nou is ons ingestel om hulle te vang en te verhoed dat nuwes vorm. Wanneer al jou kode op een plek woon, het wees-infrastruktuur nêrens om weg te steek nie.

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