Un Data Hub è una piattaforma che si inserisce all’interno di un’architettura IT Enterprise per rendere disponibili dati presenti all’interno di sistemi che non sono ottimizzati per la distribuzione di dati, come ad esempio i sistemi legacy. Scopo di un Data Hub è in pratica quello di raccogliere e aggregare dati di vario tipo prelevandoli dai sistemi sorgente – CRM, ERP e-commerce e altri – per poi esporli ad altri sistemi a valle nel modo più semplice possibile.
Perché un Data Hub può essere una soluzione molto utile per un’azienda strutturata che utilizza più sistemi di back-end a supporto del proprio business e vuole realizzare nuove iniziative digitali velocemente, sfruttando tutto il potenziale delle tecnologie disponibili oggi? “Perché è un’alternativa alla legacy modernization – afferma Raffaele Camanzo, Business Design di Sourcesense – un modo per ottenere risultati concreti senza darsi necessariamente obiettivi impegnativi, costosi e rischiosi. La legacy modernization è un percorso che coinvolge persone e processi oltre alla tecnologia e che, difficilmente si affronta perché riguarda sistemi critici che supportano il business aziendale. In una strategia di Digital Decoupling, invece, si mira a ottenere gli stessi risultati isolando i sistemi legacy dietro una piattaforma di distribuzione dei dati moderna. Un Data Hub è una soluzione efficace per applicare questo tipo di strategia”.
Un Data Hub realizzato con tecnologie cloud native permette di realizzare soluzioni scalabili, flessibili, osservabili e affidabili. Quello di Sourcesense si chiama Joyce, è open source e ha delle caratteristiche distintive interessanti. Ce ne parla Raffaele Camanzo, Business Design di Sourcesense.
Quattro caratteristiche che distinguono Joyce da altri Data Hub
Le caratteristiche che, secondo Camanzo, distinguono Joyce da altre soluzioni Data Hub sono quattro.
Facilità e velocità di connessione alle fonti dati
“La prima tra le caratteristiche salienti di Joyce è la facilità con cui si collega ed acquisisce velocemente dati da più sistemi sorgente, tramite i connettori del framework Kafka Connect. Dov’è il vantaggio? Nel fatto che, senza dover reinventare la ruota con un ecosistema di connettori proprietari, senza dover scaricare sul cliente l’onere di inviare i propri dati alla piattaforma e senza dover sviluppare connettori per ogni nuovo sistema che si incontra, è possibile collegare un ampio numero di fonti ed essere subito pronti ad importarne i dati”.
Possibilità di creare nuove viste sui dati ed arricchirle
Cioè? “Joyce permette di aggregare liberamente i dati presenti in piattaforma e creare nuove viste, caratteristica fondamentale per realizzare API ottimizzate per i servizi che ne fruiranno, inoltre le viste realizzate si possono aumentare con chiamate a sistemi esterni. Per esempio, acquisisco i dati da due sistemi legacy, chiamo un algoritmo di machine learning e aggrego tutte queste informazioni all’interno di una singola vista, il tutto semplicemente descrivendo il comportamento atteso alla piattaforma, una semplicità e velocità inimmaginabili sui sistemi sorgente”.
Generazione automatica di API standard dei dati caricati e delle viste realizzate
“Joyce espone in modo semplice i dati importati e le viste prodotte, tramite API in formato standard REST, GraphQL e ad evento generate automaticamente”.
Approccio dichiarativo
“La quarta caratteristica distintiva è l’approccio dichiarativo alla definizione delle strutture dati da importare e le API da esporre. In maniera analoga al meccanismo reso popolare da Kubernetes, si descrivono le caratteristiche delle risorse gestite e la piattaforma si occupa di configurarsi per operare nella condizione richiesta. Le risorse sono configurate all’interno di file che chiamiamo schemi, secondo un formalismo (JSON schema) che è un open standard diffuso e ampiamente adottato, così da evitare agli utilizzatori del sistema di dover apprendere un nuovo linguaggio per lavorare con Joyce”.
Una piattaforma che permette di correlare dati da più sorgenti
Per raccontare ai clienti le potenzialità della piattaforma, Sourcesense ha creato una demo che evidenzia come realizzare correlazioni con Joyce, per farlo ha provato a rispondere a una delle domande più ricorrenti e difficili che circolano oggi nel mondo IT: come faccio a trovare sviluppatori competenti da attrarre e portare in azienda? Il perché e il come di questa demo-idea ce li racconta Camanzo.
“Abbiamo impostato il nostro ragionamento su due assunti, il primo: gli utenti di GitHub che effettuano delle commit su progetti con un certo numero di star, molto probabilmente sono persone brave a sviluppare codice nel linguaggio di programmazione di quel progetto. Secondo assunto: se un utente di Stack Overflow risponde a una domanda raccogliendo un certo numero di like, è molto probabile che sia una persona competente sull’argomento in questione. Dunque, siamo partiti da due sistemi che hanno obiettivi diversi rispetto ai nostri e fatto valutazioni, se vogliamo speculazioni di buon senso, su ciò che accade in quelle piattaforme che può essere utile a rispondere alla nostra domanda”.
“A questo punto abbiamo collegato le due piattaforme a Joyce sfruttando un connettore standard HTTP e uniformato le fonti su una singola collection di utenti; il passo successivo è stato definire la struttura di un profilo da ricercare, con job description e linguaggi di programmazione desiderati. A partire da questi dati di input abbiamo creato la correlazione attraverso la realizzazione di una vista, ovvero uno schema, in cui abbiamo chiesto a Joyce di identificare gli utenti che corrispondono ai profili caricati e di creare un documento per ogni città di appartenenza con la lista degli utenti. Infine, abbiamo realizzato una web application React che utilizza esclusivamente le API auto generate da Joyce per selezionare un profilo, una città e restituire la lista degli utenti che corrispondono alla ricerca selezionata. Magari non diventerà il nuovo strumento di ricerca del personale ma crediamo che sia un modo efficace per raccontare come questa piattaforma semplifichi la manipolazione dei dati e la realizzazione di nuovi prodotti digitali”.