Il Data Mesh è un approccio innovativo alla progettazione dell’architettura dei dati, che ha lo scopo di creare una serie di microservizi indipendenti e autonomi per la gestione dei dati e delle infrastrutture.
Invece di avere un unico punto di controllo, il Data Mesh ci permette di distribuire la gestione delle informazioni attraverso singoli microservizi, ciascuno dei quali è responsabile di una parte specifica di dati.
Il concetto alla base del Data Mesh è quello di creare una struttura “a maglie” – da qui Data Mesh – dove ogni microservizio gestisce i propri dati e le proprie responsabilità.
Ciò consente una maggiore flessibilità e capacità di adattamento ai cambiamenti, poiché ogni microservizio può evolvere senza influire sugli altri.
Ad esempio, possiamo gestire una grande quantità di dati dei clienti creando diversi microservizi per la gestione delle informazioni personali, degli ordini e delle fatture.
Ciascun microservizio gestisce i propri dati e comunica con gli altri attraverso API o protocolli di comunicazione personalizzati.
Come detto, il Data Mesh offre molti vantaggi rispetto alle architetture tradizionali, tra cui una maggiore flessibilità, adattamento ai cambiamenti, scalabilità, e capacità di gestione degli errori.
La distribuzione dei dati attraverso tanti microservizi garantisce inoltre una maggiore sicurezza, poiché non esiste un unico punto di sofferenza nell’architettura.
Inoltre, il Data Mesh incoraggia l’adozione di una mentalità di proprietà dei dati a livello di team, in cui ognuno è responsabile della gestione delle informazioni possedute.
Ciò consente a ogni squadra di prendere decisioni autonome su come utilizzare e gestire i dati, il che può portare a maggiore innovazione e capacità di soddisfare le esigenze specifiche dei clienti.
Tuttavia vi sono anche alcune criticità da considerare, come la complessità introdotta dalla creazione di molti microservizi, e la necessità di una maggiore collaborazione tra i reparti e i team.
In particolare, la creazione e la gestione di molti microservizi può essere più complessa e costosa rispetto a un’architettura tradizionale.
Architetture di dati
Esiste una classificazione comune delle architetture dei dati suddivise in “generazioni”, cioè architetture che seguono lo sviluppo tecnologico e di innovazione.
1. Architettura dei dati di prima generazione (o centralizzata)
La prima forma di architettura dei dati è stata caratterizzata dall’archiviazione delle informazioni in una posizione centrale e dall’accesso tramite semplici query.
Spesso comporta l’uso di un unico sistema di gestione del database.
2. Architettura dei dati di seconda generazione (o Data Warehouse)
Con l’aumento dei volumi e della complessità dei dati c’era bisogno di un modo più avanzato di archiviare e gestire le informazioni. È qui che entra in gioco l’architettura dei dati di seconda generazione, che è caratterizzata dall’uso del Data Warehouse dove le informazioni vengono estratte, trasformate e caricate in un repository centrale.
Questa generazione include anche l’uso di processi di estrazione, trasformazione e caricamento (ETL) per gestire e organizzare i dati.
3. Architettura dei dati di terza generazione (o Data Lake)
L’architettura dati di terza generazione è caratterizzata dall’utilizzo di piattaforme di Big Data come Apache Hadoop e Apache Spark, in grado di gestire grandi volumi di informazioni in modo distribuito e parallelo.
Questa generazione include anche l’uso di un Data Lake come repository centrale per l’archiviazione di tutti i tipi di dati nella loro forma non elaborata.
4. Architettura dei dati di quarta generazione (o Data Mesh)
È la generazione più recente, e si caratterizza per l’uso di tecnologie cloud-based per lo storage e l’elaborazione delle informazioni, e l’adozione di cataloghi di dati e pratiche di governance solide.
In questa generazione si usano tecniche di elaborazione e analisi dei dati in tempo reale, un approccio multimodale, e tecniche di Intelligenza Artificiale e Machine Learning per gestire e estrarre informazioni in modo automatico.
Data Mesh: la storia
Abbiamo parlato delle diverse generazioni di architetture dei dati e dei vantaggi del Data Mesh.
Vediamo ora qual è stata l’evoluzione di questo approccio negli ultimi anni.
Il termine “Data Mesh” è stato coniato per la prima volta da Christian Posta e Michael Bryzek, nel 2018, in un articolo per O’Reilly Media.
I due hanno osservato che molte organizzazioni avevano difficoltà a ridimensionare la propria infrastruttura di dati nonostante gli investimenti ingenti nelle piattaforme di Big Data.
Ciò li ha portati all’idea di creare una rete di dati per suddividere i sistemi di dati monolitici in servizi più piccoli, gestiti in modo indipendente.
Successivamente sempre più professionisti e leader nel campo dell’architettura e dell’ingegneria dei dati hanno iniziato ad adottare e ad espandere l’idea di Data Mesh.
A detta di tutti, infatti, questo approccio può fornire diversi vantaggi, tra cui maggiore scalabilità e resilienza, nonché migliore velocità di sviluppo.
Nel 2020 è stato pubblicato il libro “Data Mesh: Beyond Monolithic Data Architecture” scritto da Zhamak Dehghani, che è diventato un vero e proprio punto di riferimento sul tema.
Il libro fornisce un’introduzione completa al concetto di Data Mesh, compresi i vantaggi, i modelli, i principi e le sfide dell’implementazione di questa architettura.
Da allora Data Mesh ha guadagnato sempre più attenzione ed è stato adottato da più aziende.
Data Mesh: i punti di forza
L’architettura Data Mesh aiuta a creare un sistema più resiliente e scalabile, distribuendo la proprietà dei dati e riducendo le dipendenze tra i servizi.
Promuove inoltre l’autonomia della gestione delle informazioni, consentendo a ogni team e unità aziendale di prendere decisioni sui propri domini di dati senza dover passare attraverso un sistema centralizzato.
Anche il codice per gestire questa infrastruttura a sua volta sarà distribuito senza disporre di un sistema di monolitico, difficile da tenere aggiornato.
Proviamo quindi a vedere in maniera più schematica quali vantaggi porta un’architettura Data Mesh.
1. Scalabilità
Uno dei principali vantaggi dell’architettura Data Mesh è che consente una migliore scalabilità rispetto alle architetture centralizzate.
Suddividendo i sistemi di dati in servizi più piccoli, gestiti in modo indipendente, è più facile aggiungere nuovi servizi o ridimensionare quelli esistenti all’aumentare del volume o della complessità dei dati.
2. Velocità di sviluppo migliorata
Un altro vantaggio è legato alla velocità di sviluppo.
Grazie al Data Mesh i team sono in grado di lavorare in modo indipendente, non essendo vincolati da un sistema di gestione centralizzato.
Ciò consente loro di prendere decisioni rapide per lo sviluppo di nuove funzionalità e servizi.
3. Maggiore resilienza
Con l’architettura Data Mesh i team sono più autonomi e riescono gestire al meglio i dati che possiedono, il che porta a una maggiore resilienza.
In caso di guasto del servizio, un altro team può escludere il dominio e continuare a lavorare, evitando così un guasto completo del sistema.
4. Migliore governance dei dati
L’architettura della rete enfatizza il decentramento delle informazioni e la loro gestione.
Ciò porta a una migliore comprensione della proprietà dei dati, e riduce il rischio di violazioni o problemi di conformità.
5. Flessibilità
Con l’architettura Data Mesh i team hanno maggiore autonomia sui domini di dati di loro proprietà, e possono decidere quale “stack tecnologico” utilizzare per creare i propri servizi.
Ciò consente ai team di selezionare lo strumento migliore per il loro lavoro, ottenendo sistemi più flessibili ed efficienti.
6. Migliore qualità dei dati
Con l’architettura Data Mesh i team sono responsabili dei domini di dati che possiedono, il che porta a una migliore qualità delle informazioni visto che le persone sono più coinvolte.
I team garantiranno che i dati siano accurati e coerenti, poiché i servizi dipendono da essi.
7. Migliore accesso ai dati
L’architettura Data Mesh si basa sul decentramento dei dati.
Ciò significa che i team hanno un accesso più diretto alle informazioni di cui hanno bisogno, non dovendole richiedere a un sistema centralizzato.
8. Migliore allineamento con le esigenze aziendali
L’architettura Data Mesh incoraggia i team ad assumere la proprietà dei domini di dati e ad allinearne la gestione con le esigenze specifiche del reparto.
Ciò porta a un migliore allineamento dell’utilizzo delle informazioni con gli obiettivi aziendali, e a prendere decisioni efficaci.
Data Mesh: le criticità
Il Data Mesh non è però un’architettura valida per tutti.. o meglio, non lo è nell’immediato, in quanto, in caso di strutture centralizzate, richiede la creazione di un percorso chiaro e definito per destrutturare il sistema.
Per implementare il Data Mesh è importante seguire alcune buone pratiche, come la creazione di contratti di servizio ben definiti tra i microservizi, di una cultura di proprietà dei dati a livello di squadra, e di un sistema di gestione centralizzato per la gestione delle autorizzazioni e dell’accesso ai dati.
Il Data Mesh richiede anche una maggiore collaborazione tra i team.
Con le giuste pratiche e una mentalità di proprietà dei dati a livello di squadra possiamo trarre grandi benefici dall’adozione di un approccio Data Mesh.
Ma vediamo nello specifico quali sono gli svantaggi e le criticità che troviamo in questo tipo di architettura.
1. Difficoltà di ridimensionamento
Le aziende faticano a ridimensionare l’approvvigionamento di dati da diversi set di domini che producono informazioni in grandi volumi e ritmo rapido, e sono in difficoltà a ridimensionare il consumo dei dati per eseguire rapidamente esperimenti, migliorare le operazioni, o ottimizzare l’esperienza dei clienti.
2. Mancata definizione del valore dai dati
Nonostante la raccolta di grandi quantità di dati, le aziende non sono in grado di realizzare metriche misurabili e trasformazionali dalle informazioni che raccolgono.
Questa incapacità di definire qualsiasi valore dai dati è uno dei principali sintomi del fallimento.
3. Rimanere bloccati nella costruzione della prossima grande piattaforma
Le aziende spesso ricorrono alla costruzione della “grande piattaforma” per affrontare i problemi di ridimensionamento dell’approvvigionamento e del consumo di dati, ma alla fine non riescono a materializzare alcun valore dalle informazioni che raccolgono.
4. Mancanza di cultura dei dati e incapacità di essere guidati dai dati
Nonostante i grandi investimenti nell’Intelligenza Artificiale, l’obiettivo di diventare Data Driven per molti resta lontano.
Le aziende potrebbero non avere una cultura dei dati e non essere in grado di sviluppare un senso di proprietà e comprensione degli stessi.
Ciò porta alla mancanza di sperimentazione e all’incapacità di materializzare il valore delle informazioni raccolte.
5. Difficoltà nel coordinare e comunicare con i team interfunzionali
I grandi progetti di piattaforme di gestione dei dati richiedono il coordinamento e la comunicazione tra i team, e spesso si verificano errori quando queste attività non vengono svolte in modo efficiente.
Data Mesh: le fasi
L’implementazione di un’architettura Data Mesh può sembrare una grande impresa, ma non lasciarti scoraggiare!
Con un po’ di pianificazione e organizzazione puoi scomporla in passaggi gestibili, che porteranno a un’infrastruttura dati più scalabile e resiliente.
Ecco qui di seguito gli step da seguire per sviluppare un’architettura Data Mesh.
1. Identificazione e raggruppamento di domini di dati
Uno dei primi passaggi per l’implementazione di una rete di dati consiste nell’identificare e raggruppare i diversi domini all’interno dell’organizzazione.
Le diverse aree della tua azienda, infatti, hanno esigenze diverse (dati dei clienti, dei prodotti, finanziari, ecc).
2. Assegnazione della proprietà dei domini di dati a team interfunzionali
Dopo aver identificato i domini, puoi assegnare la proprietà a team interfunzionali.
In questo modo i team responsabili del dominio possono assumere la proprietà dei dati e decidere come utilizzarli.
3. Decentralizzare l’accesso e la gestione dei dati
Un altro aspetto importante del Data Mesh è il decentramento dell’accesso e della gestione dei dati.
Ciò significa allontanarsi da un servizio monolitico, e creare invece servizi più piccoli e autosufficienti per ottenere una maggiore scalabilità e una migliore velocità di sviluppo.
4. Implementazione di BFF e servizi autosufficienti
Un modo per raggiungere questo risultato è implementare BFF (Backend For Frontend) e servizi autosufficienti che possano fornire i dati e le funzionalità necessarie a un’applicazione o un servizio specifico.
5. Implementazione dell’architettura guidata dagli eventi
L’architettura guidata dagli eventi può essere uno strumento potente quando si implementa un mesh di dati.
Utilizzando gli eventi per attivare modifiche ai dati o alle azioni i servizi possono essere accoppiati in modo più flessibile, rendendoli meno dipendenti l’uno dall’altro.
Ciò garantisce una maggiore flessibilità nel modo in cui vengono sviluppati, distribuiti e ridimensionati.
6. Implementare una governance decentrata
Con più team che possiedono diversi domini di dati anche la governance deve essere decentralizzata.
Ogni team è responsabile dei propri domini e ha l’autonomia per prendere decisioni su come utilizzarli e proteggerli.
7. Implementare un quadro di governance
Per sostenere una governance decentrata è necessario istituire un quadro che includa linee guida e strumenti per la gestione dei dati all’interno dell’organizzazione.
Ciò significa garantire che le informazioni siano accurate, complete e conformi a qualsiasi normativa.
Anche i team interfunzionali che detengono la proprietà dei domini di dati possono svolgere un ruolo importante nella creazione di un framework e nel suo mantenimento.
Conclusioni
L’implementazione di un’architettura Data Mesh può essere molto vantaggiosa per l’infrastruttura di un’organizzazione, ma non è priva di sfide.
Una delle più grandi è il cambiamento mentale necessario per allontanarsi da un sistema di dati monolitico.
Ciò richiede di ripensare il modo in cui le informazioni sono organizzate e gestite, maggiore coordinamento tra i team, nonché un cambiamento nel modo in cui vengono utilizzati i dati.
Un’altra sfida è rappresentata dalla complessità dell’architettura basata sugli eventi.
L’uso di eventi per attivare modifiche ai dati o alle azioni può aggiungere un ulteriore livello di complessità, che può essere difficile da gestire.
Potrebbe anche richiedere un aggiornamento nel modo in cui il team è abituato a lavorare, e una modifica dei sistemi di comunicazione e coordinamento interni.
Per destrutturare l’infrastruttura monolitica dobbiamo individuare i team e le unità aziendali su cui avviare il cambiamento, affinando la tecnica e la metodologia.
Una volta definito il metodo, possiamo sfruttarlo anche per tutte le altre unità dell’organizzazione.
Noi di Karon possiamo aiutarti a creare un percorso che sfrutti al massimo questa filosofia a microservizi, e consenta a ogni persona di essere coinvolta e determinante nel percorso di cambiamento.
Se vuoi sapere cosa possiamo fare per te prenota una videocall o contattaci per organizzare un incontro in presenza presso la tua azienda!
Ecco come si svolgerà:
- Analizzeremo il problema
Per comprendere meglio cosa possiamo fare per te dobbiamo capire qual è il problema della tua organizzazione.
- Comprenderemo quanto ti manca
Per capire se hai tutte le informazioni necessarie per raggiungere l’obiettivo dobbiamo sapere quanto la tua azienda è digitalizzata, quante informazioni hai, e a che livello tecnologico ti trovi.
- Studieremo le basi del progetto
Stabiliremo insieme le basi del progetto. Non devi preoccuparti di avere già tutto chiaro o pensare di avere tutte le informazioni necessarie, saremo noi a porti le giuste domande per mettere a fuoco i passi da compiere!
Prima si condividono gli obiettivi e i dati, prima si ottengono risultati mai visti!
Non aspettare ancora