Nedávno jsme zahájili malý projekt na vyčištění toho, jak části našich systémů komunikují v zákulisí ve vyrovnávací paměti. Několik rychlých souvislostí: používáme něco, co se nazývá SQS (Amazon Simple Queue Service. Tyto fronty fungují jako čekárny na úkoly. Jedna část našeho systému odešle zprávu a druhá ji vyzvedne později. Představte si to jako zanechání poznámky pro spolupracovníka: "Hej, zpracujte, když systém dostane příležitost." Odpověď. Naším projektem bylo provádět běžnou údržbu: aktualizovat nástroje, které používáme k místnímu testování front a čištění jejich konfigurace. Ale když jsme mapovali, jaké fronty skutečně používáme, našli jsme něco, co jsme nečekali: sedm různých procesů na pozadí (neboli úlohy cron, což jsou naplánované úlohy, které se spouštějí automaticky) a pracovníci, kteří tiše běželi až pět let, a proč jsme na nich vůbec nic nedělali. na tom záleží víc, než byste si mysleliAno, provozování zbytečné infrastruktury stojí peníze. Provedl jsem rychlý výpočet a za jednoho z těchto pracovníků bychom zaplatili přibližně 360–600 $ v průběhu 5 let, ale rozhodně je to čisté plýtvání za proces, který nic nedělá. Nicméně po tomto vyčištění bych se domníval, že finanční náklady našeho týmu jsou ve skutečnosti tou nejmenší částí času a času prozkoumání našeho týmu. procesy. „Co dělá tento pracovník?“ se stává otázkou, která zabírá čas při nástupu a vytváří nejistotu. Všichni jsme tam byli – zírali jsme na kus kódu, protože možná dělá něco důležitého. I „zapomenutá“ infrastruktura občas potřebuje pozornost, když se něco jiného nezmění. Byla to dočasná oprava, která se stala trvalou? Osoba, která ji vytvořila, opustila společnost před lety a zůstal s ní kontext. Jak se to vůbec stalo? Je snadné ukazovat prstem, ale pravdou je, že se to děje přirozeně v jakémkoli systému s dlouhou životností. Funkce je zastaralá, ale úloha na pozadí, která ji podporovala, stále běží, ale nikdo ji po migraci nezmění a nezmění Zkontrolovali jsme. Ve službě Buffer jsme zasílali e-maily k narozeninám. K tomu jsme spustili naplánovanou úlohu, která zkontrolovala celou databázi na narozeniny odpovídající aktuálnímu datu a odeslala zákazníkům personalizovaný e-mail pomohl nám to najít Stejně jako mnoho společností i Buffer před lety přijal hnutí mikroslužeb (oblíbený přístup, kdy společnosti rozdělují svůj kód do mnoha malých, nezávislých služeb). Rozdělili jsme náš monolit na samostatné služby, z nichž každá měla své vlastní úložiště, potrubí pro nasazení a infrastrukturu. V té době to dávalo smysl: každá služba mohla být nasazena sama o sobě, s jasnými hranicemi mezi našimi týmy. Převyšovali jsme však nad hlavou výhody správy jednotlivých týmů, díky čemuž jsme zjistili, že celá řada výhod. Sjednotili jsme se do jediného úložiště s více službami, ale žijí společně na jednom místě. Ukázalo se, že to bylo to, co umožnilo objevování. Ve světě mikroslužeb je každý repozitář svým vlastním ostrovem Zapomenutý pracovník v jednom úložišti si technici pracující v jiném nikdy nevšimnou. zobrazit úplný obrázek Mohli jsme vysledovat každou frontu k jejím spotřebitelům a výrobcům. Mohli jsme najít fronty s výrobci, ale žádné zákazníky. Našli jsme pracovníky, kteří odkazovali na fronty, které již neexistovaly. Konsolidace nebyla navržena tak, aby nám pomohla najít infrastrukturu zombie.objev téměř nevyhnutelný. Co jsme vlastně udělali Jakmile jsme identifikovali osiřelé procesy, museli jsme se rozhodnout, co s nimi uděláme. Zde je návod, jak jsme k tomu přistoupili. Nejprve jsme u každého vystopovali jeho původ. Prokopali jsme historii git a starou dokumentaci, abychom pochopili, proč byl každý pracovník vůbec vytvořen. Ve většině případů byl původní účel jasný: jednorázová migrace dat, funkce, která přestala fungovat, dočasné řešení, které přežilo svou užitečnost. Pak jsme potvrdili, že se skutečně nepoužívají. Před odstraněním čehokoli jsme přidali protokolování, abychom ověřili, že tyto procesy nedělají potichu něco důležitého, co jsme přehlédli. Několik dní jsme monitorovali, abychom se ujistili, že nebyli vůbec voláni, a postupně jsme je odstraňovali. Nesmazali jsme všechno najednou. Procesy jsme odebírali jeden po druhém a sledovali jsme jakékoli neočekávané vedlejší účinky. (Naštěstí žádné nebyly.) Nakonec jsme zdokumentovali, co jsme se naučili. Do našich interních dokumentů jsme přidali poznámky o tom, co jednotlivé procesy původně dělaly a proč byly odstraněny, aby se budoucí technici nedivili, že něco důležitého zmizelo. Co se změnilo po vyčištění Stále jsme na začátku měření plného dopadu, ale zde je to, co jsme zatím viděli. Náš inventář infrastruktury je nyní přesný. Když se někdo zeptá: "Jaké pracovníky provozujeme?" můžeme na tuto otázku skutečně odpovědět s důvěrou. Také konverzace na palubě se zjednodušily. Noví inženýři nenarazí na záhadné procesy a nepřemýšlejí, zda jim nechybí kontext. Kódová základna odráží to, co skutečně děláme, ne to, co jsme dělali před pěti lety. Považujte refaktory za archeologii a prevenci Můj největší přínos z tohoto projektu: každý významný refaktor je příležitostí pro archeologii. Když jste hluboko v systému a skutečně rozumíte tomu, jak se jednotlivé části spojují, jste v perfektní pozici, kdy můžete zpochybnit, co je ještě potřeba. Ta fronta z nějakého starého projektu? Pracovník, který někdo vytvořil pro jednorázovou migraci dat? Naplánovaná úloha, která odkazuje na funkci, o které jste nikdy neslyšeli? Mohou být stále spuštěny. Zde je to, co zabudováváme do našeho procesu v budoucnu: Při jakémkoli refaktorování se zeptejte: co dalšího se tohoto systému dotýká, na co jsme se dlouho nedívali? Když zavrhujete funkci, sledujte ji celou cestu k jejím procesům na pozadí, ne pouze ke kódu pro uživatele. Když někdo opustí tým, zdokumentujte, co měl na starosti naši kódovou základnu, zejména ty části, které jsme dosud spouštěli na pozadí, které máme v migraci. zatím jediné úložiště. Jak pokračujeme v konsolidaci, jsme si jisti, že najdeme více těchto skrytých relikvií. Ale teď jsme připraveni je zachytit a zabránit vytváření nových. Když je celý váš kód na jednom místě, osiřelá infrastruktura se nemá kam schovat.

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