Ja coneixes SQS (cues) i SNS (notificacions). Ara veurem EventBridge, un servei d'esdeveniments més modern i potent que porta les idees de la missatgeria un pas més enllà. És la columna vertebral de moltes arquitectures dirigides per esdeveniments a AWS.

Què és EventBridge

EventBridge és un bus d'esdeveniments (event bus): una mena d’«autopista central» per on circulen esdeveniments de tota la teva aplicació i dels serveis d’AWS. Els serveis publiquen esdeveniments al bus, i EventBridge els dirigeix automàticament als destins adequats segons unes regles.

   Fonts d'esdeveniments           EventBridge                Destins
   ┌──────────────┐         ┌──────────────────┐        ┌──────────────┐
   │ La teva app  │ ──────► │   Event Bus       │ ─────► │ Lambda        │
   │ Serveis AWS  │ ──────► │  (+ regles que     │ ─────► │ Cua SQS       │
   │ Apps SaaS    │ ──────► │   filtren i enruten)│ ────► │ Topic SNS     │
   └──────────────┘         └──────────────────┘        │ Step Functions│
                                                         └──────────────┘

Analogia: EventBridge és com el sistema de classificació de correu d’una gran oficina. Arriben cartes (esdeveniments) de molts remitents. Un classificadors (les regles) llegeix cada carta i l’envia al departament correcte segons el seu contingut. Ningú ha de repartir a mà: el sistema enruta tot automàticament segons regles predefinides.

La peça clau: les regles

El cor d’EventBridge són les regles. Una regla diu: «quan arribi un esdeveniment que compleixi aquest patró, envia’l a aquest destí». EventBridge examina cada esdeveniment i, si coincideix amb el patró d’una regla, el dirigeix al seu destí.

Regla: "si l'esdeveniment és una comanda de més de 1000€"
        → enviar a la Lambda de revisió manual

Regla: "si l'esdeveniment és un nou usuari registrat"
        → enviar a la cua SQS de benvinguda

El que és interessant és que les regles filtren pel contingut de l’esdeveniment. Un esdeveniment és bàsicament un JSON amb dades, i la regla pot mirar aquestes dades:

{
  "source": "botiga.comandes",
  "detail-type": "ComandaCreada",
  "detail": {
    "import": 1500,
    "pais": "ES"
  }
}

Una regla podria dir: «envia a revisió manual els esdeveniments ComandaCreada amb import superior a 1000». EventBridge filtra i enruta automàticament, sense que tu escriguis codi de repartiment.

EventBridge vs SNS: en què es diferencien?

És la pregunta natural: SNS també difon missatges a diversos destins. Per a què EventBridge? Les diferències clau:

SNS EventBridge
Enrutament Tots els subscriptors reben tot Filtrat avançat pel contingut: cada destí rep només el que li interessa
Fonts El que tu publiquis La teva app + molts serveis d’AWS + apps SaaS externes
Regles Filtrat bàsic Regles potents basades en patrons de contingut
Enfocament Notificacions ràpides, alt rendiment Enrutament intel·ligent d’esdeveniments, integració

En resum: SNS és simple i rapidíssim per difondre; EventBridge és més sofisticat, amb filtrat avançat pel contingut i integració nativa amb desenes de serveis d’AWS i aplicacions externes.

Regla pràctica: fes servir SNS quan només necessitis difondre un missatge a diversos destins de forma simple i veloç. Fes servir EventBridge quan necessitis enrutar esdeveniments de forma intel·ligent segons el seu contingut, o integrar esdeveniments de serveis d’AWS i aplicacions SaaS.

Un avantatge enorme: esdeveniments dels propis serveis d’AWS

EventBridge té un superpoder: molts serveis d’AWS emeten esdeveniments a EventBridge automàticament. Això et permet reaccionar a coses que passen dins d’AWS sense programar res especial:

  • «Quan una instància EC2 canviï d’estat» → dispara una Lambda.
  • «Quan es pugi un objecte a S3» → enruta a un destí.
  • «Quan una tasca d’un servei acabi» → avisa a un sistema.

Exemple del món real: vols rebre una alerta a Slack cada cop que algú arrenca una instància EC2 gran (cara). Crees una regla a EventBridge: «quan un esdeveniment indiqui que s’ha llançat una instància de tipus gran, envia’l a una Lambda que avisi per Slack». No has de programar cap sistema de vigilància: EventBridge ja rep aquests esdeveniments d’AWS, tu només defineixes la regla.

Schedules: tasques programades

EventBridge també permet programar esdeveniments en el temps (el que abans s’anomenava «CloudWatch Events»). Pots llançar una acció segons un horari, com una tasca recurrent:

"Cada dia a les 02:00" → dispara la Lambda de còpia de seguretat
"Cada dilluns a les 09:00" → dispara l’informe setmanal

És la forma serverless del clàssic «cron» dels servidors: tasques que s’executen segons un calendari, sense necessitat d’un servidor encès vigilant el rellotge.

El que has de recordar

  • EventBridge és un bus d’esdeveniments: una «autopista central» on els serveis publiquen esdeveniments i EventBridge els enruta als seus destins segons regles.
  • Les regles filtren pel contingut de l’esdeveniment («si l’import > 1000 → revisió manual») i enruten automàticament, sense codi de repartiment.
  • Davant de SNS: EventBridge ofereix filtrat avançat pel contingut i integració nativa amb molts serveis d’AWS i apps SaaS. Fes servir SNS per a difusió simple i veloç; EventBridge per a enrutament intel·ligent i integracions.
  • Superpoder: molts serveis d’AWS emeten esdeveniments a EventBridge, cosa que et permet reaccionar al que passa dins d’AWS sense programar vigilància.
  • Amb schedules, EventBridge executa tasques programades (el «cron» serverless).

A l’últim subcapítol del capítol unirem totes aquestes peces (SQS, SNS, EventBridge) en els grans patrons que habiliten: pub/sub, desacoblament i saga.

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