Développement d’applications modernes - axé sur les événements

Le modèle d'application orienté événements vous permet de réagir en temps quasi réel aux modifications apportées à vos ressources cloud et aux événements générés par votre application.

Un événement désigne toute occurrence ou modification importante d'un système, par exemple un objet nouvellement créé dans le stockage d'objets ou une alerte de performance dans votre application. Ce modèle d'application présente les principes de conception et l'architecture nécessaires à la création d'applications évolutives, sécurisées, fiables et performantes orientées événements.

Oracle Cloud Infrastructure (OCI) fournit des services tels qu'OCI Service Connector Hub et OCI Events pour vous aider à créer des applications orientées événements. OCI Service Connector Hub vous permet de créer des connecteurs de service pour déplacer des données entre des services. Un connecteur de service indique le service source contenant les données à déplacer, les tâches facultatives et le service cible pour la distribution des données une fois les tâches terminées. Il peut s'agir, par exemple, d'une tâche de fonction pour traiter les données de la source ou d'une tâche de filtre de journal pour filtrer les données de journal de la source. Les services source pris en charge pour les connecteurs de service incluent OCI Monitoring, OCI Logging et OCI Streaming. Exemples de services cible : fonctions OCI, notifications OCI et stockage d'objets OCI. Vous pouvez utiliser les événements OCI pour générer des événements de modification des ressources pouvant être assimilés par des connecteurs de service à l'aide de flux. De même, votre application peut déclencher des événements personnalisés et utiliser des flux de données pour les acheminer vers des connecteurs de service.

Principes de conception

Utilisez les principes de développement d'applications modernes suivants lors de la conception de l'architecture pour votre application orientée événement :

  • Utilisez des plates-formes low-code si possible et, si ce n'est pas le cas, utilisez des langages de programmation matures et des structures légères

    Décrivez vos données d'événement à l'aide de CloudEvents, un format ouvert et standard. CloudEvents vous permet de décrire les données d'événement dans un format cohérent et largement utilisé et de fournir des kits SDK pour plusieurs langages de programmation, dont Java. Les événements créés à l'aide d'Oracle Cloud Infrastructure Events utilisent le format CloudEvents.

  • Utiliser des services gérés pour éliminer la complexité du développement et des opérations d'applications

    Utilisez des services gérés pour communiquer, traiter et conserver les données d'événement.

    Utilisez OCI Service Connector Hub pour orchestrer le mouvement des données entre les services. Utilisez des services gérés tels qu'OCI Functions ou Oracle Container Engine for Kubernetes (OKE) pour traiter les événements. Utilisez OCI Notifications pour connecter des connecteurs de service à des services en aval tels que les courriels, les SMS, Slack ou PagerDuty.

  • Surveillance et traçage de bout en bout des instruments

    Un routeur d'événements tel qu'OCI Service Connector Hub et OCI Events génère des mesures dans OCI Monitoring, ce qui facilite la surveillance des événements d'application et la création de mesures et d'alarmes personnalisées. Pour une fonction de trace distribuée de bout en bout, créez des tableaux de bord personnalisés avec des règles de journalisation (OCI Logging Analytics) ainsi qu'une surveillance basée sur les alarmes (notifications OCI) afin de permettre aux administrateurs de repérer les problèmes et de réagir rapidement. En outre, un routeur d'événements offre la possibilité unique de fournir une vue unique de l'empreinte de l'événement.

Architecture

Cette architecture utilise des principes de développement d’applications modernes pour créer des applications basées sur les événements.



architecture à événement fou-oracle.zip

L'architecture comporte les composants suivants :

  • Transmission en continu

    Oracle Cloud Infrastructure Streaming est une solution de stockage entièrement gérée, évolutive et durable permettant d'assimiler des flux de données hauts volumes continus que vous pouvez utiliser et traiter en temps réel. Vous pouvez utiliser Streaming pour l'ingestion de données volumineuses, telles que les journaux d'application, la télémétrie opérationnelle, les données de flux de clics sur le Web, ou pour d'autres cas d'emploi où des données sont produites et traitées de manière continue et séquentielle selon un modèle d'échange de messages de type publication/abonnement.

  • Fonctions

    Oracle Cloud Infrastructure Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est optimisé par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code, puis de l'appeler directement ou de le déclencher dans le cadre d'événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • Connecteurs de service

    Oracle Cloud Infrastructure Service Connector Hub est une plate-forme cloud de bus de messages qui orchestre les déplacements de données entre les services dans OCI. Vous pouvez utiliser des connecteurs de service pour déplacer des données d'un service source vers un service cible. Les connecteurs de service vous permettent également de spécifier une tâche (telle qu'une fonction) à effectuer sur les données avant leur transmission au service cible.

    Vous pouvez utiliser Oracle Cloud Infrastructure Service Connector Hub pour créer rapidement une structure d'agrégation de journalisation pour les systèmes SIEM.

  • Vous pouvez utiliser des connecteurs de service pour déplacer des données d'un service source vers un service cible. Les connecteurs de service vous permettent également de spécifier une tâche (telle qu'une fonction) à effectuer sur les données avant leur transmission au service cible.
  • Notifications

    Le service Oracle Cloud Infrastructure Notifications diffuse des messages aux composants distribués par le biais d'un modèle de publication/d'abonnement qui délivre des messages sécurisés, durables, extrêmement fiables et à faible latence pour les applications hébergées sur Oracle Cloud Infrastructure.

Exemple de cas d'utilisation

L'exemple d'utilisation Alarm on Log Data adopte l'architecture orientée événements pour implémenter des alarmes pour les données de journal à l'aide des services Oracle Cloud Infrastructure (OCI) Service Connector Hub, OCI Logging et OCI Monitoring.

Ce cas d'emploi crée un connecteur de service et une alarme. Le connecteur de service (OCI Service Connector Hub) traite et déplace les données de journal d'OCI Logging vers OCI Monitoring pendant l'exécution de l'alarme lors de la réception des données de journal. Pour plus de détails, reportez-vous au lien vers le scénario dans la rubrique Explorer plus.



cas d'emploi axé sur les événements : oracle.zip

Déploiement

Universal Health Organization (UHO) est un exemple d'application qui respecte les principes de Modern App Development Framework. En particulier, il implémente des éléments des modèles d'architecture Web ou mobiles, de messagerie et orientés événements et est disponible sur GitHub.
  1. Accédez à GitHub.
  2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
  3. Suivez les instructions du document README.

Journal des modifications

Ce journal répertorie les modifications importantes :