Applications pilotées par les événements

Développer des applications sur AWS

Ricardo Sueiras

Principal Technologist

Qu'est-ce qu'un événement ?

 

événements vs messages

  • Un message est une unité de travail échangée entre composants.
  • Un événement consigne quelque chose qui s'est déjà produit.
  • Les services communiquent en publiant des événements.
  • D'autres services réagissent à ces événements de façon indépendante.
  • Le découplage réduit les dépendances et améliore l'évolutivité.
Développer des applications sur AWS

Producteurs d'événements

 

producteurs d'événements

  • Les producteurs créent et publient des événements quand des actions surviennent.
  • Les services AWS et les applications maison peuvent produire des événements.
  • Téléverser un fichier dans Amazon S3 en est un exemple.
  • Amazon S3 émet alors un événement « object-created ».
Développer des applications sur AWS

Consommateurs d'événements

 

consommateurs

  • Les consommateurs reçoivent et traitent les événements de façon asynchrone.
  • Les sources d'événements utilisent différents modes de livraison.
  • Mode « push » : livraison immédiate des événements.
  • Mode « poll » : les consommateurs récupèrent les événements lors de l'interrogation.
Développer des applications sur AWS

Mappage de source d'événements

  • AWS Lambda est un consommateur d'événements courant.
  • Il interroge les sources et récupère automatiquement des lots d'enregistrements.

 

mappage de source d'événements

Développer des applications sur AWS

Ajuster les mappages de sources pour Lambda

  • Ajustez les mappages de sources pour améliorer le débit.
  • Modifiez la taille des lots pour contrôler les enregistrements par appel.
  • Configurez les reprises pour les enregistrements en échec.
  • Utilisez les réponses partielles de lots sur les sources prises en charge.
  • ReportBatchItemFailures évite de retraiter les enregistrements réussis.

 

mappage de source d'événements

Développer des applications sur AWS

Amazon EventBridge

  • EventBridge achemine les événements entre services et applications.
  • Il permet un routage dynamique sans couplage serré des services.
  • Les applications publient leurs événements vers EventBridge.
  • Des règles de routage décident quelles cibles reçoivent chaque événement.

 

event bridge

Développer des applications sur AWS

Capacités d'EventBridge

 

capacités

  • EventBridge offre plusieurs capacités de routage.
  • Les règles diffusent un événement vers de multiples cibles.
  • Les règles planifiées évitent d'avoir des serveurs cron.
  • Les horaires prennent en charge rate(), at() et cron().
  • Les « Pipes » offrent une intégration point à point.
  • Les « Pipes » permettent aussi filtrage et transformation.
Développer des applications sur AWS

Autobus d'événements

 

autobus d'événements

  • Différents autobus d'événements optimisent l'acheminement.
  • L'autobus par défaut reçoit les événements des services AWS.
  • Les autobus personnalisés transportent les événements propres aux applications.
  • Les autobus partenaires reçoivent ceux de fournisseurs tiers.
  • Des règles se trouvent entre chaque autobus et ses cibles.
Développer des applications sur AWS

Découverte de schémas

 

schéma d'événement et registre

  • Producteurs et consommateurs évoluent souvent indépendamment.
  • Comprendre la structure des événements est essentiel.
  • La découverte de schémas capte la structure des événements entrants.
  • Utilisez-la pour inspecter les charges utiles d'événements.
  • Utilisez-la pour valider les intégrations.
  • Utilisez-la pour générer des liaisons pour les langages pris en charge.
Développer des applications sur AWS

Registre de schémas

  • Le registre de schémas stocke vos schémas d'événements.
  • Il aide les développeurs à comprendre la structure et à générer des liaisons.

 

schéma d'événement et registre

Développer des applications sur AWS

Filtrage des événements

  • Le filtrage réduit le traitement inutile.
  • Définissez des correspondances avec des modèles d'événements JSON.
  • Les modèles ne font correspondre que les événements voulus.
  • Les systèmes en aval ne traitent alors que les événements pertinents.

 

filtrage d'événements

Développer des applications sur AWS

Ordonnancement des événements

  • L'ordre des événements n'est pas toujours garanti.
  • Certains services peuvent traiter les événements hors séquence.
  • Utilisez des contrôles d'ordonnancement pour imposer la séquence.

 

ordonnancement des événements

Développer des applications sur AWS

Archivage et relecture d'événements

 

archivage et relecture

  • EventBridge peut archiver et relire des événements plus tard.
  • Relisez des événements pour récupérer d'un échec.
  • Relisez des événements pour tester de nouveaux consommateurs.
  • Relisez des événements pour reconstruire les systèmes en aval.
Développer des applications sur AWS

Gestion des erreurs

 

gestion des erreurs

  • Les applis pilotées par événements doivent gérer les erreurs en toute sécurité.
  • Les échecs incluent des événements en double.
    • Traitements échoués.
    • Consommateurs indisponibles.
  • Concevez les consommateurs pour être idempotents autant que possible.
Développer des applications sur AWS

DLQ et destinations

 

gestion des erreurs

  • Utilisez des DLQ pour isoler les événements en échec répété.
  • Dans EventBridge, les DLQ sont configurées par cible de règle, pas par fonction.
  • Les Destinations Lambda étendent ce routage.
  • Les Destinations routent les résultats de succès et d'échec.
Développer des applications sur AWS

Tester et valider les événements

  • Tester les applis pilotées par événements valide le routage.
  • Valide aussi le filtrage des événements.
  • Valide aussi les reprises sur erreur.
  • Confirme le traitement à travers les systèmes distribués.
  • Utilisez AWS SAM pour générer des événements d'essai.
  • Les exemples reproduisent exactement la sortie JSON.

 

tests

Développer des applications sur AWS

Quoi tester

  • SAM vous permet de tester localement avant le déploiement.
  • Validez la correspondance des modèles d'événements.
  • Validez le comportement de reprise.
  • Validez les scénarios d'étranglement.
  • Validez la livraison d'événements en double.
  • Validez le comportement idempotent des consommateurs.

 

tests

Développer des applications sur AWS

Passons à la pratique !

Développer des applications sur AWS

Preparing Video For Download...