Seleziona una pagina

Migrazione al cloud vincente: 3 diversi modelli

La migrazione in cloud sta diventando sempre più una necessità piuttosto che una scelta per molte aziende.

Credo che non sia una questione di “se, ma di “quando” anche tu muoverai le tue risorse da un’infrastruttura on-premise verso un cloud, migrazione che, come ormai detto migliaia di volte, può portare a una serie di vantaggi, come scalabilità, flessibilità, alta resilienza dell’infrastruttura, semplificazione e costi operativi ridotti.

In questo articolo, cercherò di darti alcuni ragguagli circa le migliori pratiche, le criticità e i vantaggi delle diverse modalità di migrazione al cloud partendo da un’infrastruttura on prem.

Migrazione al cloud: Rehost tramite Lift and Shift

Partiamo semplice: il modello “Lift and Shift”.

E’ l’approccio diretto alla migrazione al cloud delle tue applicazioni: si prende una VM con tutti i suoi dati dall’ambiente on prem, la si “solleva” e la si porta nell’ambiente cloud che hai scelto, magari facendo prima una replica sfruttando uno dei tanti software di backup disponibili sul mercato oppure con strumenti automatizzati messi a disposizione dai vari cloud provider (come vedrai più avanti…).

Quindi trasferimento diretto della tua applicazione e dei suoi dati direttamente da un ambiente on-premise ad un ambiente cloud, senza apportare modifiche significative all’applicazione stessa.

Ecco un riepilogo di punti salienti per la migrazione al cloud tramite rehost della tua infrastruttura:

  • Nessuna riscrittura o modifica significativa del codice dell’applicazione.
  • L’infrastruttura on-premise viene replicata nel cloud.
  • È un trasferimento “come per come” delle risorse.

Questo processo offre alcuni vantaggi, soprattuto in termini di semplicità e di risparmio di tempo:

  • Velocità: La migrazione può essere eseguita in modo relativamente rapido poiché non si richiedono modifiche significative.
  • Semplicità: Questo metodo è spesso il meno complesso in termini di pianificazione e esecuzione.
  • Meno Rischi: Poiché il codice dell’applicazione rimane invariato, ci sono meno variabili da considerare e, di conseguenza, meno rischi di problemi durante la migrazione.

Ovviamente, effettuando la migrazione al cloud delle applicazioni così come sono, potresti perderti i principali vantaggi del cloud, che sono l’ottimizzazione delle risorse e la possibilità di rendere la tua infrastruttura più leggera sfruttando i diversi servizi già pronti che i principali cloud provider mettono a disposizione:

  • Costi: Poiché l’infrastruttura viene replicata nel cloud senza ottimizzazioni, potresti non realizzare tutti i potenziali risparmi che il cloud può offrire.
  • Non Sfrutta Appieno il Cloud: La tua applicazione potrebbe non beneficiare di servizi e funzionalità cloud-native che potrebbero migliorare le prestazioni, la scalabilità e la resilienza

 

Lift and Shift Cloud Migration PowerPoint Template - PPT Slides

Come AWS supporta il Lift and shift

Sebbene, come già detto, questa modalità non sfrutti appieno l’enorme arsenale di servizi che AWS mette a disposizione, il cloud di Amazon offre comunque diversi servizi che rendono il processo di “Lift and Shift” il più semplice ed efficiente possibile.

Ecco alcuni esempi:

  1. Migrazione di macchine virtuali con AWS Server Migration Service (SMS):
    • On prem: La classica organizzazione con diverse macchine virtuali in un ambiente on-premise.
    • Soluzione AWS:  La migrazione verso AWS potrà avvenire con SMS per automatizzare, programmare e tenere traccia delle migrazioni delle tue attuali VMs verso le istanze EC2 in AWS.
  2. Trasferimento di Dati con AWS DataSync:
    • On prem: Negli anni hai accumulato grandi quantità di dati che oggi devi portare in cloud.
    • Soluzione AWS: Ti può aiutare AWS DataSync, che offre un modo per trasferire dati verso e da AWS velocemente, facilmente e in modo sicuro.
  3. Migrazione di Database con AWS Database Migration Service (DMS):
    • On prem: Il tuo database relazionale on-premise va spostato in AWS senza interruzioni.
    • Soluzione AWS: Con AWS DMS lo migri con tempo di inattività minimo, supportando la maggior parte dei popolari database sorgente e destinazione.
  4. Uso di VMWare Cloud su AWS:
    • On prem: Come quasi tutti utilizzi VMWare on-premise
    • Soluzione AWS: Crea un ambiente cloud coerente con VMWare Cloud su AWS e traferisci le tue applicazioni.

