Cloud Migration: Rehosting, Refactoring o Replatforming?


05/08/2020

Cloud Migration: Rehosting, Refactoring o Replatforming?

Che il cloud rappresenti il futuro delle infrastrutture nelle imprese, ormai è cosa nota. 

Scalabilità, flessibilità, performance e sicurezza rappresentano solo una parte delle ragioni per cui sempre più aziende scelgono il cloud per i propri asset tecnologici, e la crisi da Covid-19, con le sue conseguenze sul modo di concepire e vivere il lavoro, non ha fatto altro che dare un’accelerata a questa tendenza. 

In questo articolo parleremo delle tipologie di cloud migration esistenti, con i rispettivi vantaggi e criticità. Una soluzione unica, infatti, non c’è: che si scelga di migrare tutte le infrastrutture o iniziare con un applicativo, ognuna presenta pro e contro da conoscere.

Che cos’è la cloud migration? 

Si tratta, come intuibile, del processo di spostamento di parte o di tutte le digital operations su cloud. 

Esistono diverse architetture cloud, alcune delle quali sono particolarmente complesse. Prima di procedere, occorre dunque conoscerne i requisiti, fare un’inventory delle risorse esistenti, valutare le diverse soluzioni e opzioni, identificare il livello di rischio e poi procedere con una scelta oculata e consapevole. 

Esistono tre tipologie, o scopi principali, di cloud migration: 

  • On-premise to cloud spostarsi da datacenter on-premises al cloud 
  • Cloud-to-cloudspostamento da un vendor ad un altro 
  • Reverse cloud migration tornare dal cloud all’on-premises 

Tra i diversi approcci testati nel corso del tempo, Gartner identifica cinque opzioni principali, sintetizzate e descritte nel modello “5 Rs”: 

  • Lift and shift / rehosttrasferimento delle applicazioni così come sono 
  • Refactormodificare le applicazioni affinché si adattino al nuovo ambente 
  • Replatformspostare le applicazioni senza modifiche strutturali, nell’ottica di sfruttare unicamente i vantaggi dell’ambiente cloud
  • Rebuild—riscrivere da zero l’applicativo già in ottica cloud-native 
  • Replaceritirare l’applicativo on-premises e sostituirlo con un nuovo applicativo cloud-native 

Gli ultimi due non rappresentano una migrazione vera e propria, trattandosi, di fatto, di realizzazioni ex-novo di applicativi. 

Scopriamo, invece, i tre metodi della cloud migration. 

Lift and Shift cloud migration: pro e contro 

Consiste nello spostamento puro dell’applicativo così com’è. Naturalmente, la principale criticità 
risiede nel dover assicurare che l’applicazione abbia accesso a dati e documenti anche su cloud. 

Per farlo, ad esempio, Microsoft Azure Files service permette di configurare Macchine Virtuali in grado di gestire workload similmente a come già avveniva on-premises e di avere accesso agli stessi folder condivisi.

Questo implica: 

  • Nessun cambio di codice e di architettura
  • Migrazione dei workloads hardware-dipendenti 
  • Migrazione semplice dei servizi core 
  • Compliance and security management più semplici 

Ma anche: 

  • Mancanza di auto-scalabilità e load balancing dinamico
  • Latenza e performance ridotte 
  • Aumento dei rischi 
  • Migrazione non completa o fallita  

Refactoring cloud migration: pro e contro 

Il refactoring consiste nella riarchitettura degli applicativi perché meglio si adattino al nuovo ambiente cloud. Si tratta, infatti, di una strategia finalizzata a sfruttare i vantaggi di flessibilità ed elasticità offerti dal cloud, attraverso la modifica totale o parziale del software. 

Tra le diverse strategie disponibili, il refactoring richiede consistenti modifiche al codice, oltra a una particolare attenzione per evitare problemi di funzionamento sottoutilizzo delle risorse cloud prescelte: trattasi dunque del metodo più costoso in termini di tempo e risorse, ma è anche la più interessante in termini di ROI. 

I vantaggi, infatti, sono principalmente sul lungo periodo: 

  • Ottimizzazione delle risorse e prospettive di risparmio 
  • Futuri adattamenti e implementazioni più semplici
  • Maggiore resilienza e durabilità degli applicativi 

Mentre occorre tenere conto di: 

  • Stretto legame con il primo cloud provider scelto  
  • Lunghezza dell’intervento 
  • Intervento che necessita di Cloud Architect esperti 

Replatforming Migration: Pro e Contro 

L’obiettivo di questa metodologia è sfruttare parte dei vantaggi del rehosting e del replatformingimplicando interventi sul codice limitati, ma sufficienti per permettere di sfruttare i vantaggi delle infrastrutture. 

Ad esempio, si possono modificare dei workload affinché i programmi interagiscano in modo più efficiente con i database, oppure concentrarsi sull’abilitare la scalabilità delle risorse tipica del cloud; interventi ridotti, ma potenzialmente sufficienti, almeno in un primo intervento. 

Il replatforming risulta quindi una buona scelta, se si cerca: 

  • Investimento limitato in termini di tempo e costi 
  • Un intervento iniziale per poi valutare successive implementazioni 
  • Alcune caratteristiche cloud-native, come auto-scalabilità, gestione dello spazio e dei servizi dati, infrastructure as code (IaC) 

Ma significa anche: 

  • Rischio di trasformare il progetto di replatforming in refactoring, in mancanza di un project management adeguato. 
  • Necessità di scegliere attentamente le componenti cloud, per evitare modifiche non utili ai fini del progetto 
  • Bisogno di dotarsi di strumenti automatici per una maggiore flessibilità 

Rehostingrefactoring o replatforming? Non restare solo in questa scelta: affidati ai nostri Cloud Architect & Engineer esperti e certificati in tecnologie riconosciute ed affidabili come Microsoft Azure, tra i leader dei Gartner Magic Quadrant per le tecnologie Cloud Infrastructure as a Service (IaaS).