Aloitimme äskettäin pienen projektin puhdistaaksemme järjestelmien osien viestintää kulissien takana puskurissa. Nopea konteksti: käytämme jotain nimeltä SQS (Amazon Simple Queue Service. Nämä jonot toimivat kuin tehtävien odotushuoneita. Yksi järjestelmämme osa lähettää viestin ja toinen poimii sen myöhemmin. Ajattele sitä kuin jättäisit muistiinpanon työtoverille: "Hei järjestelmä, prosessi, kun saat tämän tiedon." odottaa vastausta. Projektimme oli suorittaa rutiinihuolto: päivittää työkaluja, joita käytämme testaamaan jonoja paikallisesti ja siivoamaan niiden määritykset. Mutta samalla kun kartoitimme käyttämiämme jonoja, löysimme jotain, jota emme odottaneet: seitsemän erilaista taustaprosessia (tai cron-työtä, jotka ovat ajoitettuja tehtäviä, jotka suoritetaan automaattisesti) ja työntekijät, jotka olivat toimineet hiljaa jopa viiden vuoden ajan Miksi tällä on enemmän merkitystä kuin uskot? Kyllä, tarpeettoman infrastruktuurin käyttö maksaa rahaa, ja yhdestä työntekijästä olisimme maksaneet noin 360–600 dollaria 5 vuoden aikana. Tämä on vaatimaton summa taloudessamme, mutta todellakin puhdasta tuhlausta prosessista, joka ei tee mitään. Joka kerta kun uusi insinööri liittyy tiimiin ja tutkii järjestelmiämme, hän kohtaa nämä salaperäiset prosessit. "Mitä tämä työntekijä tekee?" Tämä johti siihen, että tiimimme käytti huoltojaksoja turhaan. Ja ajan myötä institutionaalinen tieto haalistuu. Oliko se väliaikainen korjaus, joka lähti yrityksestä vuosia sitten, ja konteksti jäi heidän kanssaan. Kuinka tämä tapahtuu? Joku pyörittää työntekijän "tilapäisesti" käsittelemään siirtoa, eikä se koskaan katkea. Suunniteltu tehtävä tulee tarpeettomaksi arkkitehtonisen muutoksen jälkeen. Lähetimme aiemmin syntymäpäiviä koskevia sähköposteja tapahtumasähköpostityökalu, mutta unohdin poistaa tämän työntekijän – se oli käynnissä vielä viisi vuotta. Mikään näistä ei ole yksilöiden epäonnistumisia – ne ovat prosessien epäonnistumisia. Entropia voittaa ilman tarkoituksellista siivousta.Kuinka arkkitehtuurimme auttoi meitä löytämään sen Kuten monet yritykset, Buffer omaksui mikropalveluliikkeen (suosittu lähestymistapa, jossa yhtiöt jakoivat erilliset palvelumme vuosia sitten). Jokaisella on oma tietovarasto, käyttöönottoputki ja infrastruktuuri. Tuolloin se oli järkevää: jokainen palvelu voitiin ottaa käyttöön itsenäisesti, ja ryhmien välillä oli selkeät rajat. Mutta vuosien mittaan olemme huomanneet, että kymmenien tietovarastojen hallinta ylitti koko tiimimme hyödyt Tämä osoittautui mahdolliseksi. Mikropalveluiden maailmassa jokainen tietovarasto on oma saarinsa. Toisessa työpaikassa työskentelevät insinöörit eivät ehkä koskaan huomaa jonojen nimiä, ei yhtenäistä näkemystä siitä, mikä toimii paikalla jonoja tuottajien, mutta ei kuluttajien kanssa Löysimme työntekijöitä, jotka viittasivat jonoihin, joita ei enää ollut olemassa. Yhdistämistä ei suunniteltu auttamaan meitä löytämään zombi-infrastruktuuria – mutta se teki siitä.löytö on lähes väistämätöntä. Mitä itse teimme Kun tunnistimme orvot prosessit, meidän oli päätettävä, mitä niille tehdään. Näin lähestyimme sitä. Ensin jäljitimme jokaisen alkuperänsä. Kaivoimme gitin historiaa ja vanhaa dokumentaatiota ymmärtääksemme, miksi jokainen työntekijä alun perin luotiin. Useimmissa tapauksissa alkuperäinen tarkoitus oli selvä: kertaluonteinen tietojen siirto, ominaisuus, joka katosi, väliaikainen kiertotapa, joka oli vanhentunut. Sitten vahvistimme, että ne olivat todella käyttämättömiä. Ennen kuin poistimme mitään, lisäsimme lokikirjauksen varmistaaksemme, että nämä prosessit eivät tehneet hiljaa jotain tärkeää, jota olimme menettäneet. Valvoimme muutaman päivän ajan varmistaaksemme, ettei heille soitettu ollenkaan, ja poistimme ne vähitellen. Emme poistaneet kaikkea kerralla. Poistimme prosessit yksitellen ja tarkkailimme odottamattomia sivuvaikutuksia. (Onneksi niitä ei ollut.) Lopuksi dokumentoimme oppimamme. Lisäsimme sisäisiin asiakirjoihimme muistiinpanoja siitä, mitä kukin prosessi oli alun perin tehnyt ja miksi ne poistettiin, jotta tulevat insinöörit eivät ihmettele, jos jotain tärkeää olisi kadonnut.Mikä muuttui puhdistuksen jälkeen Olemme vielä alkuvaiheessa mittaamassa koko vaikutusta, mutta tässä on se, mitä olemme nähneet tähän mennessä. Infrastruktuurin inventaarimme on nyt tarkka. Kun joku kysyy: "Mitä työntekijöitä me pyöritämme?" voimme itse asiassa vastata tähän kysymykseen luottavaisin mielin. Aloituskeskustelut ovat myös yksinkertaistuneet. Uudet insinöörit eivät törmää salaperäisiin prosesseihin ja ihmettele, puuttuuko heiltä kontekstia. Koodikanta heijastaa sitä, mitä todella teemme, ei sitä, mitä teimme viisi vuotta sitten. Käsittele refaktoreita arkeologiana ja ennaltaehkäisynä Suurin otokseni tästä projektista: jokainen merkittävä refaktori on mahdollisuus arkeologiaan. Kun olet syvällä järjestelmässä ja ymmärrät todella, kuinka palaset liittyvät toisiinsa, sinulla on täydellinen mahdollisuus kyseenalaistaa, mitä vielä tarvitaan. Tuo jono jostain vanhasta projektista? Kertaluonteista tiedonsiirtoa varten luotu työntekijä? Ajastettu tehtävä, joka viittaa ominaisuuteen, josta et ole koskaan kuullut? Ne saattavat edelleen olla käynnissä.Tässä on se, mitä rakennamme prosessiimme jatkossa: Kysy missä tahansa refaktorissa: mikä muu koskettaa tätä järjestelmää, jota emme ole tarkastelleet vähään aikaan?Kun poistat ominaisuuden käytöstä, jäljitä se aina sen taustaprosesseihin, ei vain käyttäjäkohtaiseen koodiin. Kun joku lähtee tiimistä, dokumentoi, mitä he olivat vastuussa, erityisesti vanhemmissa koodin osissa, joita meillä on edelleen. on vielä siirretty yhteen arkistoon. Kun jatkamme yhdistämistä, olemme varmoja, että löydämme lisää näitä piilotettuja jäänteitä. Mutta nyt olemme valmiita saamaan ne kiinni ja estämään uusien muodostumisen. Kun kaikki koodisi on yhdessä paikassa, orvolla infrastruktuurilla ei ole minnekään piiloutua.

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