Accéder au contenu principal Passer au contenu complémentaire

Styles d'architecture et modèles de conception

Qu'est-ce qu'un style d'architecture ?

Un style d'architecture est un modèle à haute granularité fournissant un framework abstrait pour une famille de systèmes.

Il y a quatre styles d'architecture principaux pour le traitement de données : Par lots, En temps réel, Orienté événements et Streaming.

Par lots

Le traitement par lots est une méthode d'exécution de Jobs de données répétitifs et de grands volumes, au cours d'une fenêtre temporelle spécifiée. Pour le traitement de données, les outils ayant la capacité d'effectuer ce style de traitement sont généralement connus comme outils d'intégration de données, outils ETL (Extract, Transform, Load - Extraire, Transformer, Charger) ou ELT (Extract, Load, Transform - Extraire, Charger, Transformer ou Push Down SQL). Cependant, des outils modernes comme Talend Data Fabric vont bien au-delà de ces fonctionnalités de base, en ajoutant des capacités de gouvernance de données, ainsi que la possibilité d'implémenter tous les styles architecturaux, pas uniquement le style par lots.

Le traitement par lots avec ces outils présente les caractéristiques suivantes :
  • Tolérance à la latence
  • Transformations complexes
  • Volumes importants
  • Spécifications sans code
  • Réutilisation des métadonnées

Un des modèles de conception classique souvent utilisé par l'intégration de données par lot pour implémentation est Data Warehouse pour l'analytique et le reporting métier :

Diagramme du data warehouse.

En temps réel

Wikipédia décrit les systèmes temps réel comme :

Les systèmes informatiques temps réel se différencient des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat. Autrement dit le système ne doit pas simplement délivrer des résultats exacts, il doit les délivrer dans des délais imposés.

Le traitement en temps réel est une réponse quasi instantanée à une action ou à un événement. La plupart des applications les plus importantes sont en temps réel.

Pour le traitement de données, temps réel fait généralement référence à l'implémentation de services Web REST ou SOAP, à l'aide des outils d'intégration. Ces services sont donc orientés données. Talend Cloud Data Fabric fournit des fonctionnalités complètes pour l'implémentation des architectures de traitement de données en temps réel, notamment :
  • API Services
  • Création de services de données - services SOAP ou REST implémentés dans le Studio Talend à l'aide de la même palette de composants que pour la création de Jobs Batch (par lots).
  • Routes - Conception graphique de Routes Camel dans le Studio Talend pour implémenter des services SOAP ou REST.
  • Déploiement dans Talend Runtime, en tant que microservice ou en tant que microservice au sein d'un conteneur.
  • Log et monitoring
  • Intégration continue/Déploiement continu

Streaming

Wikipédia décrit le streaming de données comme suit :

Le streaming de données correspond à des données générées en continu par différentes sources. Ces données doivent être traitées de manière incrémentale à l'aide de techniques de traitement de flux (stream), sans avoir accès à toutes les données. De plus, il est important de noter que les concepts peuvent glisser dans les données, ce qui signifie que les propriétés du flux peuvent changer au fil du temps. Le style streaming est généralement utilisé dans le contexte de Big Data, générées par de nombreuses sources à grande vitesse

Pour plus d'informations concernant le style streaming et ses cas d'usage, consultez Qu'est-ce que le streaming de données ?.

Le style streaming a les caractéristiques suivantes :
  • Latence basse
  • Transformations et agrégations simples
  • Lots peu volumineux, connus sous le nom de micro-batchs
  • Tolérance aux pannes
  • Risque minimal de perte de données
  • Fonctionnalité de fenêtrage glissant

    Le diagramme suivant indique de quelle manière les flux de données sont traités par un moteur Spark sous forme de micro-batchs.

    Diagramme indiquant la manière dont sont traités les flux de données par un moteur Spark.

Orientée événements

Wikipédia définit une architecture orientée événements comme suit :

Une architecture orientée événements est un paradigme d'architecture logicielle promouvant la production, la détection, la consommation des événements, ainsi que la réaction aux événementss.

Un événement peut être défini comme "un changement significatif d'état". Par exemple, lorsqu'un·e consommateur·trice achète une voiture, l'état de la voiture change, passant de "En vente" à "Vendue". L'architecture du système d'un·e vendeur·euse de voitures peut traiter ce changement d'état comme un événement dont l'occurrence peut être communiquée aux autres applications de l'architecture. D'un point de vue formel, ce qui est produit, publié, propagé, détecté ou consommé est un message (généralement asynchrone) nommé notification d'événement et non l'événement lui-même, qui est le changement d'état ayant déclenché l'émission du message. Les événements ne voyagent pas, ils se produisent. Cependant, le terme événement est généralement utilisé de manière métonymique pour indiquer le message de notification même, ce qui peut prêter à confusion. Cela est lié au fait que les architectures orientées événements sont souvent conçues sur des architectures orientées messages, où ce modèle de communication nécessite que l'une des entrées soit uniquement textuelle (le message), afin de différencier la manière de gérer chaque communication.

Comme décrit, ce style (particulièrement pour le traitement des données) est généralement associé à l'utilisation d'architectures orientées messages. Cependant, d'autres exemples pouvant être implémentés avec Talend comprennent une interrogation de Route au sujet d'un fichier sur un serveur FTP et le traitement de ce fichier lorsque le chargement vers le serveur FTP est terminé, utilisant un service Web pour instancier un processus asynchrone - le service Web n'attend pas la fin du processus avant de répondre au·x client·s.

Les caractéristiques typiques d'une architecture orientée événements sont notamment :
  • Basée sur les messages
  • Livraison assurée
  • Redémarrage/reprise
  • Orientée transactions

    Le diagramme suivant présente un bus d'entreprise dans lequel les messages sont publiés dans des topics et lus par les souscripteur·trices.

    Diagramme indiquant la manière dont les messages sont publiés dans des topics, puis lus.

Qu'est-ce qu'un modèle de conception ?

Un modèle de conception est une solution générale réutilisable à un problème récurrent dans un contexte donné.

Caractéristiques :
  • Représente une solution testée en conditions réelles à un problème de conception commun
  • Est généralement reproductible par la plupart des travailleurs de l'informatique impliqués dans la création
  • Peut être utilisé pour assurer la cohérence entre la conception et la construction des systèmes
  • Peut devenir la base des standards de conception pour les Jobs, Routes,...
Modèles de conceptions communs et styles architecturaux
Style d'architecture Modèle de conception Exemples
Par lots
  • Chargement ETL
  • Chargement ELT
  • CDC - (Change Data Capture)
  • Transfert de fichiers
Chargement d'un data warehouse à une fréquence définie, chargement de données quotidien incrémental, transferts FTP, réplication de données...
En temps réel
  • Services Web
  • Modèles d'échange de messages
  • Microservices
Mises à jour Salesforce, Lecture des files d'attente, Lecture des messages Enterprise Service Bus, Services d'API pour l'intégration
Streaming
  • Top N (Tendance)
  • Jointures de flux
  • Lookup externe
  • Fenêtres glissantes/roulantes
  • Mélange dynamique
  • Effets hors séquence (Out-of-Sequence)
Tableaux de classement, flux Twitter, flux en direct (Live Streams)
Orientée événements
  • Publication/souscription
  • Push asynchrone
  • Contrôle du flux récepteur
Données provenant de capteurs sur une occurrence d'événement, événements de workflow, déclencheurs de fichiers

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.