Aquesta setmana, poques coses tècniques: s’acosten dies claus al sector elèctric i cal revisar que tots els processos funcionin correctament.
Per altra banda, tornem amb Python Girona! Ja tenim data pel Meetup del mes d’abril (aquest cop serà un dilluns) i es parlarà de django-lifecycle, una llibreria molt interessant per gestionar estats i transicions en models de Django.
Començo amb algunes recomanacions,
💾 Programari
TimeRetain: Una eina per fer timetracking centrada en la privacitat. No cal fer login ni s’emmagatzema res al núvol: tot es queda al navegador. Minimalista i molt pràctica.
🤔 Curiositats
Recordes els mítics botons GIF de 88x31 que es posaven a les pàgines dels anys 90 i 2000? Doncs en aquesta pàgina en trobaràs una bona col·lecció. Pura nostàlgia digital.
📦 Recursos
Debugant l’indebugable app: Aquest article explica totes les aproximacions utilitzades per fer enginyeria inversa a una aplicació i aconseguir debugar-la. Tant útil per aprendre com per saber com protegir-se d’aquestes pràctiques.
🌟 El concepte
Aquesta setmana vull parlar d’un concepte que ha anat guanyant pes en els darrers anys, especialment en sistemes complexos i distribuïts: l'observabilitat.
Tradicionalment, quan volíem saber si un sistema funcionava correctament, ens limitàvem a mesurar valors concrets: la CPU, la memòria, el temps de resposta... Això és el que coneixem com a monitoratge. És útil per detectar que alguna cosa va malament, però sovint no n’hi ha prou per saber què ho ha causat.
Aquí entra en joc un concepte més modern i potent: la observabilitat. Més que monitorar, l’observabilitat ens permet entendre què està passant dins del sistema observant-ne els efectes externs. És especialment important quan treballem amb arquitectures distribuïdes, microserveis o sistemes complexos.
🛠️ L’observabilitat es basa en tres pilars fonamentals:
Logs: registres textuals dels esdeveniments del sistema (errors, accions, missatges de depuració…).
Mètriques: valors numèrics que canvien amb el temps (temps de resposta, ús de CPU, quantitat de peticions…).
Traces: seguiment complet d’una petició a través dels diferents components del sistema (backend, serveis interns, base de dades...).
A diferència del monitoratge, que és reactiu i requereix definir a priori què volem vigilar, la observabilitat és proactiva: ens dona el context que necessitem per investigar qualsevol situació inesperada, fins i tot aquelles que no havíem previst.
A GISCE-TI hem apostat fort per aquest enfocament. Al nostre ERP, hem implementat un sistema de traça completa: cada petició que entra pel backend queda marcada amb un identificador únic que ens permet seguir-la fins a la base de dades, passant per tots els punts intermedis.
Utilitzem:
Sentry per detectar errors en temps real al backend, amb informació del context que envolta l’error.
Prometheus per recollir mètriques de serveis i processos i, a més, és l’eina que fem servir per definir i gestionar alertes automàtiques.
Grafana, on visualitzem les mètriques recollides amb dashboards dinàmics i accessibles a tot l’equip.
Aquest conjunt ens permet actuar ràpidament davant de qualsevol incidència i millorar la qualitat del nostre sistema de forma contínua. Però sobretot, ens dona tranquil·litat i una millor comprensió del que passa "sota el capó".
💖 Feedback
Si t’ha agradat i em vols ajudar, fes arribar aquest contingut a qui creguis que li pot interessar, i entra al canal de Telegram per comentar la publicació.