Choisir Azure Event Hubs

Effectué

Il existe des applications qui génèrent un nombre massif d’événements à partir de presque autant de sources. Nous entendons souvent l’expression « Big Data » en lien avec ces situations, dont la gestion requiert une infrastructure unique.

Imaginons que vous travaillez pour Contoso Aircraft Engines. Les moteurs que votre employeur fabrique comprennent des centaines de capteurs. Avant qu’un avion puisse décoller, ses moteurs sont connectés à un atelier de test et mis à l’épreuve. De plus, les données de vol mises en cache sont diffusées quand l’appareil est connecté au matériel terrestre.

Vous souhaitez utiliser les données historiques des capteurs afin d’identifier dans les relevés des capteurs des modèles indiquant qu’une panne de moteur risque de se produire bientôt. Vous souhaitez que les lectures en temps réel des capteurs soient comparées à ces modèles de défaillance. Vous pouvez ensuite avertir les utilisateurs en quasi temps réel si les relevés d’un moteur sont préoccupants.

Qu’est-ce qu’Azure Event Hubs ?

Event Hubs est un intermédiaire pour le modèle de communication de publication et d’abonnement. Cependant, contrairement à Event Grid, il est optimisé pour un débit très élevé, pour un nombre élevé d’émetteurs, et pour la sécurité et la résilience.

Si Event Grid convient bien au modèle de publication-abonnement en cela qu’il se contente de gérer les abonnements et de router les communications vers les abonnés, Event Hubs offre des services supplémentaires. Ces services supplémentaires le font plus ressembler à un bus de services ou à une file d’attente de messages qu’à un simple diffuseur d’événements.

Partitions

À mesure qu’il reçoit des communications, Event Hubs les divise en partitions. Les partitions sont des mémoires tampons dans lesquelles les communications sont enregistrées. Avec les mémoires tampons d’événements, les événements ne sont pas éphémères, et ne sont pas manqués juste parce qu’un abonné est occupé ou hors connexion. L’abonné peut toujours utiliser la mémoire tampon pour « rattraper son retard ». Par défaut, les événements restent dans la mémoire tampon pendant 24 heures avant d’expirer automatiquement. Les mémoires tampons sont appelées partitions parce que les données sont réparties entre elles. Chaque partition a un ensemble d’abonnés distinct.

Capture

Event Hubs peut envoyer tous vos événements immédiatement à Azure Data Lake ou au stockage Blob Azure pour les conserver de façon permanente à moindre coût.

Authentification

Tous les éditeurs sont authentifiés et reçoivent un jeton. Cela signifie qu’Event Hubs peut accepter des événements d’appareils externes et d’applications mobiles, sans vous inquiéter que des données frauduleuses en provenance de plaisantins puissent gâcher votre analyse.

Utilisation d’Event Hubs

Event Hubs prend en charge l’acheminement par pipeline de flux d’événements vers d’autres services Azure. Son utilisation avec Azure Stream Analytics permet, par exemple, d’effectuer une analyse complexe des données en quasi temps réel, avec la possibilité de corréler plusieurs événements et de rechercher des modèles. Dans ce cas, Stream Analytics serait considéré comme un abonné.

Pour nos moteurs d’avion, nous allons configurer notre architecture de façon à ce qu’Event Hubs authentifie les communications en provenance des moteurs. Ensuite, nous lui ferons utiliser une capture pour enregistrer toutes les données dans Data Lake. Ultérieurement, nous pourrons utiliser toutes les données pour réentraîner et améliorer nos modèles Machine Learning. Enfin, les abonnés Stream Analytics prélèvent nos flux d’événements. Stream Analytics utilise notre modèle Machine Learning pour rechercher des modèles pouvant indiquer des problèmes dans les données des capteurs.

Comme nous avons plusieurs partitions et que chaque moteur envoie toutes ses données à une seule d’entre elles, chaque instance de notre abonné Stream Analytics ne s’occupe que d’une partie de nos données globales. Il n’a pas besoin de filtrer et de corréler la totalité de celles-ci.

Quel service dois-je choisir ?

Comme le choix de la file d’attente, la sélection d’un de ces deux services de remise d’événement peut sembler difficile à première vue. Les deux solutions prennent en charge la sémantique Au moins une fois.

Choisissez Event Hubs si :

  • Vous avez besoin de prendre en charge l’authentification d’un grand nombre d’éditeurs.
  • Vous devez enregistrer un flux d’événements dans Data Lake ou le stockage Blob.
  • Vous avez besoin d’une agrégation ou d’une analyse de votre flux d’événements.
  • Vous avez besoin d’une messagerie ou d’une résilience fiables.

Sinon, si vous avez besoin d’une infrastructure simple de publication-abonnement d’événements avec des éditeurs approuvés (par exemple votre propre serveur web), vous devriez choisir Event Grid.

Event Hubs vous permet de créer un pipeline Big Data capable de traiter des millions d’événements par seconde avec une faible latence. Il peut gérer des données provenant de sources concurrentes et les router vers différentes infrastructures de traitement des flux et différents services d’analytique. Il permet un traitement en temps réel et prend en charge la relecture répétée de données brutes stockées.