Per effettuare il rehosting di un'applicazione, è necessario migrarla tra ambienti, in genere da locale al cloud o, in alcuni casi, di nuovo in locale per carichi di lavoro specializzati, senza alterarne l'architettura di base o il codice.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Come eseguire il replatforming delle app
Come eseguire il refactoring delle app
Modernizzazione delle applicazioni
Cos'è una migrazione al cloud?
Trasformazione digitale
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Il rehosting delle applicazioni, noto anche come "lift and shift", è il processo di spostamento di un'applicazione da un ambiente in locale a un cloud con poche o nessuna modifica alla sua architettura sottostante. Questo approccio consente alle organizzazioni di migrare rapidamente i carichi di lavoro senza dover riprogettare o modificare in modo significativo le proprie applicazioni.
Spostando le applicazioni su piattaforme cloud, le aziende possono ridurre la dipendenza dall'hardware fisico, tagliare i costi operativi e migliorare la scalabilità e la resilienza.
Sono diversi i fattori chiave che stanno alla base del passaggio agli ambienti cloud:
Mentre la maggior parte delle organizzazioni migra verso il cloud per sfruttare questi vantaggi, una minoranza significativa (in genere grandi aziende con carichi di lavoro specializzati) sta riallocando determinate applicazioni in ambienti on-premise per soddisfare specifiche esigenze in termini di prestazioni, conformità o costi.
La modernizzazione delle applicazioni si riferisce al processo di aggiornamento e migrazione delle applicazioni software esistenti e della loro infrastruttura sottostante per supportare al meglio le esigenze di sicurezza, prestazioni e scalabilità di un'organizzazione. Un approccio comune in questo sforzo più ampio è il rehosting.
Sebbene il rehosting non comporti modifiche significative all'applicazione stessa, sblocca i vantaggi del cloud e aiuta a supportare ulteriori sforzi di modernizzazione, come la containerizzazione, l'adozione di microservizi o la riprogettazione.
In alcuni casi, il rehosting è la fase finale per le applicazioni legacy che non richiedono aggiornamenti significativi. In altri casi, funge da fase transitoria prima di una trasformazione più profonda.
Esistono diversi approcci alla modernizzazione delle applicazioni, tra cui:
Ogni approccio presenta dei compromessi in termini di tempo, costi e complessità. Il rehosting offre velocità e semplicità, il che lo rende una scelta pratica per le organizzazioni che desiderano ridurre i rischi accelerando l'adozione del cloud.
Il rehosting è molto più che spostare il codice applicativo da un server in un datacenter a una macchina virtuale nel cloud. Si tratta di un processo strutturato che include pianificazione, automazione, test e ridimensionamento, non solo delle risorse di elaborazione, ma dell'intera infrastruttura applicativa.
Prima di eseguire il rehosting un'applicazione in un'infrastruttura cloud, prenditi del tempo per capire cosa deve essere spostato e come l'elemento da spostare interagisce con altri sistemi.
Durante la fase di rilevamento, mappa i componenti chiave dell'applicazione e le relative dipendenze, quali un binario applicativo monolitico (una singola unità distribuibile contenente tutta la logica, come un JAR, WAR o EXE), un livello di presentazione renderizzato lato server (ad es. JSP, ASP.NET), la logica di business integrata direttamente nell'applicazione e un database relazionale, spesso un singolo RDBMS come Oracle, SQL Server o MySQL.
Considera anche le dipendenze comuni, tra cui server applicativi (come Tomcat, WebLogic o IIS), API esterne, sistemi di autenticazione, regole di rete, IP o endpoint hardcoded e qualsiasi altro servizio connesso. Questo elenco non è esaustivo, ma include molti degli elementi tipici che si trovano nelle architetture applicative tradizionali.
Questo passaggio aiuta a prevenire sorprese durante la migrazione e garantisce che tutte le parti mobili siano prese in considerazione.
Una volta mappate le principali dipendenze, valuta di cosa necessita l'applicazione nel suo nuovo ambiente:
Questo è anche il momento di valutare lo stack di supporto: DNS, CDN, protezione da attacchi DDoS e osservabilità. Anche il rehosting offre l'opportunità di modernizzare questi livelli.
I fornitori di servizi cloud svolgono un ruolo fondamentale per il successo a lungo termine delle attività di migrazione. Anche se il prezzo di calcolo è spesso il primo elemento di paragone, analizza più a fondo.
Quando si valutano fornitori di servizi cloud o di modernizzazione, è importante cercare un fornitore che offra un set completo di funzionalità per supportare prestazioni, sicurezza ed efficienza operativa. Ciò include servizi di backend scalabili in grado di crescere con la domanda senza introdurre picchi di costo imprevedibili, oltre a funzionalità di sicurezza integrate a livello di rete come Web Application Firewall (WAF), protezione da attacchi DDoS e controlli di accesso granulari.
Una rete globale di distribuzione dei contenuti (CDN) è essenziale per garantire una distribuzione rapida e coerente di risorse statiche e dinamiche agli utenti di tutto il mondo. I fornitori dovrebbero offrire servizi DNS integrati che siano non solo veloci e affidabili, ma anche programmabili per supportare l'automazione e la resilienza.
Infine, gli strumenti di osservabilità nativi, o l'integrazione perfetta con gli stack di registrazione e monitoraggio esistenti, sono fondamentali per mantenere la visibilità e il controllo man mano che le applicazioni scalano e si evolvono.
La migrazione ha successo quando un'applicazione viene eseguita correttamente, in modo sicuro ed efficiente. Dopo il rehosting, è importante confrontare gli indicatori chiave di prestazione, come latenza e throughput, rispetto alla baseline In locale, per garantire che l'applicazione soddisfi le aspettative degli utenti. L'esecuzione di test di carico può aiutare a simulare la domanda del mondo reale e a scoprire problemi che potrebbero non emergere in condizioni normali. Anche l'analisi dei log e degli avvisi è fondamentale per identificare anomalie o configurazioni errate che potrebbero influire sull'affidabilità o sulla sicurezza.
Oltre alle prestazioni delle applicazioni, i team dovrebbero convalidare anche i componenti dell'infrastruttura di supporto, tra cui la risoluzione DNS, il comportamento della CDN, le configurazioni TLS e le regole del firewall, per confermare che funzionino come previsto nel nuovo ambiente.
Nell'ambito del processo di migrazione, la gestione del traffico svolge un ruolo fondamentale nel garantire una transizione fluida, senza tempi di inattività per i clienti. Tecniche quali lo spostamento del traffico basato su DNS, il bilanciamento del carico ponderato e le implementazioni canary possono aiutare a migrare gradualmente gli utenti dall'ambiente locale alla versione basata su cloud dell'applicazione. Ciò consente ai team di monitorare il comportamento del sistema in tempo reale, identificare tempestivamente i problemi e annullare le modifiche se necessario, il tutto senza compromettere l'esperienza dell'utente finale. Un attento coordinamento dei TTL DNS, dei controlli di integrità e della copertura di monitoraggio è essenziale per mantenere la continuità del servizio durante questa fase critica.
La scalabilità dovrebbe essere proattiva. Se appropriato per i carichi di lavoro attuali, valuta l'utilizzo di gruppi di autoscaling o di opzioni serverless. Inoltre, monitora la spesa per il cloud: l'ottimizzazione dei costi nella migrazione al cloud non si ferma dopo l'avvio delle applicazioni nel cloud.
Dopo la migrazione, l'osservabilità continua può aiutare a:
Implementare il monitoraggio cloud native o di terze parti per supportare:
Il rehosting è spesso la soluzione ideale quando le organizzazioni hanno bisogno di migrare rapidamente, evitare notevoli sforzi di sviluppo o estendere la durata di un sistema legacy. Può anche essere la soluzione ideale per le organizzazioni che desiderano ridurre le dipendenze dall'infrastruttura fisica, avviando al contempo una più ampia trasformazione dell'infrastruttura IT.
Il rehosting è più efficace negli scenari in cui le organizzazioni dispongono di applicazioni legacy stabili ma costose, la cui manutenzione in sede sta diventando onerosa. È inoltre una soluzione ideale quando è necessario uscire rapidamente da un datacenter o quando la priorità è passare al cloud con un'interruzione minima del codice applicativo esistente.
Per i team che pianificano iniziative di modernizzazione più ampie in futuro, il rehosting può rappresentare un primo passo strategico, consentendo modifiche fondamentali oggi e preservando al contempo la flessibilità per futuri refactoring. In questi casi, il rehosting aiuta ad aumentare il valore delle applicazioni legacy senza richiedere riscritture immediate, guadagnando di fatto tempo per un'ulteriore modernizzazione quando l'organizzazione sarà pronta.
Quando si valuta il rehosting come percorso di modernizzazione delle applicazioni, è necessario considerare:
Il rehosting può aiutare a gestire i rischi e i vincoli di risorse, fornendo un percorso relativamente agevole verso il cloud.
Il rehosting può offrire un'ottimizzazione dei costi a breve termine nella migrazione al cloud riducendo i costi di manutenzione e licenza dell'hardware, i costi generali del datacenter e i tempi di provisioning dell'infrastruttura. Tuttavia, il rehosting da solo potrebbe non ottimizzare completamente i costi a lungo termine. Senza refactoring o replatforming, le applicazioni potrebbero non sfruttare appieno le efficienze cloud native come l'autoscaling, le architetture serverless o i servizi gestiti.
Nel breve termine, le organizzazioni possono ottenere un rapido ROI eliminando le spese in conto capitale e la necessità di infrastrutture fisiche. A lungo termine, tuttavia, realizzare una vera efficienza in termini di costi richiede un'ottimizzazione più approfondita, come l'ottimizzazione dell'utilizzo di calcolo, il ridimensionamento delle istanze e il disaccoppiamento dei servizi monolitici per migliorare la scalabilità e l'allocazione delle risorse.
Sebbene il rehosting possa ridurre alcuni rischi per la sicurezza, come la dipendenza dall'applicazione di patch a infrastrutture vulnerabili e obsolete, crea anche nuovi rischi. Le applicazioni che erano sicure in un ambiente in locale controllato potrebbero essere esposte in un ambiente cloud meno controllato, a meno che non vengano adottate misure per proteggerle adeguatamente tramite una piattaforma di sicurezza cloud native.
Il costo è un'altra considerazione fondamentale. Senza una gestione proattiva, le applicazioni rehosted possono generare fatture cloud più elevate del previsto. Ad esempio, le tariffe di uscita, ovvero i costi per lo spostamento dei dati fuori dall'ambiente di un provider cloud, possono aumentare rapidamente, soprattutto per le applicazioni ad alta intensità di dati.
Per evitare costi imprevisti dopo la migrazione al cloud, le organizzazioni dovrebbero adottare un approccio proattivo alla gestione delle risorse e dei costi. Ciò include un attento monitoraggio delle tendenze di utilizzo per identificare modelli e anomalie e stabilire chiare politiche di governance dei costi per definire la proprietà e la responsabilità. L'automazione di attività come il dimensionamento corretto e la pianificazione delle risorse sottoutilizzate può aiutare a ridurre gli sprechi e ottimizzare la spesa. Inoltre, l'impostazione di budget e avvisi all'interno delle piattaforme cloud fornisce segnali di allerta tempestivi prima che i costi superino le soglie accettabili, aiutando i team a mantenere il controllo man mano che gli ambienti si espandono.
Ogni strategia di migrazione dovrebbe integrare la sicurezza come fattore fondamentale durante l'intero processo, tra cui:
Per effettuare un rehosting di successo non basta semplicemente copiare un'app sul cloud. I cutover eseguiti male possono avere le seguenti conseguenze:
Un problema comune: i clienti o i partner potrebbero fare affidamento su indirizzi IP statici collegati al vecchio datacenter di un'applicazione. Se tali indirizzi IP non vengono aggiornati, il traffico si interrompe. Le organizzazioni devono prevedere queste dipendenze e coordinarsi in modo proattivo con le parti interessate per garantire un passaggio senza intoppi.
Un rehosting ben pianificato include:
Cloudflare accelera la modernizzazione delle applicazioni trasformando video e immagini, bilanciando il carico delle applicazioni e risolvendo il DNS a livello globale per prestazioni rapide e affidabili. La protezione automatizzata difende da bot, DDoS e attacchi zero-day, mentre l'osservabilità integrata garantisce la conformità negli ambienti cloud. Grazie a queste funzionalità, Cloudflare rafforza ogni livello dello stack applicativo per una modernizzazione sicura, ad alte prestazioni e pronta per il futuro.
Scopri di più sulla modernizzazione delle applicazioni.
Il rehosting, noto anche come processo "lift and shift", comporta lo spostamento di un'applicazione da un ambiente (tipicamente dall'infrastruttura in locale) a una piattaforma cloud, con modifiche minime alla sua architettura o al codice di base. Il rehosting consente una rapida migrazione dei carichi di lavoro.
Le organizzazioni migrano le applicazioni nel cloud per diversi motivi, tra cui: maggiore scalabilità grazie alle risorse elastiche; miglior efficienza dei costi grazie alla riduzione delle spese generali e a un modello di pagamento a consumo; migliore resilienza e disponibilità grazie alla ridondanza integrata; robuste funzionalità di sicurezza e certificazioni di conformità offerte dai principali provider di servizi cloud; e innovazione accelerata grazie all'accesso a servizi avanzati come l'IA e l'elaborazione serverless.
Il rehosting supporta la modernizzazione delle applicazioni trasferendo le applicazioni esistenti nel cloud, consentendo così di sfruttare i vantaggi del cloud. Sebbene questo processo non comporti modifiche significative alle applicazioni, può fungere da passaggio fondamentale per ulteriori sforzi di modernizzazione come la containerizzazione o la riprogettazione. Oppure può essere un passaggio finale per le applicazioni legacy che non necessitano di aggiornamenti significativi.
Il rehosting comporta lo spostamento di un'applicazione nel cloud con modifiche minime. Il replatforming implica l'esecuzione di alcune modifiche ottimizzate per il cloud, come il passaggio da un database autogestito a un servizio cloud gestito, senza alterare il codice dell'applicazione principale. Il refactoring, invece, significa riprogettare o riscrivere un'applicazione per sfruttare appieno le funzionalità cloud native, come i container o l'elaborazione serverless.
Le best practice per il rehosting includono: una valutazione e pianificazione approfondite per identificare le dipendenze delle applicazioni; la valutazione delle esigenze dell'infrastruttura cloud (elaborazione, archiviazione, latenza, backup, disponibilità regionale, larghezza di banda); la selezione del giusto provider di servizi cloud in base a funzionalità complete (non solo ai prezzi); test rigorosi e convalida post-migrazione; e il monitoraggio e la scalabilità continui delle risorse cloud.
Il rehosting è ideale quando un'organizzazione deve migrare rapidamente applicazioni legacy stabili ma costose da ambienti in locale, o quando l'organizzazione deve uscire rapidamente da un datacenter con interruzioni minime al codice esistente. È anche adatto come primo passo strategico per i team che pianificano una modernizzazione più ampia in seguito, offrendo tempo e flessibilità per le trasformazioni future.
Il rehosting può consentire di ottimizzare i costi a breve termine riducendo i costi di manutenzione dell'hardware, le spese di licenza, le spese generali del datacenter e i tempi di provisioning dell'infrastruttura. Tuttavia, per realizzare un'efficienza dei costi a lungo termine, potrebbero essere necessari sforzi di ottimizzazione di più ampia portata come la regolazione dell'uso delle risorse di elaborazione, il corretto dimensionamento delle istanze e il disaccoppiamento dei servizi, poiché il solo rehosting non sfrutta appieno tutte le efficienze cloud native.
Durante il rehosting delle applicazioni, è fondamentale considerare i nuovi rischi per la sicurezza che possono emergere in un ambiente cloud meno controllato. I team devono garantire la crittografia dei dati (sia in transito che a riposo); implementare un solido controllo degli accessi e una gestione delle identità; e mantenere la conformità agli standard di settore pertinenti. È consigliabile un approccio proattivo con una piattaforma di sicurezza cloud-native.
Una preparazione approfondita prima del rehosting è cruciale per evitare problemi come esperienze utente interrotte, tempi di inattività durante la propagazione del Domain Name System (DNS), problemi di latenza o disponibilità e dipendenze non soddisfatte. La preparazione comporta la pianificazione per affrontare potenziali problematiche, come indirizzi IP obsoleti su cui clienti o partner potrebbero fare affidamento. Una strategia di rehosting ben preparata include la comunicazione dei piani con gli stakeholder, l'istituzione di ambienti di test con opzioni di rollback e la produzione di una documentazione chiara con tutte le modifiche.