Migrazione al cloud: Refactoring

OK, stai finalmente passando al cloud, ma le tue applicazioni sono datate, consumano inutilmente risorse, e vuoi passare aI cloud sfruttandone in pieno le caratteristiche: per te l’approccio giusto è quello del refactoring…

Nel contesto della migrazione al cloud, refactoring si riferisce all’azione di riorganizzare e ottimizzare il codice sorgente della tua applicazione per trarre vantaggio dai servizi e dalle caratteristiche native del cloud, senza cambiare la funzionalità esterna dell’applicazione.

Questo approccio può migliorare le prestazioni, la scalabilità e l’efficienza complessiva dell’applicazione, garantendo nel contempo che si integri perfettamente con le piattaforme cloud.

Effettuare refactoring su di una applicazione il più delle volte significa portare questa applicazione nella logica dei microservizi e dei container per sfruttare appieno i servizi e le funzionalità cloud-native di scalabilità e resilienza di questi ambienti

Vantaggi del Refactoring:

  • Prestazioni Migliorate: L’ottimizzazione per l’ambiente cloud può portare a prestazioni migliori rispetto a una semplice migrazione Lift and Shift.
  • Costi Ridotti: Ottimizzando con servizi cloud-native e gestiti, si possono ridurre i costi operativi.
  • Scalabilità: L’applicazione può scalare in modo più efficiente e reattivo alle esigenze degli utenti.
  • Resilienza: Approfittando delle caratteristiche native del cloud, come container e gruppi di autoscaling, le applicazioni possono diventare più resilienti.

Svantaggi del Refactoring:

  • Complessità: Il processo può essere complesso e richiedere tempo, a seconda della complessità dell’applicazione.
  • Richiede Conoscenze Specifiche: Il refactoring efficace richiede una buona comprensione dei servizi cloud e delle migliori pratiche.

Alcuni esempi di Refactoring sfruttando AWS

Il refacroring è senza dubbio la modalità che ti permette di sfruttare AWS in tutto il suo fulgore.

AWS ti offre una miriade di servizi che possono supportare e amplificare il valore del refactoring delle tue applicazioni, aiutandoti a migliorarle per ottenere prestazioni, scalabilità e efficienza migliori.

Ecco alcuni esempi:

  1. Architetture Serverless con AWS Lambda:
  2. Utilizzo di Amazon DynamoDB:
    • On prem: Il tuo database relazionale on-premise ha esigenze di scalabilità che sono difficili da soddisfare con l’infrastruttura attuale.
    • Soluzione AWS: Rifattorizzare l’applicazione ti consentirà di utilizzare Amazon DynamoDB, un servizio di database NoSQL, che offre scalabilità e prestazioni elevate.
  3. Implementazione di Microservizi con Amazon ECS o EKS:
    • On prem: Hai un’applicazione monolitica on-premise che diventa sempre più complessa da gestire e scalare.
    • Soluzione AWS: Potrai dividere l’applicazione in microservizi e gestirli utilizzando Amazon Elastic Container Service (ECS) o Amazon Elastic Kubernetes Service (EKS).
  4. Sfruttamento di Amazon API Gateway:
    • Scenario: Un’applicazione con varie API esposte che necessitano di gestione, scalabilità e sicurezza.
    • Soluzione AWS: Esponi le tue API attraverso Amazon API Gateway, per centralizzare la gestione ed aumentare e la sicurezza delle API.

Migrazione al cloud: Replatforming

Il tuo hardware è obsoleto e la migrazione al cloud ti attrae, ma le tue applicazioni sono datate, consumano risorse e sfruttano database o librerie talmente vecchie che non sarebbero supportate nell’ambiente cloud.

Che fare ? rinunciare e comprare hardware nuovo sostenendo un investimento importante?

Potrebbe esserci ancora una speranza: Il replatforming, talvolta denominato “lift, tinker and shift”

