Recentment hem iniciat un petit projecte per netejar com es comuniquen parts dels nostres sistemes entre bastidors a Buffer. Algun context ràpid: utilitzem una cosa anomenada SQS (Amazon Simple Queue Service. Aquestes cues actuen com a sales d'espera per a tasques. Una part del nostre sistema deixa un missatge i una altra el recull més tard. Penseu en això com si deixeu una nota per a un company de feina quan envieu aquestes dades al sistema: La nota no ha d'esperar una resposta. El nostre projecte era realitzar un manteniment rutinari: actualitzar les eines que utilitzem per provar cues localment i netejar-ne la configuració. Però mentre estàvem traçant el mapa de quines cues utilitzem realment, vam trobar alguna cosa que no esperàvem: set processos de fons diferents (o tasques cron, que són tasques programades que s'executen automàticament) i els treballadors no havien fet res durant cinc anys Útil. A continuació, s'explica per què és important, com els hem trobat i què hem fet al respecte. Per què això és més important del que es pensaria. Sí, fer un càlcul ràpid i per a un d'aquests treballadors hauríem pagat entre 360 i 600 dòlars durant 5 anys. La neteja, diria que el cost financer és en realitat la part més petita del problema. Cada vegada que un nou enginyer s'uneix a l'equip i explora els nostres sistemes, es troben amb aquests misteriosos processos "Què fa aquest treballador es converteix en una pregunta que consumeix el temps d'incorporació i crea incertesa, ja que tots hem estat allà, mirant-hi alguna cosa important". La infraestructura "oblidada" de vegades necessita atenció. Actualitzacions de seguretat, problemes de dependència, correccions de compatibilitat quan canvia alguna cosa, això va fer que el nostre equip gastés cicles de manteniment que no serveixen per a res. I amb el temps, el coneixement institucional es va esvair. La veritat és que això passa de manera natural en qualsevol sistema de llarga durada. Una funció queda obsoleta, però el treball de fons que l'admetia continua funcionant "temporalment" per gestionar una migració i mai s'elimina Una tasca programada es torna redundant després d'un canvi arquitectònic, però ningú pensa en comprovar-ho per a la celebració base de dades sencera per als aniversaris que coincideixen amb la data actual i enviat als clients un correu electrònic personalitzat. Durant un refactor el 2020, vam canviar la nostra eina de correu electrònic transaccional, però ens vam oblidar d'eliminar aquest treballador; va continuar funcionant durant cinc anys més. Cap d'aquests són errors d'individus: sense una neteja intencionada integrada a la nostra manera de treballar, l'entropia va ajudar a trobar-ho a moltes empreses. Moviment de microserveis (un enfocament popular en què les empreses dividien el seu codi en molts serveis independents) fa anys. Vam dividir el nostre monòlit en serveis separats, cadascun amb el seu propi dipòsit, canal de desplegament i infraestructura. En aquell moment, tenia sentit: cada servei es podia desplegar per si mateix, amb límits clars entre equips en un dipòsit únic multiservei. Els serveis encara existeixen com a límits lògics, però conviuen en un mateix lloc. Això va resultar ser el que va fer possible el descobriment. En el món dels microserveis, cada dipòsit és la seva pròpia illa. Els enginyers que treballen en un altre mai no poden veure un únic repositori, on no hi ha cap repositori. Finalment vam poder veure la imatge completa. Podríem rastrejar cada cua fins als seus consumidors i productors. Podríem trobar cues amb productors, però sense consumidors. Podríem trobar treballadors que ja no existien. La consolidació no va ser dissenyada per ajudar-nos a trobar una infraestructura zombi.descobriment gairebé inevitable. Què vam fer realmentUn cop identificats els processos orfes, vam haver de decidir què fer-hi. Així és com l'hem abordat. Primer, hem traçat cadascuna fins al seu origen. Vam explorar la història de git i la documentació antiga per entendre per què es va crear cada treballador en primer lloc. En la majoria dels casos, el propòsit original era clar: una migració de dades única, una funció que es va posar de sol, una solució temporal que va sobreviure a la seva utilitat. Aleshores vam confirmar que realment no s'utilitzaven. Abans d'eliminar qualsevol cosa, vam afegir el registre per verificar que aquests processos no estaven fent en silenci alguna cosa important que ens havíem perdut. Vam fer un seguiment durant uns dies per assegurar-nos que no fossin trucats en absolut i els vam eliminar gradualment. No ho hem esborrat tot alhora. Vam eliminar els processos un per un, vigilant els efectes secundaris inesperats. (Per sort, no n'hi havia.) Finalment, vam documentar el que vam aprendre. Hem afegit notes als nostres documents interns sobre què havia fet originalment cada procés i per què s'ha eliminat, de manera que els futurs enginyers no es pregunten si ha faltat alguna cosa important. Què ha canviat després de la neteja Encara estem aviat per mesurar l'impacte total, però això és el que hem vist fins ara. El nostre inventari d'infraestructura ara és precís. Quan algú pregunta: "Quins treballadors gestionem?" De fet, podem respondre aquesta pregunta amb confiança. Les converses d'incorporació també s'han tornat més senzilles. Els nous enginyers no ensopeguen amb processos misteriosos i es pregunten si els falta context. La base de codi reflecteix el que realment fem, no el que vam fer fa cinc anys. Tracta els refactors com a arqueologia i prevenció. La meva principal conclusió d'aquest projecte: cada refactor significatiu és una oportunitat per a l'arqueologia. Quan estàs endinsat en un sistema, entenent realment com es connecten les peces, estàs en la posició perfecta per qüestionar-te què encara es necessita. Aquella cua d'algun projecte antic? El treballador que algú va crear per a una migració de dades única? La tasca programada que fa referència a una funció de la qual mai no heu sentit a parlar? És possible que encara estiguin en execució. Això és el que estem incorporant al nostre procés a partir d'ara: durant qualsevol refactorització, pregunteu: què més afecta aquest sistema que fa temps que no hem mirat? Quan deixeu d'utilitzar una funció, rastregeu-la fins als processos en segon pla, no només al codi orientat a l'usuari. Quan algú surti de l'equip, documenteu el que estaven al capdavant de les parts que encara tenim en segon pla. base de codi que encara no s'han migrat al repositori únic. A mesura que continuem consolidant-nos, estem segurs que trobarem més d'aquestes relíquies amagades. Però ara estem preparats per detectar-los i evitar que se'n formin de nous. Quan tot el vostre codi viu en un sol lloc, la infraestructura orfe no té on amagar-se.

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