Els logs i les mètriques (subcapítols 24.1 i 24.2) estan molt bé quan la teva aplicació és una sola peça. Però les arquitectures modernes es componen de molts serveis que col·laboren: una petició passa per un balancejador, després per una Lambda, que en crida una altra, que consulta una base de dades, que escriu en una cua... Quan alguna cosa va lenta o falla, en quina part del recorregut hi ha el problema? Per respondre a això existeix el traçat distribuït, i a AWS l’eina és X-Ray.

El problema: el viatge d’una petició per molts serveis

Recorda els microserveis i les arquitectures desacoblades que hem vist (Lambda al Capítol 14, missatgeria al 15, contenidors al 17). Una sola petició d’un usuari pot recórrer molts components:

Usuari → API Gateway → Lambda A → Lambda B → Base de dades
                              └──→ Cua SQS → Lambda C

Si aquesta petició triga 5 segons (massa), on és la lentitud? A Lambda A? A la base de dades? A Lambda B? Amb logs solts de cada servei és molt difícil reconstruir el viatge complet i veure on es perd el temps. Necessites seguir el rastres d'aquesta petició concreta a través de tot el sistema.

Què és el traçat distribuït

El traçat distribuït (distributed tracing) consisteix a seguir una petició al llarg de tots els serveis pels quals passa, mesurant quant triga en cadascun. El resultat és una traça: el mapa complet del viatge d'aquesta petició, amb els temps de cada etapa.

Traça d’una petició (quant va trigar a cada part):
   API Gateway   ▕█▏           20 ms
   Lambda A      ▕███▏         80 ms
   Lambda B      ▕██▏          50 ms
   Base de dades ▕██████████▏ 4.500 ms  ← aquí hi ha el problema!
   ──────────────────────────────────
   TOTAL: ~4.650 ms

Analogia: el traçat distribuït és com el seguiment d’un paquet que envies per missatgeria. No només saps que va trigar 3 dies: veus cada etapa del recorregut —«recollit a origen (1h), al centre logístic A (2 dies ⚠️), en repartiment (3h), lliurat»— i descobreixes exactament on es va quedar encallat. Sense aquest seguiment, només sabries que va trigar molt, sense saber per què.

Què és X-Ray

AWS X-Ray és el servei de traçat distribuït d’AWS. Segueix les peticions a través dels teus serveis (Lambda, API Gateway, ECS, etc.) i et mostra:

  • Un mapa de serveis: un diagrama visual de com es connecten els teus components i com flueixen les peticions entre ells.
  • Les traces detallades: el viatge de cada petició, amb el temps que va passar a cada servei.
  • On són els colls d’ampolla i els errors: quina part és lenta o falla.
   Mapa de serveis de X-Ray:

   [API Gateway] ──► [Lambda A] ──► [Base de dades] 🔴 lenta
                          └──────► [Lambda B] ✓

X-Ray acoloreix i marca els serveis segons la seva salut (verd = bé, vermell = problemes), així que d’una ullada veus on mirar.

Per a què serveix X-Ray

  • Trobar colls d’ampolla: veure exactament quin servei fa que una petició sigui lenta (com la base de dades de l’exemple).
  • Localitzar errors: veure en quin punt del recorregut es produeix una fallada.
  • Entendre la teva arquitectura: el mapa de serveis mostra com es connecten realment els teus components (de vegades sorprèn veure dependències que no recordaves).
  • Optimitzar el rendiment: mesurar i millorar les parts lentes amb dades concretes, no a ull.

Exemple del món real: una aplicació de reserves es queixa que «la pàgina de confirmació triga molt». L’equip activa X-Ray. La traça revela que la petició passa per quatre serveis, i que el 90 % del temps se’n va en una crida a un servei extern de pagament que respon lent. El problema no era al seu codi, sinó en una dependència externa. Amb aquesta dada, afegeixen una resposta «en procés» mentre el pagament es confirma en segon pla, i la pàgina torna a ser ràpida. Sense X-Ray, haurien perdut dies buscant el problema al lloc equivocat.

X-Ray davant de logs i mètriques

Els tres es complementen i responen preguntes diferents:

Eina Pregunta que respon
Mètriques (24.1) Quant? (CPU, errors, latència total)
Logs (24.1) Què va passar exactament en un servei? (el detall)
Traces / X-Ray (aquest) Per on va passar la petició i on es va alentir?

Mètriques, logs i traces són els tres pilars de l’observabilitat. Les mètriques t’alerten que alguna cosa va malament en general, les traces et diuen en quin servei del recorregut hi ha el problema, i els logs d’aquest servei et donen el detall de la causa.

El que has de recordar

  • En arquitectures de molts serveis, una petició recorre diversos components, i és difícil saber on hi ha un problema de lentitud o error només amb logs solts.
  • El traçat distribuït segueix una petició al llarg de tots els serveis pels quals passa, mesurant el temps en cadascun. El resultat és una traça (el mapa del viatge). Com el seguiment d’un paquet.
  • AWS X-Ray és el servei de traçat distribuït d’AWS: ofereix un mapa de serveis visual, traces detallades amb temps per etapa, i marca colls d’ampolla i errors.
  • Serveix per trobar colls d’ampolla, localitzar errors, entendre la teva arquitectura real i optimitzar el rendiment amb dades.
  • Mètriques (quant), logs (què/detall) i traces (per on/on s’alenteix) són els tres pilars de l’observabilitat i es complementen.

Al següent subcapítol veurem un estàndard obert que unifica logs, mètriques i traces sense lligar-te a un proveïdor: OpenTelemetry.

Cloud, AWS & Terraform — De zero a expert

Capítol 1 · Què és el cloud computing

Capítol 2 · El mercat cloud i els grans proveïdors

Capítol 3 · Regions, zones de disponibilitat i edge

Capítol 4 · Càlcul: EC2

Capítol 5 · Emmagatzematge: S3

Capítol 6 · Xarxes: VPC

Capítol 7 · Identitat i accés: IAM

Capítol 8 · Bases de dades gestionades

Capítol 9 · Per què Infraestructura com a Codi

Capítol 10 · HCL: el llenguatge de Terraform

Capítol 11 · Providers i estat

Capítol 12 · La teva primera infraestructura real amb Terraform

Capítol 13 · Balanceig de càrrega i autoescalat

Capítol 14 · Serverless amb Lambda

Capítol 15 · Missatgeria i esdeveniments

Capítol 16 · Lliurament de contingut i DNS

Capítol 17 · Contenidors a AWS

Capítol 18 · Mòduls: reutilització i composició

Capítol 19 · Workspaces i gestió d'entorns

Capítol 20 · Backends remots i locking

Capítol 21 · Testing d'infraestructura

Capítol 22 · Terraform en CI/CD

Capítol 23 · Seguretat en profunditat

Capítol 24 · Observabilitat: logs, mètriques i traces

Capítol 25 · Optimització de costos

Capítol 26 · Alta disponibilitat i disaster recovery

Capítol 27 · Well-Architected Framework d'AWS

Capítol 28 · Arquitectures serverless a escala

Capítol 29 · Plataformes de dades a AWS

Capítol 30 · Multi-compte i landing zones

Capítol 31 · Platform Engineering i Internal Developer Platform

Capítol 32 · Certificacions AWS rellevants

Capítol 33 · Projectes per consolidar el que s'ha après

Capítol 34 · Recursos i comunitat

© Copyright 2024. Tots els drets reservats