Aux débuts du big data, l'entrepôt de données centralisé était la référence. Il fonctionnait à merveille pour l'analytique de petite à moyenne échelle. Cependant, à mesure que les organisations grandissaient, ces architectures centralisées commençaient à s'effondrer sous le poids des problèmes d'évolutivité, de la lenteur à obtenir des insights et du manque de contexte. C'est ici qu'intervient le Data Mesh, un principe d'architecture sociotechnique qui propose un changement fondamental : passer d'une organisation des données centralisée et monolithique à une approche décentralisée et orientée domaine.
Qu'est-ce que le Data Mesh ?
Le terme a été forgé par Zhamak Dehghani en 2019. Le Data Mesh n'est pas une technologie ou un outil spécifique. C'est plutôt un état d'esprit et un motif d'architecture. Il traite les données comme des citoyens de premier ordre et comme un produit, répartis dans l'organisation en fonction des limites des domaines. Au lieu d'avoir une seule « Équipe Données » qui possède toutes les données, la propriété des données est distribuée aux équipes de domaine qui comprennent le mieux ces données.
Les quatre principes du Data Mesh
Pour mettre en œuvre le Data Mesh de manière efficace, les organisations doivent se conformer à quatre principes fondamentaux :
- Propriété des données orientée domaine : La propriété des données est distribuée aux équipes de domaine. Par exemple, l'équipe « Ventes » possède les données de vente, et l'équipe « Produit » possède les données d'utilisation du produit. Cela garantit que les personnes qui comprennent le contexte métier sont également responsables de la qualité et de la gouvernance des données.
- Les données comme un produit : Les données doivent être traitées comme un produit logiciel. Elles doivent avoir des contrats clairs, une documentation, une gestion des versions et des SLA. Les producteurs (équipes de domaine) sont responsables de rendre leurs données consommables par d'autres (utilisateurs), avec un accent sur le libre-service.
- Plateforme de données en libre-service : Une plateforme centralisée fournit l'infrastructure et les outils nécessaires pour que les équipes de domaine puissent construire, stocker et servir des produits de données sans avoir à gérer la complexité sous-jacente. Pensez-y comme à une route pavée sur laquelle les développeurs peuvent rouler, plutôt que chaque équipe construisant sa propre route.
- Gouvernance computationnelle fédérée : La gouvernance n'est pas centralisée ; elle est fédérée. Les politiques globales sont définies au niveau de l'organisation, mais la mise en œuvre est déléguée aux équipes de domaine. Cela garantit la conformité et la sécurité tout en permettant l'autonomie.
Pourquoi le Data Mesh est important
Les architectures centralisées traditionnelles souffrent souvent d'un « impôt sur les données », où les équipes de domaine doivent demander l'accès aux données ou des transformations à une équipe centrale, créant des goulots d'étranglement. Le Data Mesh élimine cette friction. En autonomisant les équipes de domaine, vous accélérez le temps d'obtention d'insights et améliorez la qualité des données, car les propriétaires sont profondément investis dans l'exactitude de leurs propres données.
Mise en œuvre du Data Mesh : un exemple pratique
Considérez une plateforme de commerce électronique. Dans un modèle centralisé, l'équipe de données ingère les commandes, l'inventaire et les données des utilisateurs dans un seul lac de données. Lorsqu'une nouvelle fonctionnalité nécessite de joindre l'historique des commandes avec le sentiment client, l'équipe de données doit construire un pipeline complexe.
Dans un modèle Data Mesh, l'équipe de domaine « Commandes » expose un produit de données : orders.v1. L'équipe de domaine « Client » expose customer_sentiment.v1. L'équipe « Marketing », agissant en tant que consommateur, utilise la plateforme en libre-service pour joindre ces deux produits. La plateforme gère l'orchestration, la sécurité et la lignée, tandis que les équipes de domaine s'assurent que leurs produits de données sont fiables et bien documentés.
Exemple de code : Contrat de produit de données
Un aspect clé du Data Mesh est le contrat de données. Il définit le schéma et les SLA d'un produit de données. Voici un contrat YAML simplifié pour un produit de données orders :
apiVersion: datamesh.io/v1alpha1
kind: DataProduct
metadata:
name: orders
domain: sales
spec:
version: v1
owner: sales-team@example.com
description: "Données de commandes agrégées pour les 30 derniers jours"
schema:
type: object
properties:
order_id:
type: string
format: uuid
customer_id:
type: string
total_amount:
type: number
format: double
order_timestamp:
type: string
format: date-time
sla:
freshness: "15 minutes"
availability: "99.9%"
access:
- role: reader
groups:
- marketing-team
- finance-team
Défis et considérations
L'adoption du Data Mesh n'est pas sans défis. Elle nécessite un changement culturel important, passant d'un état d'esprit de « contrôle centralisé » à un état d'esprit de « confiance et vérification ». Les organisations doivent investir massivement dans la plateforme en libre-service pour s'assurer que les équipes de domaine ne se sentent pas accablées par la gestion de l'infrastructure. De plus, les politiques de gouvernance doivent être claires pour prévenir les silos de données ou les problèmes de conformité.
Conclusion
Le Data Mesh n'est pas une solution miracle, mais c'est un puissant motif d'architecture pour les organisations qui luttent contre les limites de la gestion centralisée des données. En embrassant la propriété par domaine, en traitant les données comme un produit et en fournissant une plateforme en libre-service robuste, les organisations peuvent débloquer tout le potentiel de leurs données. À mesure que les données deviennent plus critiques pour la réussite des affaires, le passage vers des architectures décentralisées et orientées domaine ne fera que se généraliser. Commencez petit, concentrez-vous sur un ou deux domaines et itérez. Le voyage vers le Data Mesh est un marathon, pas un sprint, mais les récompenses en agilité et en qualité des données valent largement l'effort.