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.
- 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 :
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.
- 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 ?.
- 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.
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.
- 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.
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é.
- 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,...
Style d'architecture | Modèle de conception | Exemples |
---|---|---|
Par lots |
|
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 |
|
Mises à jour Salesforce, Lecture des files d'attente, Lecture des messages Enterprise Service Bus, Services d'API pour l'intégration |
Streaming |
|
Tableaux de classement, flux Twitter, flux en direct (Live Streams) |
Orientée événements |
|
Données provenant de capteurs sur une occurrence d'événement, événements de workflow, déclencheurs de fichiers |