Pour gérer csystèmes distribués complexes, vous avez besoin pour pouvoir observer et comprendre ce qui se passe tous de le composants qui font le système. Observabilitécependant, dépend de l’hypothèse que chaque composant peut générer des informations sur ce qui se passe avec luiet dans un événementiel système, ça peut être assez ccompliqué.
Par exemple, si vous avez une application qui exécute l’activitéc’est-à-dire A, B et C et publie un message à un courtier d’événements, qui va ensuite dans une file d’attente, toi serait vouloir savoir ce qui s’est passé du début à la fin : de la papplication de publication, à et dans le courtier, jusqu’à l’application de réception, pour chaque transaction événement.
Avec ce billet de blog, je vais vous expliquer deux importance de l’observabilité dans le cadre de l’architecture événementielle (EDA) :
- Comment les courtiers d’événements peuvent-ils générer des informations sur ce qui se passe à l’intérieur du courtier et entre les microservices ?
- Comment pouvons-nous agir sur les informations générées à partir du comportement d’un système distribué complexe avec plusieurs courtiers d’événements dans le mélange ?
Pour répondre à ces deux questions, nous allons nous intéresser à deux technologies :
- Solace PubSub+ Event Broker : un courtier d’événements avancé qui permet une messagerie haute performance en temps réel dans un système EDA.
- Datadog : un backend d’observabilité basé sur le cloud utilisé pour collecter, traiter et visualiser les métriques, les journaux et les traces des applications et des systèmes.
Mais d’abord, couvrons un peu le contexte.
Introduction au traçage distribué
Avant plongée profonde dans le traçage distribué de événement–conduit systèmes, Je voudrais prendre du recul et couvrir certains concepts de base.
Traçage distribué (DT) est conçu pour vous permettre d’observer et comprend le voyage de des informations à travers un système distribué en générant et en collectant des informations sur ce se produit lorsqu’une information circule à travers le système. DT tombe sous l’égide du traçage, qui est, à son tour, l’un des trois piliers de l’observabilité. Objectifs d’observabilité pour comprendre ce qui se passe dans le système donc tu peux dire Qu’est ce qui ne s’est pas bien passé lorsque quelque chose se produit ou identifiez les goulots d’étranglement et trouvez comment les résoudre.
Un gros partie de la en augmentant popularité et importance d’observabilité, un framework ouvert indépendant du fournisseur était nécessaire. Ce cadre faciliterait le suivi des informations sur les événements transactionnels dans un système distribué et répondrait OpenTelemetry.
Il s’avère qu’un système asynchrone avec un courtier d’événements au cœur de l’architecture besoins OpenTelemetry résoudre des mystères dans l’ensemble des systèmes sur le flux des événements transactionnels.
Il existe une corrélation directe entre le degré de distribution dans le système et la complexité de l’observabilité du système. Observabilité avancée des outils comme Datadog améliorer la gestion du traçage de ces systèmes complexes en vous laissant surveiller, optimiser et étudier tous les différents composants du système. En cousant ensemble tracé données depuis à travers le système, les tableaux de bord de Datadog donner un oiseau‘s vue d’oeil de ce qui se passe. Cependant, avec Datadog leader dans le domaine de l’observabilité, il existe encore des lacunes dans l’industrie lorsqu’il s’agit de collecter des métriques auprès des courtiers d’événements dans événementiel systèmes.
Le traçage distribué rencontre l’architecture pilotée par les événements
Il ya trois niveaux à quelles traces peuvent être collectées dans un système événementiel :
- Niveau d’application; lors de l’exécution de la logique métier.
- API niveau; lors de la communication entre d’autres composants et services.
- Événement bniveau rocker; à chaque saut à l’intérieur du maillage événementiel.
L’avènement de OpénTélémétrie a conduit à beaucoup d’outils qui générer et collecter des informations de trace au niveau de l’application et de l’API. Pourtant, c’est été difficile à trace événements lorsqu’ils transitent par des systèmes événementiels parce que courtiers événementiels n’ont pas historiquement soutienéd OpenTemetry, ce qui laisse le composant Event Broker dans le système comme une boîte noire. En d’autres termes, l’observabilité dans ce scénario serait :
…l’événement est entré dans le broker (générer une trace !), l’événement est sorti du broker (générer une trace !)
Je vais donner toi un exemple: imaginer un site e-commerce qui offre à ses clients une variété de services de paiement. Pour soutenir cela, ils courent microservices sur différents fournisseurs de cloud et événements couler d’un service à l’autre. Ainsi, par exemple, une seule action, comme un utilisateur en cliquant payer sa commandedéclenchera une série d’événements tel que vérification inventaire, en cours détection de fraude, mettre à jour son profil client, et en fait mise en charge eux. La figure 2 ci-dessous donne un aperçu de l’architecture :
Maintenant considérer leur stratégie de traçage distribué. Supposons que les événements sont publiés et souscrits entre tous les microservices principaux via un courtier de messages. En tant qu’architecte système ou développeur, lorsqu’une panne se produit, vous pouvez vous poser plusieurs questions, telles que :
- Pourquoi le microservice de détection de fraude n’a-t-il jamais reçu le message auquel il est abonné ? Est-ce dû à une file d’attente atteignant la capacité du quota ? Est-ce dû aux autorisations d’abonnement ?
- Qu’est-il arrivé à l’événement dans le maillage d’événements si plusieurs courtiers de messages sont impliqués ?
- Mon message est-il parvenu au courtier d’événements ?
- Je souhaite suivre le parcours du message depuis que le client a appuyé sur le bouton d’achat jusqu’au microservice de détection de fraude. Comment puis je faire ça?
Nous pouvons clairement voir un écart d’observabilité dans un système événementiel. Cependant, avec la prise en charge par Solace du traçage distribué dans le composant de courtier d’événements et l’engagement de Datadog à contribuer à OpenTelemetry, nous pouvons désormais combler l’observabilité dans l’architecture pilotée par les événements.
Regardons de plus près l’architecture
Comme indiqué précédemment, une observabilité complète est atteinte lorsque tous les composants du système distribué génèrent des informations sur leurs actions. Cela inclut les courtiers de messages.
Dans la figure 3 ci-dessous, nous voyons que les applications peuvent générer leurs propres messages de trace OpenTelemetry directement à partir de la logique de l’application ou de l’API à l’aide des bibliothèques client OpenTelemetry. Lorsque les applications commencent à publier des messages garantis sur le courtier d’événements Solace PubSub+ et à s’abonner à ces messages, le courtier génère des étendues qui reflètent chaque saut à l’intérieur du courtier. Des activités telles que la mise en file d’attente de la publication, la sortie de la file d’attente de la consommation et l’accusé de réception génèrent des étendues qui sont consommées par le collecteur OpenTelemetery.
Ainsi, par exemple, la figure 5 ci-dessous montre une configuration de courtiers d’événements Solace PubSub + hébergés dans le cloud interconnectés et indépendants du cloud formant un maillage d’événements. Les courtiers d’événements sont hébergés sur AWS dans une région nord-américaine USA-Est (NA) : Ohio, sur GCP dans une région européenne (UE) : France, et sur Azure dans une région Asie-Pacifique (APAC) : Japon. Chacun des courtiers d’événements est configuré pour générer des messages de trace suivant la configuration de configuration décrite précédemment dans la figure 3.
Figure 4 : Tableau de bord de création de service cloud Solace PubSub+.
Un microservice Java est configuré pour publier des messages vers le courtier d’événements hébergé par NA sur un sujet prédéfini ; dans ce cas, il publie un message garanti sur le sujet commandes/pos/1234. Dans notre exemple d’organisation de commerce électronique, il peut s’agir de l’application de panier de paiement. Il existe des files d’attente sur les courtiers d’événements hébergés dans l’UE et l’APAC configurés pour s’abonner au sujet commandes/pos/*. Dans notre organisation, ces courtiers d’événements pourraient refléter respectivement le profil client 360 et les applications de facturation client. Remarque : consultez la notation des caractères génériques de Solace pour plus d’informations sur les abonnements aux sujets.
Un autre microservice Java se connecte au courtier d’événements hébergé par l’UE et se lie à la file d’attente préconfigurée. L’application Java de l’éditeur et de l’abonné est configurée avec une instrumentation automatique à l’aide de l’agent Java OTel qui injecte dynamiquement des métadonnées de traçage avant de publier le message au courtier Solace pour la propagation du contexte.
Lorsque le collecteur est configuré pour exporter les messages de trace OTel vers Datadog, nous pouvons suivre tous les délais d’un événement transactionnel lorsqu’il se propage entre les applications via le courtier d’événements, comme illustré à la Figure 6. Notez que tous les délais d’un événement transactionnel sont assemblés en une seule trace, grâce à la propagation du contexte.
Figure 6 : Tableau de bord Datadog Span.
Figure 7 : Vue Datadog Map de la travée.
Figure 8 : Étendue complète de la passation de commandes dans la transaction commerciale de l’organisation de commerce électronique.
Grace à normalisation des messages de trace à l’aide du OpenTelemetry Protocol (OTLP), une fois les plages reçues par le récepteur Solace sur le OpenTelemetry collecteur, ils sont traités selon des normes OpenTelemetry messages de trace et transmis aux exportateurs. L’exportateur est un composant du collecteur qui prend en charge l’envoi de données au système d’observabilité principal de votre choix. Dans cet exemple, nous avons choisi l’exportateur Datadog pour exporter les messages de trace. Enfin, les spans sont reçus par Datadog, où ils sont intelligemment assemblés et corrélés en fonction de plusieurs propriétés et ID de trace afin qu’ils puissent être examinés et analysés plus en détail à l’aide de différents tableaux de bord et outils.
Dernières pensées
Le réconfort nouveau ddistribué tcourses aptitude dans Réconfort PubSub+ Courtier événementiel signifie que des traces peuvent être générées à chaque saut dans le maillage d’événements qui reflète ce qui arrive aux événements de transaction commerciale. À l’aide de backends d’observabilité avancés, comme Datadog, toutes les étendues et traces générées à partir du système peuvent être assemblées et corrélées, ce qui permet une meilleure compréhension du système global.
La prise en charge du traçage distribué dans Solace PubSub+ Event Broker et les API de messagerie continueront à…