Che cos’è la migrazione del database?
Che cos’è la migrazione del database?
La migrazione del database è un processo che sposta un database da un ambiente all’altro. Nel tentativo di modernizzare le proprie applicazioni, le aziende migrano i database associati dai server on-premises al cloud.
La migrazione dei database sul cloud consente infatti di aumentare l’affidabilità, la scalabilità e le prestazioni dei servizi. Inoltre, riduce i costi infrastrutturali per la manutenzione dei data center on-premises.
Lo spostamento dei volumi di dati nel cloud è importante per garantire l’integrità dei dati, la conformità e la continuità aziendale. Tieni presenti le seguenti best practice.
Budget
La migrazione dei dati implica attività come il controllo dei dati, la mappatura, il test e il monitoraggio post-migrazione. A volte, l’applicazione che accede al database richiede modifiche prima di poter leggere i dati dal database migrato. Le aziende devono quindi preventivare il tempo, i costi e le risorse necessari per tali attività.
Tempo di inattività
Durante la migrazione del database, è importante pianificare i tempi di inattività nel passaggio dall’origine alla destinazione. Azzerare i tempi di inattività è impossibile, ma è possibile ridurre le interruzioni aziendali pianificando la migrazione e utilizzando strumenti di migrazione del database appropriati. Ad esempio, è possibile testare il database cloud molto prima del switchover per garantire l’affidabilità delle applicazioni e l’accuratezza dei dati.
Sistemi di origine e destinazione
Un trasferimento omogeneo sposta i dati dai sistemi di origine a quelli di destinazione con motori di database simili. Al contrario, lo spostamento dei dati su una piattaforma di destinazione diversa viene definito trasferimento eterogeneo. Ad esempio, la migrazione di un database MySQL a un database MySQL è omogenea, mentre il trasferimento di Postgres SQL ad Amazon Aurora è eterogeneo. Il trasferimento omogeneo è più semplice perché permette di spostare il database nella destinazione senza ulteriori manipolazioni. Tuttavia, nel caso di una migrazione eterogenea, gli architetti del database dovrebbero pulire e trasformare i dati prima di trasferirli.
Tipo di migrazione
La migrazione del database può essere dei seguenti tipi.
- Una migrazione parziale sposta solo una parte del set di dati dal database originale al cloud.
- Una migrazione completa del database, invece, trasferisce tutti i dati dalla piattaforma di origine alla piattaforma di destinazione.
Dopo entrambi i trasferimenti, il database di origine viene disconnesso dall’applicazione. Un altro tipo di migrazione è quella continua, ovvero la replica dei dati. In questo caso, i dati vengono copiati dal database di origine al database di destinazione a tempo indeterminato.
Quali sono i tipi di migrazione dei database?
Prima di eseguire la migrazione, bisogna valutare quale tipo si adatta meglio al proprio caso d’uso.
Migrazione offline
La migrazione offline è adatta per spostare database non critici che possono tollerare tempi di inattività significativi. Quando si esegue la migrazione offline, è necessario interrompere la scrittura delle applicazioni nel database per un determinato periodo. Questo tempo di inattività consente agli architetti di eseguire un lift and shift del database sul cloud e modificare l’applicazione. Di solito, le aziende scelgono la migrazione offline quando modernizzano i sistemi legacy non supportati dagli strumenti di migrazione al cloud. Allo stesso modo, la migrazione offline dei database è ideale per progetti di test e sviluppo in cui gli aggiornamenti tempestivi dei dati non sono fondamentali.
Prendiamo l’esempio della migrazione di un database Oracle on-premises ad Amazon RDS per Oracle. Nonostante siano ospitati su infrastrutture diverse, i due database condividono motori simili. Pertanto, il processo di migrazione dei dati è semplice, come descritto di seguito.
Fase 1: Stabilire la connettività di rete
Connetti il database on-premises al cloud AWS utilizzando una rete sicura. Puoi configurare una rete privata virtuale o utilizzare AWS Direct Connect per abilitare la connettività on-premises al cloud. Con AWS Direct Connect, puoi connettere direttamente i database senza passarli attraverso la rete Internet pubblica.
Fase 2: Interrompere la scrittura dell’applicazione
Per evitare modifiche impreviste al database di destinazione, impedisci alle applicazioni di scrivere nel database di origine.
Fase 3: Trasferire i dati da on-premises al cloud
A questo punto, implementa strumenti di trasferimento dati nativi su un server cloud. Per ridurre i costi, consigliamo di configurare gli strumenti su Amazon EC2. In questo modo, paghi solo le risorse utilizzate per eseguire gli strumenti nativi del database. Gli strumenti vengono utilizzati per estrarre i dati dal database di origine e ripristinarli nel database cloud.
Fase 4: Eseguire lo switchover del database
Dopo aver trasferito l’intero database nel cloud, convalidalo per garantire la coerenza dei dati. Quindi, reindirizza tutte le query di dati dall’applicazione al nuovo database.
Migrazione dei carichi di lavoro di produzione
La migrazione del carico di lavoro di produzione richiede un approccio diverso rispetto allo spostamento di database non critici. Infatti, i carichi di lavoro di produzione e le relative origini dati non possono essere messi offline. Gli utenti devono poter accedere sempre ai servizi, anche quando è in corso il trasferimento dei dati. Pertanto, sono necessari un’ampia pianificazione e un accurato coordinamento per rendere possibile la migrazione senza dover chiudere l’applicazione.
In questo caso, gli architetti devono applicare script interni o strumenti di replica dei dati di terze parti per migrare questo tipo di database. Gli script o gli strumenti replicano i dati dal database on-premises al database cloud. Mentre avviene la replica dei dati, il database on-premises rimane operativo.
Le sfide sorgono quando gli sviluppatori di software rivedono lo script per soddisfare i requisiti di dati in continuo cambiamento. Inoltre, gli strumenti di database di terze parti utilizzati potrebbero richiedere un aggiornamento per una corretta migrazione del database.
Replica del database online
La replica di un database implica la scrittura di script per l’impostazione degli schemi di database in nuovi motori e poi il trasferimento dei dati dal database di origine a quello di destinazione. Gli schemi contengono definizioni per archiviare e disporre i dati in un database facilmente riconoscibile. Gli ingegneri possono utilizzare strumenti di replica dei dati di terze parti per creare e mantenere più copie dei dati su server diversi. Entrambi gli approcci sono ugualmente impegnativi, perché comportano un notevole intervento manuale, sono soggetti a errori e possono essere inefficienti.
Un modo più efficiente e sicuro per replicare i database online può essere AWS Database Migration Service (DMS). Si tratta di un servizio cloud che automatizza la migrazione del database su vari motori di database. Invece di scrivere manualmente gli script per il trasferimento dei dati, DMS può scansionare automaticamente gli schemi del database originale e creare nuovi schemi per la destinazione. Questo consente agli sviluppatori di concentrarsi sull’innovazione delle applicazioni anziché sulla laboriosa gestione dei database.
Di seguito i passaggi per replicare il database on-premises nel cloud.
Fase 1: Creare un inventory dei dati esistenti
Analizza i database attualmente ospitati on-premises. Per accelerare il processo, utilizza AWS DMS Fleet Advisor. Questo strumento analizza il parco di database e server di analisi esistenti e identifica i potenziali percorsi di migrazione. Inoltre, compila prestazioni, schemi, modelli di utilizzo e altre metriche.
Fase 2: Spostare il database sul cloud
Utilizza AWS DMS per migrare l’intero database dal data center on-premises al cloud. È possibile attivare la modalità Change Data Capture (CDC) di DMS per abilitare la replica quasi in tempo reale. Con CDC, DMS acquisisce le modifiche ai dati man mano che avvengono nel database originale e le applica a tutti i database replicati.
Rifattorizzazione del database
In alcuni casi, la strategia di migrazione del database prevede la rifattorizzazione o il trasferimento eterogeneo. Le aziende effettuano la rifattorizzazione dei database durante la modernizzazione delle applicazioni per diversi motivi, tra cui la riduzione dei costi di licenza, l’accesso alle funzionalità cloud e il miglioramento della qualità dei dati. In una migrazione eterogenea, le informazioni archiviate nel database di origine non possono essere spostate così come sono. Infatti, i dati devono essere puliti, trasformati e strutturati in base ai nuovi schemi supportati dal database di destinazione.
Di seguito i passaggi necessari per eseguire la rifattorizzazione di un database.
Fase 1: Verificare il database
Analizza il database on-premises e identifica gli schemi utilizzati per archiviare i dati. Pianifica come verranno archiviati i dati correnti nel nuovo database. A volte, la rifattorizzazione del database comporta il consolidamento di più database in uno o la distribuzione dei dati da un singolo database a più database.
Fase 2: Convertire lo schema del database
Converti lo schema compilato dal database di origine nei formati richiesti per quello di destinazione. Puoi usare AWS DMS Schema Conversion per semplificare il processo.
Nota: gli ingegneri dei database potrebbero dover creare o modificare manualmente i nuovi schemi, in particolare per set di dati molto complessi.
Fase 3: Avviare la migrazione del database
Migra i dati dal database on-premises a quello cloud con AWS DMS. Per assicurarti che il database cloud acquisisca tutte le modifiche durante la migrazione, attiva la modalità CDC. Dopo aver trasferito tutti i dati, reindirizza i servizi dell’applicazione al database cloud.
In che modo AWS supporta le esigenze di migrazione dei database?
Le aziende migrano i database sul cloud per ridurre i costi infrastrutturali, migliorare l’affidabilità dei servizi e sfruttare altre funzionalità cloud. La migrazione del database può richiedere semplicemente il trasferimento di un intero database così com’è o la ricostruzione di interi schemi per soddisfare nuovi requisiti di dati. Indipendentemente dalle complessità della migrazione, però, è essenziale garantire che i dati vengano trasferiti in modo sicuro, accurato e puntuale. Esplora AWS Database Migration Service per strumenti gestiti che consentono lo switchover quasi in tempo reale, l’analisi del database, il trasferimento automatico dei dati e altro ancora.