Nemrég elindítottunk egy kis projektet, hogy megtisztítsuk, hogyan kommunikálnak rendszereink egyes részei a Puffer színfalai mögött. Néhány gyors kontextus: valami úgynevezett SQS-t (Amazon Simple Queue Service) használunk. Ezek a sorok várótermekként működnek a feladatokhoz. Rendszerünk egyik része lead egy üzenetet, a másik pedig később veszi fel. Gondoljon arra, mintha egy jegyzetet hagyna egy munkatársnak: "Hey system, that have this send a note." Várjunk a válaszra. Projektünk az volt, hogy rutinszerű karbantartást hajtsunk végre: frissítsük az eszközöket, amelyeket a sorok helyi tesztelésére használunk, és megtisztítjuk a konfigurációjukat. Miközben azonban feltérképeztük, hogy valójában milyen sorokat használunk, találtunk valamit, amire nem számítottunk: hét különböző háttérfolyamat (vagy cron-job, amelyek automatikusan futnak ütemezett feladatok) és olyan dolgozók, akik némán futtak, és azt tapasztaltuk, hogy akár öt évig is Miért fontosabb ez, mint gondolnád? Igen, a felesleges infrastruktúra működtetése pénzbe kerül, és egy gyors számítást végeztem, és az egyik dolgozóért 5 év alatt ~360-600 dollárt fizettünk volna. Ez egy szerény összeg a pénzügyeink nagy rendszerében, de minden bizonnyal tiszta pazarlás egy olyan folyamatért, amely a legnagyobb költséggel jár. Minden alkalommal, amikor egy új mérnök csatlakozik a csapathoz, és felfedezi a rendszereinket, ezekkel a rejtélyes folyamatokkal találkozik. "Mit csinál ez a dolgozó?" Ez ahhoz vezetett, hogy csapatunk olyan karbantartási ciklusokat költ, amelyek nem szolgáltak célt. És az idő múlásával az intézményi ismeretek elhalványultak. Ez egy átmeneti megoldás volt, amely évekkel ezelőtt elhagyta a céget, és a kontextus is megmaradt velük. Hogyan történik ez? Valaki "ideiglenesen" felpörgeti az áttelepítést, és soha nem szakad le. Az ütemezett feladat az építészeti változtatást követően feleslegessé válik, de senkinek nem jut eszébe, hogy ellenőrizze. Ennek érdekében végrehajtottunk egy ütemezett feladatot, amely a személyes születésnapoknak megfelelő 20-as e-mailt küldött tranzakciós e-mail eszköz, de elfelejtette eltávolítani ezt a dolgozót – még öt évig futott. Ezek egyike sem az egyének hibája – ezek a folyamatok kudarcai. A munkamódszereinkbe épített szándékos tisztítás nélkül az entrópia győz. Hogyan segített megtalálni az architektúránkat. Sok vállalathoz hasonlóan a Buffer is felkarolta a mikroszolgáltatások mozgalmát (egy népszerű megközelítés, ahol a cégek különálló szolgáltatásainkat évekkel ezelőtt szétosztották). mindegyik saját tárolóval, telepítési folyamattal és infrastruktúrával volt értelme: minden szolgáltatást önállóan lehetett telepíteni, a csapatok között egyértelmű határokat szabtak. Az évek során azonban rájöttünk, hogy a több tucatnyi adattár kezelésének költsége meghaladja a mi méretű csapatunk előnyeit Ez tette lehetővé a felfedezést. A mikroszolgáltatások világában minden egyes adattár a saját szigete. Lehet, hogy a másikban dolgozó mérnökök soha nem veszik észre a sorneveket, nincs egységes nézet arról, hogy mi fut észrevehető sorok a gyártókkal, de nem fogyasztók. Találtunk olyan dolgozókat, akik már nem létező sorokra hivatkoztak. A konszolidációt nem arra tervezték, hogy segítsen megtalálni a zombi-infrastruktúrát – de ez sikerült.a felfedezés szinte elkerülhetetlen. Amit valójában csináltunk. Miután azonosítottuk az árva folyamatokat, el kellett döntenünk, hogy mit kezdjünk velük. Így közelítettük meg. Először mindegyik eredetét követtük nyomon. Átkutattuk a git történetét és a régi dokumentációt, hogy megértsük, miért jöttek létre az egyes munkások. A legtöbb esetben az eredeti cél egyértelmű volt: egyszeri adatmigráció, egy funkció, amely lejárt, egy ideiglenes megoldás, amely túlélte a hasznát. Aztán megerősítettük, hogy valóban nem használtak. Mielőtt bármit eltávolítottunk volna, naplózást adtunk hozzá, hogy ellenőrizzük, hogy ezek a folyamatok nem csinálnak-e csendben valami fontosat, amit elmulasztottunk. Néhány napig figyeltük, hogy egyáltalán nem hívják-e őket, és fokozatosan eltávolítottuk őket. Nem töröltünk mindent egyszerre. Egyenként távolítottuk el a folyamatokat, figyelve a váratlan mellékhatásokat. (Szerencsére nem volt ilyen.) Végül dokumentáltuk a tanultakat. Jegyzeteket adtunk a belső dokumentumainkhoz arról, hogy az egyes folyamatok mit csináltak eredetileg, és miért távolították el őket, így a jövőbeli mérnökök nem csodálkoznának azon, ha valami fontos eltűnne.Mi változott a tisztítás után Még korán vagyunk a teljes hatás mérésében, de íme, amit eddig láttunk.Infrastruktúra-leltárunk már pontos. Amikor valaki megkérdezi: "Milyen munkásokat vezetünk?" valójában magabiztosan válaszolhatunk erre a kérdésre.A bevezető beszélgetések is egyszerűbbé váltak. Az új mérnökök nem botlanak titokzatos folyamatokba, és nem azon töprengenek, hogy nem hiányzik-e a kontextus. A kódbázis azt tükrözi, amit valójában csinálunk, nem azt, amit öt évvel ezelőtt tettünk. Kezelje a refaktorokat régészetként és megelőzésként. A legnagyobb hozam ebből a projektből: minden jelentős refaktor egy lehetőség a régészet számára. Ha mélyen van egy rendszerben, és igazán megérti, hogyan kapcsolódnak egymáshoz a darabok, akkor tökéletes helyzetben van, hogy megkérdőjelezze, mire van még szükség. Ez a várólista valami régi projektből? Az egyszeri adatmigrációhoz létrehozott dolgozó? Az ütemezett feladat, amely egy olyan funkcióra hivatkozik, amelyről még soha nem hallott? Lehet, hogy még mindig futnak. A következőképpen építjük be a folyamatunkat: Bármely átalakítás során kérdezze meg: mi más érinti még ezt a rendszert, amit már régóta nem néztünk meg? Amikor egy szolgáltatást megszüntetünk, kövesse nyomon a háttérfolyamatokat, ne csak a felhasználói kódot. Ha valaki elhagyja a csapatot, dokumentálja, hogy mi volt a felelős, különösen a régebbi részekben, amelyek még futottak a kódunkban. még áttelepült az egyetlen tárolóba. Ahogy folytatjuk a konszolidációt, biztosak vagyunk benne, hogy még több ilyen rejtett relikviát fogunk találni. De most úgy készültünk, hogy elkapjuk őket, és megakadályozzuk az újak kialakulását. Amikor az összes kód egy helyen él, az árva infrastruktúrának nincs hova bújnia.

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