In ambito informatico la data migration rappresenta un concetto molto consolidato, in stretta correlazione con le fasi di trasformazione e aggiornamento dei sistemi e delle applicazioni utilizzati dalle aziende per sostenere i loro processi.
Data migration, cos’è la migrazione dei dati
Con la definizione di data migration, o migrazione dei dati, si intende l’ombrello dei processi finalizzati a trasferire dati tra storage, sistemi informatici e formati differenti. Nel caso più elementare, una data migration consiste in un trasferimento di file a livello storage, applicazioni, server, database e altri sistemi in grado di archiviare ed analizzare i dati attraverso varie operazioni. Nei casi più complessi, si arriva a considerare la migrazione di interi sistemi informativi, come accade ad esempio con la cloud transformation, che vede le risorse IT passare da un’infrastruttura on-premise verso soluzioni ibride o interamente disponibili in cloud.
In questo contesto, sono nati vari strumenti in grado di supportare e, in alcuni casi, automatizzare i processi di migrazione dei dati. Possiamo individuarne almeno tre:
- Tool di migrazione dati on-premise: storicamente designati alla migrazione di dati tra due o più server, automatizzando i processi di trasferimento dei file secondo regole predefinite. Nelle infrastrutture IT di grandi dimensioni sarebbe infatti impensabile svolgere manualmente questo tipo di procedura.
- Tool di migrazione dati cloud-based: soluzioni che consentono di operare in due circostanze ricorrenti, come il trasferimento di dati da una infrastruttura on-premise verso il cloud e il trasferimento tra diversi data center e servizi disponibili in cloud, quando si configurano situazioni ibride o multi-cloud.
- Tool di migrazione dati open source: all’atto pratico una sottocategoria dei tool cloud-based, basati su progetti open source, utili non soltanto per via di non essere necessariamente vincolati ad un vendor, ma soprattutto per poter personalizzare ogni aspetto del software ai fini di adattarlo alle esigenze specifiche, pur a fronte di una complessità di implementazione e gestione mediamente più elevata rispetto alle soluzioni commerciali.
Nel caso del cloud è evidente, entrando in gioco le architetture a microservizi, come i dati tendano a seguire le applicazioni, che a loro volta si compongono di vari moduli funzionali tra loro disaccoppiati, che necessitano di basi di dati dedicate. I tool di data migration consentono quindi di operare con ordine e raziocinio in quelle situazioni che rischierebbero di generare confusione e frammentarietà sin dalle fasi iniziali della pacchettizzazione delle app, fino a diventare totalmente ingestibili man mano che la varietà e la complessità di dati tende organicamente a crescere con il passare del tempo.
Ogni migrazione, al di là dei rischi che esamineremo in seguito, comporta fisiologicamente un’interruzione di servizio, che può essere mitigata fino a diventare impercettibile all’utente finale. La migrazione dei dati può infatti avvenire in una o più fasi, dando luogo alla seguente distinzione.
- Migrazione in unico step (big bang migration): limita la tempistica del disservizio, rendendo intanto più rischiosa un’operazione eseguita in unico blocco, con la conseguente interruzione del servizio. Solitamente la bing bang migration viene pianificata nei momenti in cui genera il minor disagio nei confronti delle operazioni e degli utenti, come nel caso delle ore notturne, in cui è solitamente atteso un minor volume di traffico dati.
- Migrazione in due o più step (trickle migration): nasce con la logica di distribuire in più fasi i rischi e i disagi comportati dai carichi di lavoro della migrazione dei dati, minimizzando il disservizio grazie al fatto che il sistema da migrare viene mantenuto in funzione fino a quando la nuova configurazione non entra a tutti gli effetti in funzione. Logicamente, tutto questo comporta maggiori oneri in termini di pianificazione e ore da dedicare alla migrazione, con un aggravio di costi per le risorse IT da valutare con molta attenzione. In alcuni casi la trickle migration costituisce una soluzione obbligata, soprattutto se ci sono dei flussi di streaming in tempo reale, che comportano di fatto una migrazione costante dei dati tra due o più ambienti.
Le tipologie di migrazioni
In una realtà IT di livello aziendale si configurano varie situazioni di data migration, a seconda degli aspetti che vengono coinvolti. Si spazia dalla classica migrazione in cloud delle risorse che fino ad un certo momento sono state disponibili on-premise, fino a soluzioni più specifiche, come quelle che riguardano i database ed altri sistemi contenenti i dati.
Vediamo pertanto quali sono le principali tipologie di migrazione dei dati che interessano da vicino le aziende, fermo restando che ogni situazione merita a sua volta un approfondimento specifico per quanto concerne l’individuazione delle modalità di esecuzione della migrazione stessa, sia dal punto di vista economico, sia dal punto di vista progettuale. Un requisito funzionale che andrebbe sempre rispettato consiste nel prevedere situazioni aperte, per non precludere eventuali migrazioni di dati successive.
Migrazione in cloud
La data migration in cloud rappresenta uno degli argomenti di maggior attualità, per via della grande diffusione di soluzioni IaaS (Infrastructure-as-a-Service), PaaS (Platform-as-a-Service) e SaaS (Software-as-a-Service), che consentono alle aziende di trasferire nella nuvola praticamente tutte le risorse IT di cui dispongono on-premise, oltre ad abilitarne alcune del tutto nuove, come le applicazioni cloud native, che necessitano spesso di dati provenienti dai data center in locale.
All’atto pratico, la migrazione dei dati in cloud avviene in due modi, fermo restando tutte le possibili ibridazioni del caso. Nel primo caso si procede con una migrazione online, trasferendo le risorse mediante la rete internet o, nei casi più particolari, mediante l’impiego di una WAN dedicata. Altrimenti è possibile effettuare una migrazione offline, procedendo con una consegna diretta dei dati presso il data center fisico del CSP (Cloud Service Provider) selezionato. In questo caso si utilizzano semplicemente dei dispositivi di storage sufficientemente capienti, da cui i dati vengono successivamente trasferiti sui sistemi del CSP, che procede con le successive operazioni utili a rendere disponibili tali risorse in cloud.
Il fatto di utilizzare una migrazione online o offline dipende da moltissimi fattori. In primo luogo, occorre considerare l’esistenza o meno di una rete per trasferire i dati, dotata di sufficiente banda per completare l’operazione in tempi ragionevoli. Altrimenti incide molto il fattore sicurezza, dovendo soddisfare tutti i requisiti determinati dai criteri normativi e contrattuali relativi alla conservazione e al trattamento dei dati.
Migrazione dei dati (storage)
La migrazione dei dati intesa quale file da spostare su supporti di archiviazione differenti costituisce l’operazione più comune, considerando la frequenza con cui tale operazione viene svolta anche in ambito domestico. Nel contesto aziendale, oltre agli adempimenti tecnologici utili a verificare la congruità dei dati e dei sistemi di archiviazione, è necessario considerare anche gli aspetti relativi alla protezione dei dati stessi, nel rispetto delle policy e delle normative vigenti.
La migrazione degli storage deve al tempo stesso implementare le procedure di backup e disaster recovery richieste dai piani di protezione dei dati e di continuità di business previsti dal relativo piano, se presente, o dalle valutazioni dei responsabili della sicurezza dei dati.
Molto importanti anche gli aspetti relativi alla gestione documentale, che comporta il più delle volte l’esigenza di rendere più moderna ed efficiente i sistemi di storage per digitalizzare una quantità crescente di dati nelle fasi di dematerializzazione degli archivi. La migrazione comporta al tempo stesso l’opportunità di migliorare la data quality convalidando, clonando ed effettuando una pulizia mirata in funzione all’utilizzo che si prospetta.
Migrazione dei database
Migrare un database è un processo specialistico che viene quasi sempre effettuato con applicazioni in grado di automatizzare le operazioni necessarie in maniera rapida ed efficiente, oltre a tutti i controlli relativi all’integrità del sistema di gestione dei dati una volta completata la fase di trasferimento. La migrazione prevede tra l’altro la conversione dello schema del database di origine, che va reso compatibile con quello di destinazione, dal momento che descrive sia l’architettura che la struttura del database stesso, informazioni essenziali per consentire il corretto funzionamento.
I software di database migration sono dotati di logiche self service e consentono di gestire con relativa facilità anche la preparazione dei dati necessaria per l’implementazione in sistemi di gestione come i data warehouse, molto utilizzati nell’analisi svolte tramite applicazioni di Business Intelligence e Business Analytics.
Migrazione delle applicazioni software
La migrazione delle applicazioni è una delle operazioni più comuni quando si decide di passare al cloud e in generale variare il modo con cui si utilizza il software in azienda, per svincolarsi dalla complessità a livello IT che comportano le installazioni on-premise. A livello operativo, la trasformazione digitale delle aziende comporta sempre più spesso la modernizzazione delle applicazioni, sposando la praticità delle architetture a microservizi, che comporta la necessità di riorganizzare e trasferire i dati necessari, un processo non sempre di elementare gestione.
La migrazione delle applicazioni rappresenta una fase molto delicata, che merita il coinvolgimento di consulenti esperti, capaci di individuare quale soluzione abbia più senso intraprendere tra quelle in seguito descritte:
- Rehosting: (lift-and-shift) consiste nello spostamento di un’applicazione da un server on-premise ad una macchina virtuale disponibile in cloud, dove viene riproposto il medesimo ambiente di esecuzione attivo in precedenza, per evitare di modificare in modo sostanziale il software, che rimane molto simile a tradizionalmente presente nel data center e sui device collocati all’interno del perimetro aziendale. In questo caso si sfruttano soprattutto i vantaggi infrastrutturali del cloud, senza spingersi troppo sul fronte dell’innovazione;
- Refactoring: l’applicazione viene modificata nella sua architettura, passando dal modello monolitico a quello a microservizi eseguita in cloud per mezzo dei container. Tale scelte viene ad esempio effettuata per applicazioni con funzionalità modulari, che possono essere migrate in fasi distinte senza condizionare più di tanto l’operatività generale, consentendo in ogni caso di sfruttare gran parte dei vantaggi offerti dal cloud;
- Cloud native: coincide con lo sviluppo di una nuova applicazione nativa in ambiente cloud. E’ il caso del SaaS (Software-as-a-Service), cui si accede esclusivamente da remoto o grazie ad una local app che si interfaccia con l’applicazione eseguita in cloud. Si tratta dell’eventualità privilegiata quando si considera un nuovo progetto di sviluppo. Anche qualora si decidesse di sostituire una precedente applicazione legacy, è necessario rifarla da zero, con logiche architetturali totalmente differenti. Questo fattore comporta la rifunzionalizzazione degli eventuali dati esistenti.
In generale, la variazione dell’ambiente di esecuzione comporta operazioni più o meno ingenti di trasformazione dei dati, per via delle differenti tecnologie utilizzate, quasi mai tra loro del tutto interoperabili. Anche se buona parte di queste operazioni viene svolta da software in grado di automatizzare gran parte delle procedure di trasformazione, rimane quasi sempre indispensabile una capacità di sviluppo dotata dell’esperienza necessaria per gestire situazioni tra loro quasi sempre differenti, ivi compresa una certa manualità nella programmazione e nella gestione delle API necessarie per far comunicare tra loro i vari componenti dell’applicazione.
Quali sono i rischi legati alla migrazione dei dati
L’intervento totale o parziale su un’infrastruttura IT stabile per definizione comporta un certo margine di rischio, che tende a diventare tanto più significativo in funzione dell’entità e della portata del cambiamento che viene introdotto nei sistemi. Per capire fino in fondo questo concetto, tanto elementare nella logica quanto complesso nella realtà dei fatti, basti pensare che i rischi di una migrazione di dati sono palesi anche quando l’operazione di trasferimento viene conclusa con successo.
La prima ragione di questa affermazione, come già precisato, è comportata dalla difficoltà nel garantire la piena interoperabilità dei dati a seguito della migrazione, soprattutto quando si passa da applicazioni legacy ad applicazioni in cloud, una prassi sempre più diffusa nel contesto di modernizzazione che sta interessando la maggior parte delle aziende, a prescindere dalla loro dimensione.
La data migration comporta spesso imprevisti di vario genere, il che non vuol dire che si debba rinunciare ma semplicemente che vadano messi in conto una serie di problemi il più delle volte risolvibili in maniera incruenta. In altri termini, coloro che nella vita scelgono di occuparsi di migrazione dei dati devono avere nel DNA un’elevata predisposizione e attitudine al problem solving, oltre a solide competenze tecnologiche relative agli ambienti informatici che entrano in gioco.
Quando un’azienda fallisce, per qualsivoglia motivo, l’implementazione di una strategia più o meno valida di data migration, rischia pesanti contraccolpi dal punto di vista economico ed operativo. Prevenire è dunque meglio che curare gli effetti derivanti dall’aver sottovalutato la complessità della migrazione, anche in funzione del fatto che eventuali disservizi che dovessero riflettersi sulla clientela potrebbero generare un danno reputazionale che renderebbe oltremodo ardua una riabilitazione generale.
Tra le principali criticità che un processo di migrazione dei dati comporta possiamo considerare:
- Perdita dei dati: accidentali o dovute ad errori nella pianificazione. Va sempre predisposto un sistema di backup e ripristino in grado di riportare il sistema originale alla condizione pre-migratoria, qualora alcuni dati dovessero risultare compromessi;
- Incompatibilità dei dati: i già citati problemi di interoperabilità costituiscono una costante nella data migration ed è necessario conoscere molto bene i data format degli ambienti di esecuzione su cui si interviene;
- Tempistiche di migrazione: il trasferimento dei dati tra differenti server comporta necessariamente una stima dei possibili disservizi derivanti dalla mancata disponibilità degli stessi, soprattutto quando si decide di far propria la big bang migration;
- Sicurezza: costituisce un fattore ormai imprescindibile, che si ricollega nuovamente alla perdita dei dati. Tenere i soggetti malintenzionati alla larga delle informazioni vitali per le sorti del business di un’azienda dovrebbe sempre costituire una delle priorità assolute, non soltanto quando rientrano nel contesto della migrazione dei dati;
- Analisi dei costi: quando si preventiva una migrazione dei dati è sempre opportuno tenere conto di una quota per fronteggiare eventuali imprevisti, in modo da non ritrovarsi nell’imbarazzante situazione di dover giustificare una maggiorazione del preventivo in corso d’opera.
In generale l’esperienza e la capacità di saper pianificare in maniera corretta una data migration dal punto di vista tecnologico ed organizzativo costituisce la miglior polizza contro i rischi e le criticità che possono intervenire in fase esecutiva.
Come pianificare una data migration
La data migration rappresenta una disciplina molto ampia, con casistiche che abbiamo visto spaziano agilmente su tutti i fronti dell’information technology. Ciò ha generato negli anni la disponibilità di una serie di framework, utili quale traccia per definire i veri e propri progetti di migrazione, sia per quanto riguarda l’approccio big bang che per le fasi della trickle data migration, sempre più frequenti nei contesti che prevedono l’impiego dei Big Data & Analytics.
Per preparare in maniera adeguata i dati e renderli disponibili in maniera corretta per l’analisi esistono da tempo strumenti basati sul processo ETL (Extract, Transform, Load) per acquisire il dato dalla fonte, trasformarlo in funzione della data quality desiderata e caricarlo sul sistema di dati predisposto.
I framework per la trickle data migration entrano inoltre nello specifico di prevedere l’articolazione delle varie fasi del processo migratorio:
- Pianificazione della pre-migrazione: comprende tutte le valutazioni necessarie in merito ai dati da migrare, sia nella condizione originale che nelle varie ipotesi di destinazione ipotizzabili, a partire dalla compatibilità dei data format e dalle eventuali operazioni necessarie per renderli tali. Tale fase consente di stimare una prima valutazione del budget necessario per portare a termine le varie ipotesi di progetto che verranno articolate in seguito.
- Ispezione dei dati: coincide con il già citato processo ETL e più in generale con tutti gli adempimenti in termini di data preparation, per avere ragionevole certezza che non intervengano problemi di compatibilità a seguito della migrazione da effettuare.
- Backup dei dati: l’obiettivo è disporre del classico punto di ripristino, nel caso in cui qualcosa dovesse andare storto durante l’esecuzione del trasferimento dei dati dall’origine alla destinazione, oltre che per buona norma nel garantire la continuità di business all’azienda per cui si interviene.
- Progettazione della data migration: si entra nel dettaglio di tutti gli aspetti relativi alla data migration, dai test iniziali, agli standard di data quality necessari, fino alla definizione delle figure professionali da coinvolgere durante l’esecuzione e per accertarsi che tutto sia andato a buon fine una volta completato l’intero processo.
- Esecuzione della data migration: viene eseguito l’intero processo ETL, validando nello specifico le singole sottofasi, in modo da assicurarsi che i dati siano integri, coerenti e funzionali con l’ambiente di destinazione. Durante l’esecuzione vengono adottate le misure ritenute opportune per garantire il minor impatto in termini di downtime.
- Controllo e Monitoraggio post migrazione: vengono effettuati dei test per accertare la corretta funzionalità degli ambienti di esecuzione, che tutti i componenti delle applicazioni funzionino in modo corretto e che i dati siano accessibili nei livelli di performance previsti. In questa fase gli specialisti predispongono dei report utili sia nel fornire un rendiconto delle attività svolte che per lasciare una traccia di conoscenza molto importante che chiunque debba occuparsi di eventuali attività di migrazione e lavoro sui dati in un secondo momento.
Alcune best practice da seguire
La migrazione dei dati è un lavoro che richiede competenze tecniche ma soprattutto una grande esperienza, unita alla capacità di saper gestire quegli imprevisti che non potranno mai essere del tutto esclusi in sede di pianificazione. A prescindere dal metodo di migrazione scelto, possiamo ipotizzare alcune best practice, utili a facilitare lo svolgimento dell’intero iter di data migration.
- Analizzare i dati in maniera approfondita: la conoscenza è fondamentale per contestualizzare le operazioni che dobbiamo svolgere. Per arrivare a destinazione è necessario avere un’adeguata comprensione della situazione di partenza, in merito al modo con cui i dati vengono conservati e trattati in azienda. Un altro aspetto chiave è costituito dalla condivisione degli obiettivi aziendali.
- Dimostrare coerenza nel rispetto delle strategie definite: soprattutto nel caso delle migrazioni complesse è opportuno resistere alla tentazione di navigare a vista cogliendo l’opportunità migliore sul momento. Si è definita una strategia che in quanto tale va rispettata, in modo da consentire a tutte le figure coinvolte di avere un adeguato punto di riferimento nella loro attività. Spesso è molto più semplice rimediare ad un errore quando si ha il controllo della situazione in generale, piuttosto che entrare nel caos e nella confusione che l’improvvisazione spesso e volentieri comporta.
- Scegliere tecnologie software adatte al tipo di data migration da effettuare: sul mercato esistono varie soluzioni, sia commerciali che open source, in grado di automatizzare gran parte delle operazioni di data migration, garantendo la loro gestione attraverso dashboard molto semplici da utilizzare, con tool drag and drop e logiche self-service. Conoscere queste tecnologie nel dettaglio può condizionare in maniera estremamente positiva lo svolgimento delle fasi esecutive.
- Testare tutto il testabile: per quanto sia ovvio, testare consente di prevedere il maggior numero possibile di inconvenienti ed imprevisti che potrebbero facilmente presentarsi durante l’esecuzione della data migration. Una volta definite nel dettaglio tutte le fasi migratorie, è bene dedicare tutto il tempo a disposizione per simulare i possibili effetti. Durante le fasi di testing è possibile concentrare anche le già citate operazioni di backup dei dati da trasferire, in modo da ottimizzare i possibili tempi morti ed accelerare complessivamente il processo.
Questi aspetti costituiscono il pane quotidiano dell’attività di un consulente esperto, a cui un reparto IT che non ha particolare esperienza in fatto di data migration dovrebbe chiedere un supporto almeno in sede di supervisione del processo di data migration. L’esperienza di chi opera da molto tempo in questo consento spazia dalla conoscenza delle principali tecnologie presenti sul mercato al loro utilizzo sul campo, dove per il fatto di aver già svolto molte attività conosce i problemi ricorrenti e sa come gestirli senza farsi prendere dal panico.
La data migration è una disciplina complessa, ma tutt’altro che esatta e risolvibile con la semplice teoria, ed è proprio la capacità di saper gestire le situazioni caso per caso a fare davvero la differenza, evitando di trascinarsi dei problemi che una valutazione poco attenta quasi sempre comporta.