E’ un’approccio intermedio tra il “lift and shift” e il refactoring completo, per massimizzare i vantaggi di entrambe ed ottenere velocità di migrazione con la possibilità di sfruttare meglio i vantaggi del cloud…

Implica la migrazione di un’applicazione verso un’infrastruttura cloud apportando alcune modifiche per trarre vantaggio dall’ambiente cloud, ma senza una riorganizzazione o riscrittura completa del codice sorgente.

Ecco una panoramica più dettagliata:

Caratteristiche del Replatforming:

  • Si effettuano cambiamenti a livello di piattaforma, come l’uso di un database gestito nel cloud o l’adozione di un sistema di storage specifico del cloud.
  • La logica dell’applicazione e le principali funzionalità rimangono in gran parte invariate.
  • L’obiettivo è ottenere un equilibrio tra velocità di migrazione e ottimizzazione delle prestazioni in un ambiente cloud.

Vantaggi del Replatforming:

  • Risparmio sui Costi: Utilizzando servizi gestiti e risorse cloud ottimizzate, si possono ridurre i costi operativi.
  • Risultati Rapidi: A differenza del refactoring completo, il replatforming può offrire miglioramenti più rapidi con meno sforzo.
  • Maggiore Flessibilità: Offre l’opportunità di sperimentare e adottare alcune caratteristiche cloud senza un impegno totale.

Svantaggi del Replatforming:

  • Compromessi: Non sfrutta appieno tutte le potenzialità e le caratteristiche dei servizi cloud nativi.
  • Potenziali Complessità: Mentre non è complesso come il refactoring completo, richiede comunque una comprensione dei servizi cloud e una pianificazione attenta.

Alcuni esempi di Replatforming sfruttando AWS

Anche in questo caso AWS può essere un’ottima piattaforma per un approccio di replatforming. Ecco alcuni esempi:

  • Migrazione da Database On-Premise a RDS:
    • On prem: Utilizzi un database on-premise come Oracle o SQL Server, rigido e costoso.
    • Soluzione AWS: Potresti usare Amazon RDS, un servizio già pronto di database relazionale gestito, che elimina la necessità di gestire l’infrastruttura sottostante.
  • Utilizzo di Amazon S3 per l’Archiviazione:
    • On prem: adesso archivi i dati nei classici storage on-premise.
    • Soluzione AWS: Puoi spostare questi dati su Amazon S3, sfruttando la sua elevata disponibilità, durabilità e scalabilità.
  • Utilizzo di AWS Lambda per Funzionalità Specifiche:
    • On prem: Ad oggi la tua è un’applicazione on-premise con alcune funzionalità che vengono eseguite in risposta a determinati eventi.
    • Soluzione AWS: Potresti valutare la migrazione di queste funzioni in Lambda in AWS, trasformandole in componenti serverless che si attivano in risposta a determinati trigger
  • Introduzione di Amazon Aurora:
    • ON prem: Un’applicazione on-premise che utilizza un database MySQL o PostgreSQL.
    • Soluzione AWS: puoi considerare la migrazione a Amazon Aurora, una variante di database compatibile con MySQL e PostgreSQL, ma ottimizzata per il cloud e che offre migliori prestazioni e scalabilità

la 1, la 2 o la 3 ?

Decidere di migrare al cloud è entusiasmante, ma la scelta richiede decisioni consapevoli e ponderate.

La scelta della modalità di migrazione migliore dipende da molteplici fattori, tra cui la semplicità, i tempi di migrazione possibili e previsti, il budget a disposizione ed un attenta pianificazione.

Ti consiglio di porti le seguenti domande:

  • La mia è un’azienda in espansione oppure resterà inalterata per i prossimi anni?
  • Le mi applicazioni dovranno subire modifiche ai carichi di lavoro nei prossimi anni ?
  • Potrò avere bisogno di servizi aggiuntivi, come monitoraggio dell’ambiente, disaster recovery o altro ?
  • Quanto budget ho a disposizione ?
  • Ho le idee chiare circa le criticità di questa migrazione ed eventuali rischi da correre?

In ogni caso, il competence center di FASTWEB ti può aiutare in queste analisi, contattami subito che ti racconto come !