Panoramica
La migrazione delle applicazioni è il processo di trasferimento di un'applicazione da un ambiente a un altro, con l'obiettivo di ottimizzare i carichi di lavoro. Per fare alcuni esempi comuni, si potrebbe eseguire la migrazione da un ambiente cloud o da un datacenter all'altro, da un cloud pubblico a un servizio cloud privato o ibrido o ancora da un datacenter on premise a un provider cloud.
La migrazione al cloud implica il trasferimento di dati e applicazioni da un datacenter on premise a un'infrastruttura cloud o da un ambiente cloud all'altro e in questo caso si parla di migrazione da cloud a cloud. Il trasferimento delle applicazioni potrebbe richiederne anche la parziale modifica, in modo che possano essere distribuite o funzionare in modo più efficace nell'ambiente cloud. La migrazione dei dati, infine, prevede il trasferimento di dati da un sistema di storage o da un ambiente di elaborazione all'altro.
Modelli di migrazione delle applicazioni
Per eseguire la migrazione delle applicazioni esistono diversi modelli o percorsi:
Ritiro/sostituzione: a volte è più semplice smettere di utilizzare un'applicazione o introdurne una nuova. Questa soluzione potrebbe essere adottata se l'applicazione non offre più molti vantaggi, se le funzionalità di cui è dotata sono disponibili altrove o perché è più conveniente sostituirla, magari con una piattaforma Software-as-a-Service (SaaS), che eseguirne la migrazione.
Rehosting: detto anche lift and shift, è il processo di trasferimento di un'applicazione da un ambiente a un altro senza apportare modifiche importanti, ed è spesso la procedura di migrazione più rapida ed economica. Tuttavia, il rehosting senza modifiche può aumentare i costi nel lungo periodo, poiché le applicazioni vengono eseguite nel cloud senza sfruttare le funzionalità cloud native.
Replatforming: questa procedura introduce piccoli aggiornamenti alle applicazioni, ad esempio la modifica dei sistemi operativi per consentirne il funzionamento con un database gestito cloud native.
Refactoring: noto anche come rearchitecting, prevede la modifica sostanziale delle applicazioni, ad esempio la ricodifica di parti di codice, in modo che l'applicazione sia dotata di funzionalità cloud native.
Riscrittura: anche detta rebuild, indica il processo con cui l'applicazione viene riscritta per essere adattata al cloud.
Risorse da Red Hat
Sfide della migrazione delle applicazioni
Sebbene i vantaggi della migrazione delle applicazioni nel cloud, ad esempio il miglioramento dell'efficienza operativa, l'accelerazione dei tempi di distribuzione e la riduzione dei costi, siano numerosi, persistono ancora alcune sfide da affrontare:
Costi: senza un'attenta pianificazione si può incorrere in spese impreviste. Per non superare il budget preventivato, i team devono considerare, tra gli altri, i costi operativi, quelli delle nuove licenze o le spese per la formazione all'uso dei nuovi strumenti.
Downtime: se si introducono modifiche importanti a un'applicazione, possono emergere problemi che si traducono in downtime imprevisti.
Complessità tecnica: le dipendenze da altre applicazioni e servizi possono complicare il refactoring o il replatforming, aumentando le difficoltà e dilatando i tempi di migrazione. Data la complessità delle operazioni coinvolte, inoltre, è possibile che i dipendenti dell'azienda non dispongano delle competenze necessarie per eseguire questa procedura in modo efficiente.
Gestione del cambiamento: le differenze nei modelli di utilizzo delle applicazioni tra le organizzazioni possono rallentare i progetti di migrazione.
Licenze e conformità: è importante saper gestire correttamente le licenze software. È buona prassi tenere traccia delle applicazioni aziendali e prendere nota delle licenze relative al cloud computing. Inoltre, durante il passaggio al cloud, è necessario che i dati siano protetti in conformità alle normative nazionali e di settore.
Migrazione delle applicazioni in uso
La migrazione di un'applicazione in uso comporta diversi problemi. È quindi importante analizzare accuratamente ogni applicazione prima di far partire questo processo, e decidere il percorso di migrazione solo in un secondo momento: ritiro/sostituzione, rehosting, replatforming, refactoring o riscrittura.
Di seguito elenchiamo solo alcuni dei problemi che si possono verificare durante la migrazione di un'app in uso:
- Compatibilità e integrazione: le applicazioni in uso potrebbero non essere compatibili con i sistemi moderni e richiedere modifiche o aggiornamenti.
- Migrazione dei dati: il trasferimento dei dati da sistemi obsoleti può essere complesso e rischioso.
- Documentazione incompleta: una documentazione carente rende più difficile capire come funziona l'app e qual è il percorso di migrazione migliore.
- Debito tecnico: spesso le app in uso hanno un codice obsoleto o un design poco efficiente.
- Risorse limitate: la migrazione richiede tempo, denaro e professionisti esperti, e non sempre queste risorse sono disponibili.
- Rischi per la sicurezza: i software obsoleti possono presentare vulnerabilità di sicurezza da risolvere.
- Problemi di prestazioni: a volte la migrazione ha un impatto negativo sulle prestazioni dell'app e bisogna quindi procedere a un'ulteriore ottimizzazione.
Perché eseguire la migrazione delle applicazioni?
La migrazione è un'opportunità per aumentare la flessibilità, semplificare la manutenzione e migliorare le prestazioni delle applicazioni. Può rivelarsi vantaggiosa per diversi motivi, come la modernizzazione e la containerizzazione, il debito tecnico e l'innovazione.
Le organizzazioni che analizzano le difficoltà operative di un'applicazione e desiderano migliorarla devono considerare diversi aspetti:
Complessità: l'applicazione è stata sviluppata internamente all'azienda? Da quanto tempo viene utilizzata? Quante altre applicazioni o flussi di lavoro dipendono dall'applicazione?
Criticità: quanti utenti utilizzano quotidianamente questa applicazione? Chi la gestisce? Quali tempi di fermo è in grado di tollerare l'azienda? L'applicazione viene utilizzata in produzione, sviluppo, test o in tutti e tre gli ambienti?
Conformità: a quali normative deve essere conforme l'applicazione?
Disponibilità: quali standard di uptime deve soddisfare l'applicazione?
Fasi e best practice per la migrazione delle applicazioni
Una volta individuato il motivo per cui eseguire la migrazione, è possibile avviare il processo in quattro fasi, attenendosi alle best practice.
Valutazione delle applicazioni
In questa prima fase avviene una valutazione approfondita del portfolio di applicazioni, includendo infrastruttura IT, sistemi esistenti e limiti che potrebbero influire sulla migrazione. Occorre inoltre preparare l'ambiente di destinazione tenendo conto dei requisiti specifici in termini di conformità, scalabilità ed esigenze aziendali. La fase di valutazione è fondamentale per identificare le app già predisposte al cloud e quelle che dovranno essere modificate.
Valutazione degli aspetti organizzativi
Una volta valutate le applicazioni, è necessario collaborare con i team interessati, che potranno partecipare alla pianificazione e acquisire maggiore consapevolezza degli effetti della migrazione sul proprio lavoro e sui processi aziendali esistenti. In questa fase la comunicazione è fondamentale.
Scelta del modello di migrazione ed elaborazione di una strategia
In questa fase, le applicazioni possono essere suddivise in gruppi, per procedere con una migrazione a blocchi. È importante documentare ciascuna fase in modo che tutti i team siano aggiornati e dispongano della documentazione di supporto.
Automazione
Per incrementare l'efficienza, le organizzazioni dovrebbero automatizzare i modelli ripetuti, allo scopo di accelerare il processo di migrazione, ridurre i rischi e risparmiare sotto il profilo economico.
Test completi
Una volta completata la migrazione, è possibile verificare se la procedura sia andata a buon fine eseguendo dei test, come i test di accettazione utente (UAT) e quelli di sicurezza.
Perché scegliere Red Hat?
Red Hat® OpenShift® semplifica l'intero ciclo di vita di sviluppo dell'applicazione, dalla creazione e alla distribuzione fino all'esecuzione e alla gestione. Riduce le complessità legate alla modernizzazione e alla migrazione delle applicazioni, come la creazione e il rinnovamento con IA su ambienti ibridi e multicloud, per garantire più efficienza e produttività a sviluppatori e team IT operativi.
Red Hat offre il migration toolkit for applications (MTA), che accelera la modernizzazione delle applicazioni su larga scala nel cloud ibrido su Red Hat OpenShift. Questo strumento è in grado di occuparsi di containerizzazione, analisi del codice sorgente e gestione dei progetti, e può quindi accelerare l'innovazione delle app in uso.
Vuoi eseguire la migrazione delle app e renderle compatibili con l'intelligenza artificiale e le tecnologie cloud native? Red Hat agevola il trasferimento dell'infrastruttura tradizionale (incluse le macchine virtuali) su una piattaforma applicativa completa, dove potrai creare, eseguire e distribuire allo stesso tempo applicazioni containerizzate e virtualizzate. Una volta fatto questo, potrai avviare il processo di innovazione secondo i tuoi ritmi.
Avvia la migrazione delle tue macchine virtuali a Red Hat OpenShift Virtualization, una piattaforma applicativa moderna basata sulle iniziative open source KVM e KubeVirt in grado di eseguire sia macchine virtuali che container. Il migration toolkit for virtualization incluso con la piattaforma fornisce gli strumenti necessari per eseguire la migrazione in pochi semplici passaggi. Con l'automazione, Red Hat Ansible® Automation Platform ti permette di accelerare ogni fase della distribuzione, dalla scalabilità della migrazione alle attività di manutenzione e correzione. Con Red Hat Advanced Cluster Management for Kubernetes puoi monitorare la sicurezza e le prestazioni delle VM da un'unica console. Con ulteriori opzioni di supporto e integrazioni dei partner per lo storage, il backup e il ripristino di emergenza e le reti, puoi affidarti a Red Hat per ottenere l'ottimale funzionamento della tua infrastruttura virtuale nel cloud ibrido e avviare il tuo percorso di modernizzazione con la giusta preparazione.