Un data mesh è un'architettura di dati decentralizzata che organizza i dati in base a un dominio aziendale specifico, ad esempio marketing, vendite, servizio clienti e altro ancora, per dare maggiore controllo ai produttori di un determinato set di dati.
Conoscere i dati di dominio consente ai produttori di definire politiche di governance dei dati incentrate sulla documentazione, sulla qualità e sull'accesso. Questo, a sua volta, consente l'utilizzo self-service nell'intera organizzazione. Sebbene questo approccio federato elimini molti colli di bottiglia operativi associati ai sistemi centralizzati e monolitici, non significa necessariamente che non sia possibile utilizzare sistemi di storage tradizionali, come data lake o data warehouse. Significa solo che il loro utilizzo è passato da un'unica piattaforma di dati centralizzata a più repository di dati decentralizzati.
Vale la pena sottolineare che il data mesh promuove l’adozione di tecnologie cloud-native e di piattaforme cloud per poter scalare e raggiungere gli obiettivi di gestione dei dati. Questo concetto viene spesso paragonato ai microservizi per aiutare il pubblico a comprenderne l'utilizzo in questo landscape. Poiché questa architettura distribuita è particolarmente utile per scalare le esigenze di dati all'interno di un'organizzazione, si può dedurre che un data mesh potrebbe non essere adatto a tutti i tipi di aziende. In altre parole, le aziende più piccole potrebbero non trarre beneficio da un data mesh in quanto i loro dati aziendali potrebbero non essere complessi come quelli di un'organizzazione più grande.
Zhamak Dehghani, direttrice tecnologica presso la società di consulenza IT ThoughtWorks, è riconosciuta per aver promosso il concetto di data mesh come soluzione alle sfide intrinseche delle strutture dati centralizzate e monolitiche, come l'accessibilità e l'organizzazione dei dati. La sua adozione è stata ulteriormente stimolata dalla pandemia di COVID-19 nel tentativo di promuovere il cambiamento culturale e ridurre la complessità organizzativa dei dati.
Un data mesh implica un cambiamento culturale nel modo in cui le aziende concepiscono i propri dati. Anziché essere un sottoprodotto di un processo, i dati diventano il prodotto, dove i produttori di dati agiscono come responsabili del prodotto dati. In passato, un team infrastrutturale centralizzato si occupava della gestione dei dati nei diversi domini. Con il modello data mesh, invece, il product thinking trasferisce questa responsabilità sui produttori stessi, in quanto esperti del loro dominio. La loro conoscenza dei principali consumatori di dati e del modo in cui utilizzano i dati operativi e analitici del dominio consente loro di progettare API tenendo a mente i loro interessi.
Sebbene questo approccio basato sul dominio renda i produttori di dati responsabili della documentazione delle definizioni semantiche, della catalogazione dei metadati e della definizione di regole per i permessi e l'uso dei dati, esiste comunque un team centrale di data governance incaricato di far rispettare questi standard e queste procedure. Inoltre, sebbene i team di dominio siano responsabili delle proprie pipeline di dati ETL nell'ambito di un'architettura data mesh, ciò non elimina la necessità di un team di data engineering centralizzato. Tuttavia, la loro responsabilità si concentra maggiormente sul determinare le migliori soluzioni infrastrutturali per l'archiviazione dei prodotti di dati.
Proprio come un'architettura di microservizi collega insieme servizi semplici per fornire funzionalità a un'applicazione rivolta alle aziende o ai consumatori, una data mesh utilizza domini funzionali per definire i parametri intorno ai dati, permettendo così di considerarli come veri e propri prodotti accessibili a tutti gli utenti dell'organizzazione. In questo modo, un data mesh consente un'integrazione dei dati più flessibile e una funzionalità interoperabile, in cui i dati provenienti da più domini possono essere immediatamente consumati dagli utenti per analytics, data science e altro ancora.
Come già detto, una data mesh è un'architettura di dati distribuita, in cui i dati sono organizzati in base al loro dominio per renderli più accessibili agli utenti di tutta l'organizzazione. Un data lake è un ambiente di storage a basso costo, che in genere ospita petabyte di dati strutturati, semi-strutturati e non strutturati per l'analytics aziendale, il machine learning e altre applicazioni di ampia portata. Un data mesh è un approccio architettonico ai dati, di cui un data lake può far parte. Tuttavia, un data lake centrale è solitamente utilizzato come deposito di dati, perché spesso viene utilizzato per acquisire dati che non hanno ancora uno scopo definito. Di conseguenza, rischia di trasformarsi in una "data swamp", ovvero un data lake privo delle necessarie pratiche di qualità e governance dei dati, incapace quindi di offrire informazioni utili e significative.
Un data fabric è un concetto di architettura che si concentra sull'automazione dell'integrazione dei dati, del data engineering e della governance in una catena di valore dei dati tra fornitori e consumatori di dati. Una data fabric si basa sul concetto di "metadati attivi", che utilizzano grafi di conoscenza, semantica e tecnologie di intelligenza artificiale o machine learning per individuare schemi nei diversi tipi di metadati (come log di sistema, dati social, ecc.) e applicare queste informazioni per automatizzare e orchestrare la catena del valore dei dati (ad esempio, permettere a un consumatore di dati di trovare un prodotto di dati e fornirglielo automaticamente). Un data fabric è complementare a un data mesh. In effetti, il data fabric migliora il data mesh perché è in grado di automatizzare alcune sue parti fondamentali, come la creazione più rapida di prodotti dati, l'applicazione della governance a livello globale e l'orchestrazione più semplice della combinazione di più prodotti di dati.
Democratizzazione dei dati: le architetture data mesh facilitano le applicazioni self-service da più fonti di dati, ampliando l'accesso ai dati oltre le risorse più tecniche, come data scientist, data engineer e sviluppatori. Rendendo i dati più facilmente individuabili e accessibili tramite questa progettazione basata sul dominio, si riducono i silos e i colli di bottiglia operativi, consentendo un processo decisionale più rapido e liberando gli utenti tecnici affinché si dedichino alle attività che mettono meglio a frutto le loro competenze.
Convenienza: questa architettura distribuita si allontana dall'elaborazione dei dati in batch e promuove invece l'adozione di piattaforme di dati cloud e pipeline di streaming per raccogliere i dati in tempo reale. Lo storage sul cloud offre un ulteriore vantaggio in termini di costi consentendo ai team di dati di creare cluster in base alle necessità, pagando solo per lo storage specificato. Ciò significa che se si ha bisogno di ulteriore potenza di calcolo per eseguire un lavoro in poche ore anziché alcuni giorni, è possibile farlo facilmente su una piattaforma dati cloud acquistando nodi di calcolo aggiuntivi. Ciò implica anche una migliore visibilità dei costi di storage, consentendo una migliore allocazione del budget e delle risorse per i team di ingegneri.
Debito tecnico ridotto: un'infrastruttura di dati centralizzata causa un maggior debito tecnico, a causa della complessità e della collaborazione necessaria per mantenere il sistema. Man mano che i dati si accumulano all'interno di un repository, iniziano anche a rallentare il sistema complessivo. Distribuendo la pipeline di dati in base ai domini, i team che si occupano di dati possono soddisfare meglio le esigenze dei consumatori di dati e ridurre il carico tecnico sul sistema di storage. Possono anche fornire una maggiore accessibilità ai dati fornendo API con cui interagire, riducendo il volume complessivo delle richieste individuali.
Interoperabilità: in un modello di data mesh, i responsabili dei dati concordano in anticipo su come standardizzare i campi dati indipendenti dal dominio, il che facilita l'interoperabilità. In questo modo, quando un team di dominio struttura i rispettivi set di dati, applica le regole pertinenti per consentire il collegamento dei dati tra domini in modo rapido e semplice. Alcuni campi comunemente standardizzati sono il tipo di campo, i metadati, i flag dello schema e altro ancora. La coerenza tra i domini consente ai consumatori di dati di interagire più facilmente con le API e di sviluppare applicazioni che rispondano in modo più appropriato alle loro esigenze aziendali.
Sicurezza e conformità: le architetture data mesh promuovono pratiche di governance più efficaci in quanto aiutano a far rispettare gli standard dei dati per i dati indipendenti dal dominio e i controlli di accesso per i dati sensibili. Ciò garantisce che le organizzazioni rispettino le normative governative, come le restrizioni HIPAA, e la struttura di questo ecosistema di dati supporta tale conformità attraverso l'abilitazione di audit dei dati. I dati di registro e tracciamento in un'architettura data mesh integrano l'osservabilità nel sistema, consentendo agli auditor di comprendere quali utenti accedono a dati specifici e la frequenza di tali accessi.
Sebbene le architetture di data mesh distribuite siano ancora in fase di adozione, stanno aiutando i team a raggiungere i loro obiettivi di scalabilità per i casi d'uso più comuni nel campo del big data. Questi includono:
Gestisci i dati come un prodotto durante il loro intero ciclo di vita. Gestisci il ciclo di vita dei prodotti di dati, dall'integrazione alla dismissione, con un solido sistema per il controllo delle versioni, la manutenzione e l'aggiornamento dei prodotti di dati.
Trasforma rapidamente i dati non elaborati in insight fruibili, unifica governance, qualità, lineage e condivisione dei dati e offri agli utenti dati affidabili e contestualizzati.
Sblocca il valore dei dati aziendali con IBM Consulting e crea un'organizzazione basata su insight in grado di generare vantaggi aziendali.