Di Tiziano Campili – Cloud & System Architect at InfoCert

La decisione di utilizzare uno dei numerosi cloud provider come infrastruttura portante dei propri servizi è un momento critico per una azienda: al tavolo sono presenti tecnici, commerciali, legali, amministrativi, tutti a contribuire con il loro punto di vista.

Non perderti i prossimi articoli, iscriviti alla newsletter!

Dopo settimane (o anche mesi) di incontri arriva la fatidica risposta: l’azienda ha deciso di migrare verso il cloud. La scelta può essere intrapresa per i motivi più vari: scalabilità, efficienza, velocità e contenimento dei costi sono solo alcuni dei motivi per cui il cloud risulta essere una nuova opportunità.

Durante il processo di adozione del cloud (il cosiddetto Cloud Journey), una delle decisioni di maggiore impatto riguarda la modalità con cui migrare le applicazioni che dovranno usufruire della nuova infrastruttura (Cloud Migration). L’obiettivo principale durante la Cloud Migration è quello di garantire stabilità e continuità operativa degli applicativi coinvolti, in modo da rendere il più trasparente possibile l’intero processo per gli utenti del sistema.

Per rispondere a questa esigenza si sono diffuse nel corso degli ultimi anni un insieme di strategie: ognuna di esse ha i suoi pro e i suoi contro e sono adattabili ai diversi scenari che si possono presentare. Conoscere e padroneggiare queste strategie costituisce una importante risorsa per le aziende che decidono di intraprendere il Cloud Journey.

Rehosting (Lift & Shift)

La strategia più semplice è quella conosciuta come Rehosting, oppure Lift & Shift: in pratica, si va a replicare sul cloud la topologia infrastrutturale già utilizzata per l’applicazione, senza introdurre modifiche significative all’interno dell’applicazione stessa.

Questa strategia ha il vantaggio di ridurre l’impatto della migrazione sull’applicativo, tuttavia vengono meno le possibilità di sfruttare l’elasticità fornita dal cloud, oltre ai costi operativi che risultano maggiori rispetto agli altri approcci.

Replatforming

Mentre il Rehosting prevede di implementare solo modifiche minime e necessarie per migrare l’applicativo, con la strategia di Replatforming si vanno ad introdurre modifiche volte a introdurre e/o ottimizzare l’utilizzo di servizi forniti dal cloud provider.

Un tipico ambito di Replatforming è la gestione delle code applicative: utilizzare servizi di code gestiti dal cloud provider consente di ridurre i costi operativi. Questa strategia si pone come obiettivo quello di modificare l’applicativo per un maggiore utilizzo del cloud, senza però andare ad intaccarne il core dell’architettura.

Refactoring

La strategia di Refactoring implementa l’approccio più drastico tra quelli visti finora. L’applicativo subisce un processo di redesign volto a renderlo cloud-native, per sfruttare al massimo le potenzialità del cloud sia dal punto di vista tecnico che dal punto di vista dei costi operativi.

Ovviamente l’effort da allocare in questo caso risulta essere molto maggiore rispetto alle altre due strategie, oltre a dover prevedere competenze specifiche.

Repurchasing

Nel caso in cui si voglia migrare ad una applicazione cloud-native ma non si ha la possibilità di farlo in proprio (es. non sono disponibili le competenze necessarie oppure ci sono limiti di tempo e/o budget) allora si può optare per un Repurchasing, ovvero l’acquisto di una soluzione già pronta.

Si può decidere di utilizzare una soluzione SaaS già disponibile per sostituire l’applicativo esistente oppure commissionare la migrazione ad un fornitore esterno.

Qual è la strategia migliore?

Come per la maggior parte dei casi, non esiste una strategia migliore o peggiore di un’altra in senso assoluto: ogni migrazione va valutata caso per caso e non è raro constatare l’adozione di approcci misti volti ad ottimizzare il risultato finale.

Prendiamo ad esempio una soluzione realizzata in-house per gestire un processo per cui sono disponibili applicativi di terze parti già ottimizzati e a costi contenuti: in questo caso si può valutare un Repurchasing, liberando risorse che possono essere allocate verso nuove opportunità.

Nel caso di migrazione un sistema core mission-critical potrebbe aver senso considerare un approccio in più fasi:

  1. Rehosting per ridurre al minimo l’impatto di migrazione sulla nuova piattaforma e per verificare la necessità di ulteriori interventi;
  2. Replatforming per ottimizzare componenti e ridurre la superficie critica;
  3. Refactoring per sfruttare al meglio le potenzialità del cloud.

Decidere quale strategia adottare è una scelta che va oltre il lato puramente tecnico, in quanto l’approccio alla Cloud Migration (e il Cloud Journey in generale) dovrebbe considerare il contesto nel suo insieme e ponderare le conseguenze delle varie strategie su tempi, budget, complessità, pianificazione e risultato finale.

Essere efficaci in questo ambito differenzia le buone aziende da quelle che possono fare davvero la differenza sul mercato.

Autore: