Questo documento ti aiuta a pianificare, progettare e implementare il processo di migrazione dei carichi di lavoro in Google Cloud. Spostare le app da un ambiente all'altro è un'operazione complessa, anche per i team esperti, quindi devi pianificare ed eseguire la migrazione con attenzione.
Questo documento fa parte della seguente serie in più parti sulla migrazione a Google Cloud:
- Migrazione a Google Cloud: inizia (questo documento)
- Esegui la migrazione a Google Cloud: valuta e scopri i tuoi carichi di lavoro
- Esegui la migrazione a Google Cloud: pianifica e crea la tua base
- Eseguire la migrazione a Google Cloud: trasferire i set di dati di grandi dimensioni
- Eseguire la migrazione a Google Cloud: esegui il deployment dei carichi di lavoro
- Esegui la migrazione a Google Cloud: migrazione dai deployment manuali a quelli containerizzati e automatici
- Eseguire la migrazione a Google Cloud: ottimizzare l'ambiente
- Esegui la migrazione a Google Cloud: best practice per convalidare un piano di migrazione
- Esegui la migrazione a Google Cloud: riduci al minimo i costi
Questo documento è utile se stai pianificando una migrazione da un ambiente on-premise, da un ambiente di hosting privato o da un altro cloud provider a Google Cloud oppure se stai valutando la possibilità di eseguire la migrazione e vuoi capire come potrebbe essere.
Inizio del viaggio
Quando pianifichi la migrazione a Google Cloud, inizia definendo gli ambienti coinvolti nella migrazione. Il punto di partenza può essere un ambiente on-premise, un ambiente di hosting privato o un altro ambiente cloud pubblico.
Un ambiente on-premise è un ambiente in cui hai la piena proprietà e la piena responsabilità. Mantieni il pieno controllo su ogni aspetto dell'ambiente, come il raffreddamento, la sicurezza fisica e la manutenzione dell'hardware.
In un ambiente di hosting privato come un centro di colocation, esternalizzi parte dell'infrastruttura fisica e la relativa gestione a un terza parte. Questa infrastruttura è in genere condivisa tra i clienti. In un ambiente di hosting privato, non devi gestire i servizi di sicurezza e sicurezza fisica. Alcuni ambienti di hosting ti consentono di gestire parte dell'hardware fisico, come server, rack e dispositivi di rete, mentre altri lo gestiscono per te. In genere, l'alimentazione e il cablaggio di rete vengono forniti come servizio, quindi non devi gestirli. Mantieni il controllo completo sugli hypervisor che virtualizzano le risorse fisiche, sull'infrastruttura virtualizzata di cui esegui il provisioning e sui carichi di lavoro che esegui su quell'infrastruttura.
Un ambiente cloud pubblico ha il vantaggio che non devi gestire autonomamente l'intera serie di risorse. Puoi concentrarti sull'aspetto della suite più importante per te. Come in un ambiente di hosting privato, non devi gestire l'infrastruttura fisica di base. Inoltre, non devi gestire l'hypervisor di virtualizzazione delle risorse. Puoi creare un'infrastruttura virtualizzata e eseguire il deployment dei carichi di lavoro in questa nuova infrastruttura. Puoi anche acquistare servizi completamente gestiti, in cui devi occuparti solo dei tuoi carichi di lavoro, lasciando a Google il compito di gestire il carico operativo della gestione degli ambienti di runtime.
Per ogni ambiente, questo documento valuta i seguenti aspetti, nonché chi deve fornire e gestire i servizi pertinenti:
Risorse | Ambiente on-premise | Ambiente di hosting privato | Ambiente cloud pubblico |
---|---|---|---|
Sicurezza e protezione fisica | Tu | Fornitore di servizi | Fornitore di servizi |
Cablaggio di alimentazione e rete | Tu | Fornitore di servizi | Fornitore di servizi |
Hardware (inclusa la manutenzione) | Tu | Dipende dal fornitore di servizi | Fornitore di servizi |
Piattaforma di virtualizzazione | Tu | Tu | Fornitore di servizi |
Risorse dell'app | Tu | Tu | Tu (eventualmente sfruttando servizi completamente gestiti) |
In questo documento, l'ambiente di destinazione è Google Cloud.
Dopo aver definito gli ambienti di partenza e di destinazione, definisci i tipi di carichi di lavoro e le relative procedure operative che rientrano nell'ambito della migrazione. Questo documento prende in considerazione due tipi di carichi di lavoro e operazioni: legacy e ottimizzati per il cloud.
I carichi di lavoro e le operazioni legacy vengono sviluppati senza alcuna attenzione agli ambienti cloud. Questi workload e queste operazioni possono essere difficili da modificare e costosi da eseguire e gestire perché in genere non supportano alcun tipo di scalabilità.
I carichi di lavoro e le operazioni ottimizzati per il cloud sono scalabili, portatili, disponibili e sicuri in modo nativo. I carichi di lavoro e le operazioni possono contribuire ad aumentare la produttività e l'agilità degli sviluppatori, perché possono concentrarsi sui carichi di lavoro effettivi anziché impegnarsi a gestire gli ambienti di sviluppo e di runtime o a gestire complesse procedure di implementazione manuali. Google Cloud ha anche un modello di responsabilità condivisa per la sicurezza. Google Cloud è responsabile della sicurezza fisica e della sicurezza dell'infrastruttura, mentre tu sei responsabile della sicurezza dei carichi di lavoro di cui esegui il deployment nell'infrastruttura.
Considerando questi tipi di ambiente e di carico di lavoro, la situazione di partenza è una delle seguenti:
- Ambiente di hosting on-premise o privato con operazioni e carichi di lavoro legacy.
- Ambiente di hosting on-premise o privato con operazioni e carichi di lavoro ottimizzati per il cloud.
- Ambiente di hosting cloud pubblico o privato con operazioni e carichi di lavoro legacy.
- Ambiente di hosting cloud pubblico o privato con operazioni e carichi di lavoro ottimizzati per il cloud.
Il processo di migrazione dipende dal punto di partenza.
La migrazione di un carico di lavoro da un ambiente on-premise legacy o da un ambiente di hosting privato a un ambiente ottimizzato per il cloud, come un cloud pubblico, può essere complessa e rischiosa. Le migrazioni riuscite modificano il carico di lavoro da migrare il meno possibile durante le operazioni di migrazione. Il trasferimento delle app on-premise legacy al cloud spesso richiede più passaggi di migrazione.
Tipi di migrazioni
Questo documento definisce i seguenti tipi principali di migrazioni:
- Rehosting: esegui la migrazione lift and shift
- Replatforming: trasferisci e ottimizza
- Refactoring: sposta e migliora
- Riprogettazione dell'architettura: continua a modernizzare
- Ricostruzione: rimuovi e sostituisci, a volte chiamata elimina e sostituisci
- Riacquista
Nelle sezioni seguenti, ogni tipo di migrazione è definito con esempi di quando utilizzarlo.
Rehosting: esegui la migrazione lift and shift
In una migrazione di rehosting, sposti i workload da un ambiente di origine a un ambiente di destinazione con modifiche o refactoring minori o nulli. Le modifiche che applichi ai carichi di lavoro di cui vuoi eseguire la migrazione sono solo le modifiche minime che devi apportare affinché i carichi di lavoro funzionino nell'ambiente di destinazione.
La migrazione di rehosting è ideale quando un carico di lavoro può funzionare così com'è nell'ambiente di destinazione o quando le esigenze aziendali non richiedono modifiche. Questa è la migrazione che richiede meno tempo perché il refactoring viene ridotto al minimo.
Potrebbero verificarsi problemi tecnici che richiedono una migrazione di rehosting. Se non puoi eseguire il refactoring di un carico di lavoro da migrare e non puoi ritirarlo, devi utilizzare una migrazione di rehosting. Ad esempio, può essere difficile o impossibile modificare il codice sorgente del carico di lavoro oppure il processo di compilazione non è semplice, pertanto la produzione di nuovi elementi dopo il refactoring del codice sorgente potrebbe non essere possibile.
Le migrazioni di rehosting sono le più semplici da eseguire perché il tuo team può continuare a utilizzare lo stesso insieme di strumenti e competenze che utilizzava in precedenza. Queste migrazioni supportano anche il software pronto all'uso. Poiché esegui la migrazione caricamenti di lavoro esistenti con un refactoring minimo, le migrazioni di rehosting tendono a essere più rapide rispetto alle migrazioni di refactoring o ricostruzione.
Tuttavia, dopo una migrazione di rehosting, i carichi di lavoro in esecuzione nell'ambiente di destinazione non sono ottimizzati per il cloud. Questi carichi di lavoro non sfruttano appieno le funzionalità della piattaforma cloud, come la scalabilità orizzontale, i prezzi granulari e i servizi altamente gestiti.
Replatforming: trasferisci e ottimizza
In una migrazione di replatforming, trasferisci i carichi di lavoro esistenti e poi li ottimizzi per il nuovo ambiente cloud.
Una migrazione con cambio di piattaforma è ideale per le organizzazioni che vogliono sfruttare tutte le competenze principali del cloud. Queste competenze includono calcolo elastico, ridondanza, prestazioni e sicurezza migliorate.
Ad esempio, potresti eseguire il replatforming di un carico di lavoro nel cloud per sfruttare un'architettura di microservizi basata su cloud o container in Google Kubernetes Engine. Questi carichi di lavoro avranno quindi prestazioni più elevate e maggiore efficienza quando vengono eseguiti nel cloud.
Tuttavia, le migrazioni di replatforming richiedono più lavoro rispetto alle migrazioni di rehosting. La nuova piattaforma cloud avrà un codebase sottostante diverso, che richiede diversi round di test per assicurarsi che tutto sia in esecuzione al livello ottimale.
Refactoring: sposta e migliora
In una migrazione di refactoring, modifichi i carichi di lavoro per sfruttare le funzionalità del cloud e non solo per farli funzionare nel nuovo ambiente. Puoi migliorare ogni carico di lavoro in termini di prestazioni, funzionalità, costi e esperienza utente.
Puoi modificare i carichi di lavoro durante la migrazione al cloud o anche prima. Ad esempio, se non hai molta esperienza con le migrazioni al cloud, potresti preferire modificare i carichi di lavoro durante la migrazione. Tuttavia, se hai esperienza di migrazione al cloud, potresti già avere un'idea delle modifiche necessarie ai carichi di lavoro per sfruttare appieno le funzionalità del cloud.
Se l'attuale architettura o infrastruttura di un'app non è supportata nell'ambiente di destinazione così com'è, è necessario un certo refactoring per superare questi limiti.
Un altro motivo per scegliere l'approccio di refactoring è quando è necessario un aggiornamento importante al carico di lavoro oltre agli aggiornamenti necessari per la migrazione.
Le migrazioni di refactoring consentono alla tua app di sfruttare le funzionalità di una piattaforma cloud, come la scalabilità e l'alta disponibilità. Puoi anche progettare il miglioramento per aumentare la portabilità dell'app.
Tuttavia, le migrazioni di refactoring richiedono più tempo di quelle di rehosting perché i carichi di lavoro devono essere sottoposti a refactoring per consentire la migrazione dell'app.
Una migrazione di refactoring richiede anche l'apprendimento di nuove competenze.
Riprogettazione dell'architettura: continua a modernizzare
Le migrazioni di ridefinizione dell'architettura sono simili alle migrazioni di refactoring. Tuttavia, invece di riorganizzare il funzionamento del codice del carico di lavoro, le migrazioni di riprogettazione dell'architettura cambiano il funzionamento del codice. Queste modifiche al codice ottimizzano il carico di lavoro e sfruttano le proprietà ottimizzate per il cloud come scalabilità, sicurezza e agilità. Ad esempio, una migrazione di riprogettazione può prendere un grande carico di lavoro monolitico e trasformarlo in diversi microservizi indipendenti che puoi eseguire su Google Cloud.
Una migrazione di riprogettazione è più complessa di una migrazione di refactoring, pertanto richiede più tempo e impegno. Una migrazione di riprogettazione dell'architettura può anche potenzialmente introdurre bug o problemi di sicurezza nei nuovi carichi di lavoro. Pertanto, una migrazione di nuova architettura richiede diversi round di test per assicurarsi che tutto funzioni al meglio.
Ricostruisci: rimuovi e sostituisci
In una migrazione con ricreazione, ritiri un'app esistente, la riprogetti completamente e la riscrivi come un'app completamente ottimizzata per il cloud.
Se l'app attuale non soddisfa i tuoi obiettivi, ad esempio non vuoi gestirla, la migrazione è troppo costosa utilizzando uno degli approcci menzionati in precedenza o non è supportata su Google Cloud, puoi eseguire una migrazione di ricostruzione.
Le migrazioni di ricostruzione consentono alla tua app di sfruttare al meglio le funzionalità di Google Cloud, come la scalabilità orizzontale, i servizi altamente gestiti e l'alta disponibilità. Poiché riscrivi l'app da zero, rimuovi anche il debito tecnico della versione precedente esistente.
Tuttavia, le migrazioni di ricostruzione possono richiedere più tempo rispetto alle migrazioni di riaccreditamento o refactoring. Inoltre, questo tipo di migrazione non è adatto per le app predefinite perché richiede la riscrittura dell'app. Devi valutare il tempo e lo sforzo extra necessari per ridisegnare e riscritturare l'app durante il suo ciclo di vita.
Una migrazione di ricostruzione richiede anche nuove competenze. Devi utilizzare nuove toolchain per eseguire il provisioning e la configurazione del nuovo ambiente ed eseguire il deployment dell'app in questo ambiente.
Riacquista
Una migrazione di riacquisto avviene quando passi da un workload on-premise acquistato a un equivalente Software as a Service (SaaS) ospitato nel cloud. Ad esempio, puoi passare dal software di collaborazione on-premise e dallo spazio di archiviazione locale a Google Workspace.
Dal punto di vista delle risorse, una migrazione di acquisto potrebbe essere molto più semplice rispetto al refactoring, alla ricreazione o alla riprogettazione dell'architettura. Tuttavia, una migrazione di riacquisti potrebbe essere molto più costosa e potresti non disporre delle funzionalità granulari per controllare i tuoi ambienti cloud.
Framework per l'adozione di Google Cloud
Prima di iniziare la migrazione, devi valutare il livello di maturità della tua organizzazione nell'adozione delle tecnologie cloud. Il framework per l'adozione di Google Cloud funge sia da mappa per determinare dove si trovano al momento le tue capacità di information technology aziendale sia da guida per raggiungere la tua destinazione.
Puoi utilizzare questo framework per valutare l'idoneità della tua organizzazione per Google Cloud e cosa devi fare per colmare le lacune e sviluppare nuove competenze, come illustrato nel seguente diagramma.
Il framework valuta quattro temi:
- Scopri. La qualità e la scala dei tuoi programmi di apprendimento.
- Lead. Il grado in cui i reparti IT sono supportati da un mandato della direzione per eseguire la migrazione a Google Cloud.
- Scala. Il grado in cui utilizzi i servizi ottimizzati per il cloud e la quantità di automazione operativa implementata.
- Sicuro. La possibilità di proteggere il tuo ambiente attuale da accessi non autorizzati e inappropriati.
Per ogni tema, dovresti trovarti in una delle tre fasi che seguono, in base al framework:
- Tattico. Non sono presenti piani coerenti che coprono tutti i singoli carichi di lavoro in uso. Ti interessa principalmente un rapido ritorno sugli investimenti e un'interruzione minima della tua organizzazione IT.
- Strategiche. È stato definito un piano per sviluppare singoli carichi di lavoro in vista delle future esigenze di scalabilità. Ti interessa l'obiettivo di medio termine di semplificare le operazioni per renderle più efficienti rispetto a oggi.
- Trasformativa. Le operazioni cloud funzionano senza problemi e utilizzi i dati raccolti da queste operazioni per migliorare la tua attività IT. Ti interessa l'obiettivo a lungo termine di rendere il reparto IT uno dei motori dell'innovazione nella tua organizzazione.
Quando valuti i quattro argomenti in termini delle tre fasi, ottieni la scala di maturità di Cloud. In ogni tema, puoi vedere cosa succede quando passi dall'adottare nuove tecnologie in base alle esigenze a utilizzarle in modo più strategico nell'intera organizzazione, il che significa naturalmente una formazione più approfondita, completa e coerente per i tuoi team.
Il percorso di migrazione
È importante ricordare che una migrazione è un percorso. Ti trovi nel punto A con l'infrastruttura e gli ambienti esistenti e vuoi raggiungere il punto B. Per andare da A a B, puoi scegliere una delle opzioni descritte in precedenza.
Il seguente diagramma illustra il percorso di questo viaggio.
La migrazione prevede quattro fasi:
- Valuta. In questa fase, esegui una valutazione e una scoperta approfondite dell'ambiente esistente per comprendere l'inventario dell'app e dell'ambiente, identificare le dipendenze e i requisiti dell'app, eseguire calcoli del costo totale di proprietà e stabilire benchmark delle prestazioni dell'app. Per ulteriori informazioni sulla fase di valutazione, consulta Eseguire la migrazione a Google Cloud: valuta e rileva i tuoi carichi di lavoro, Eseguire la migrazione a Google Cloud: best practice e Centro di migrazione: avviare il rilevamento delle risorse.
- Pianifica. In questa fase, crei l'infrastruttura cloud di base per i tuoi carichi di lavoro e pianifichi come spostare le app. Questa pianificazione include la gestione delle identità, la struttura dell'organizzazione e dei progetti, il networking, l'ordinamento delle app e lo sviluppo di una strategia di migrazione con priorità. Per ulteriori informazioni su come pianificare e creare le basi, consulta Eseguire la migrazione a Google Cloud: pianificare e creare le basi.
- Esegui il deployment. In questa fase, progetti, implementi ed esegui un processo di deployment per spostare i carichi di lavoro in Google Cloud. Potresti anche dover perfezionare la tua infrastruttura cloud per far fronte a nuove esigenze. Per ulteriori informazioni su come eseguire il deployment dei tuoi carichi di lavoro su Google Cloud e su come eseguire la migrazione dei dati a Google Cloud, consulta Eseguire la migrazione a Google Cloud: eseguire il deployment dei carichi di lavoro, Eseguire la migrazione a Google Cloud: eseguire la migrazione dai deployment manuali a quelli containerizzati e automatici e Eseguire la migrazione a Google Cloud: trasferire i set di dati di grandi dimensioni.
- Ottimizza. In questa fase, inizi a sfruttare appieno le tecnologie e le funzionalità ottimizzate per il cloud per espandere il potenziale della tua attività a fattori quali prestazioni, scalabilità, ripristino di emergenza, costi, formazione, nonché aprendo le porte alle integrazioni di machine learning e dell'intelligenza artificiale per la tua app. Per saperne di più su come ottimizzare il tuo ambiente, consulta Eseguire la migrazione a Google Cloud: ottimizzare l'ambiente. Per ulteriori informazioni sui costi, consulta Eseguire la migrazione a Google Cloud: ridurre al minimo i costi.
Trovare assistenza
Google Cloud offre varie opzioni e risorse per aiutarti a trovare l'assistenza necessaria per sfruttare al meglio i servizi Google Cloud.
Risorse self-service
Se non hai bisogno di assistenza dedicata, puoi utilizzare queste risorse self-service:
- Documentazione del prodotto. Google Cloud fornisce la documentazione per ciascuno dei suoi prodotti e servizi, nonché per le API.
- Documentazione di Architecture Center. La sezione relativa alla migrazione dell'Architecture Center copre molti scenari di migrazione. Ad esempio, le risorse per la migrazione forniscono indicazioni sul percorso di migrazione a Google Cloud.
- Strumenti. Google Cloud fornisce diversi prodotti e servizi per aiutarti a eseguire la migrazione. Ad esempio:
- Google Cloud Migration Center è una piattaforma unificata che consente di accelerare il percorso verso il cloud end-to-end dall'ambiente on-premise o cloud attuale a Google Cloud.
- Migrate to Virtual Machines è un prodotto per la migrazione di server fisici e macchine virtuali da ambienti on-premise e cloud a Google Cloud. Migrate to VMs ti consente di eseguire la migrazione di una macchina virtuale a Google Cloud in pochi minuti, dove i dati vengono copiati in background, ma le macchine virtuali sono completamente operative.
- Storage Transfer Service ti consente di importare dati in Cloud Storage da altri provider cloud, risorse online o dati locali.
- Database Migration Service è un prodotto che ti aiuta a eseguire la migrazione dei tuoi database a Google Cloud.
- Transfer Appliance è un'apparecchiatura hardware che puoi utilizzare per eseguire la migrazione di grandi volumi di dati (dalle centinaia di terabyte fino a 1 petabyte) a Google Cloud senza interrompere le operazioni aziendali.
- BigQuery Migration Service è una soluzione completa per eseguire la migrazione del tuo data warehouse a BigQuery.
- White paper. Questi documenti includono architetture di riferimento, case study, best practice e tutorial avanzati.
- Contenuti multimediali. Puoi ascoltare il podcast di Google Cloud o guardare uno dei video sul canale YouTube di Google Cloud. Queste risorse trattano una vasta gamma di argomenti, dalle spiegazioni dei prodotti alle strategie di sviluppo.
- Corsi e lab online. Google Cloud offre diversi corsi su Coursera che includono contenuti video, materiale di lettura e lab. Puoi anche partecipare ai lab utilizzando Google Cloud Skills Boost o partecipare a corsi online dal vivo.
Partner tecnologici
Google Cloud ha stretto partnership con diverse aziende per consentirti di utilizzare i loro prodotti. Alcune offerte potrebbero essere gratuite, quindi rivolgiti alla società e al tuo account manager Google Cloud.
Integratori di sistemi
Google Cloud collabora non solo con aziende di prodotti e tecnologia, ma anche con integratori di sistemi in grado di fornire assistenza pratica. Nell'elenco dei partner, puoi trovare un elenco di integratori di sistemi specializzati nelle migrazioni al cloud.
Servizi professionali di Google Cloud
Il nostro team di servizi professionali è a tua disposizione per aiutarti a ottenere il massimo dal tuo investimento in Google Cloud.
Cloud Plan e Foundations: ricevi assistenza per la migrazione
I servizi professionali possono aiutarti a pianificare la migrazione ed eseguire il deployment dei carichi di lavoro in produzione con la nostra offerta Cloud Plan and Foundations. Questi esperti forniscono al tuo team indicazioni per ogni fase della migrazione del tuo workload in produzione, dalla configurazione delle basi di Google Cloud all'ottimizzazione della piattaforma in base alle tue esigenze specifiche e al deployment del workload.
Gli obiettivi di Cloud Plan and Foundations sono:
- Configura la base di Google Cloud.
- Crea la documentazione del design.
- Pianifica le attività di implementazione e migrazione.
- Esegui il deployment dei carichi di lavoro in produzione.
- Monitora problemi e rischi.
I servizi professionali guidano il tuo team attraverso le seguenti attività e risultati:
- Condurre workshop di avvio tecnico.
- Creazione di un documento di progettazione tecnica.
- Creazione di un piano di migrazione.
- Creare una carta del programma.
- Fornitura di gestione dei progetti.
- Fornire competenze tecniche.
Cloud Sprint: accelera la migrazione a Google Cloud
Cloud Sprint è un workshop intensivo che accelera la migrazione delle app a Google Cloud. In questo workshop, i servizi professionali di Google Cloud guideranno uno dei tuoi team attraverso discussioni interattive, sessioni di lavagna virtuale e revisione delle app di destinazione per la migrazione a Google Cloud. Durante il Cloud Sprint, i servizi professionali collaborano con i membri del tuo team per aiutarti a fare un'esperienza diretta delle soluzioni cloud con le attività di deployment obbligatorie per aiutarti a comprendere i passaggi successivi per le future migrazioni su Google Cloud.
Formazione: sviluppa le competenze del tuo team
I servizi professionali Google Cloud possono fornire formazione in vari campi in base alle esigenze del tuo team.
Passaggi successivi
- Scopri quando richiedere assistenza per le migrazioni.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Cloud Architecture Center.
Collaboratori
Autore: Marco Ferrari | Cloud Solutions Architect