Questo documento descrive le best practice per convalidare il piano di migrazione dei carichi di lavoro a Google Cloud. Questo documento non elenca tutte le possibili best practice per la convalida di un piano di migrazione e non fornisce garanzie di successo. Ti aiuta invece a stimolare discussioni su potenziali modifiche e miglioramenti al tuo piano di migrazione.
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. Il documento è utile anche se stai valutando l'opportunità di eseguire la migrazione e vuoi capire come potrebbe essere.
Questo documento fa parte della seguente serie in più parti sulla migrazione a Google Cloud:
- Esegui la migrazione a Google Cloud: inizia
- Migrazione a Google Cloud: valutazione e individuazione dei carichi di lavoro
- Esegui la migrazione a Google Cloud: pianifica e getta le basi
- Migrazione a Google Cloud: trasferimento dei tuoi set di dati di grandi dimensioni
- Esegui la migrazione a Google Cloud: esegui il deployment dei tuoi carichi di lavoro
- Esegui la migrazione a Google Cloud: esegui la migrazione dai deployment manuali a quelli automatizzati e containerizzati
- Esegui la migrazione a Google Cloud: ottimizza il tuo ambiente
- Migrazione a Google Cloud: best practice per la convalida di un piano di migrazione (questo documento)
- Esegui la migrazione a Google Cloud: riduci al minimo i costi
Valutazione
L'esecuzione di una valutazione completa dei carichi di lavoro e degli ambienti ti aiuta a sviluppare una conoscenza approfondita dei tuoi carichi di lavoro e dei tuoi ambienti. Sviluppare questa comprensione ti aiuta a ridurre al minimo i rischi di problemi che si verificano durante e dopo la migrazione a Google Cloud.
Eseguire una valutazione completa
Prima di procedere con i passaggi successivi alla fase di valutazione, completa la valutazione dei tuoi carichi di lavoro e ambienti. Per effettuare una valutazione completa, considera i seguenti elementi, spesso trascurati:
- Inventario:assicurati che l'inventario dei workload da migrare sia aggiornato e di aver completato la valutazione. Ad esempio, considera quanto siano aggiornati e affidabili i dati di origine per la tua valutazione e quali lacune potrebbero esistere nei dati.
Tempi di inattività:identifica i carichi di lavoro che possono gestire i tempi di inattività. Determina quando possono verificarsi questi tempi di inattività e per quanto tempo possono durare per ridurre al minimo le interruzioni, ad esempio durante le ore serali o i fine settimana. La migrazione dei carichi di lavoro con tempi di inattività pari a zero o quasi è più difficile rispetto alla migrazione dei carichi di lavoro che possono permettersi tempi di inattività. Per completare una migrazione senza tempi di inattività, devi progettare e implementare la ridondanza per ogni workload da migrare. Devi anche coordinare queste istanze ridondanti.
Quando valuti la quantità di downtime che un carico di lavoro può tollerare, valuta se il vantaggio aziendale di una migrazione senza tempi di inattività è maggiore della complessità aggiuntiva della migrazione. Se possibile, evita di creare un requisito di tempo di inattività pari a zero per un carico di lavoro.
Clustering e ridondanza:valuta quali carichi di lavoro supportano il clustering e la ridondanza. Se un carico di lavoro supporta il clustering e la ridondanza, puoi eseguire il deployment di più istanze di quel carico di lavoro, anche in ambienti diversi, ad esempio l'ambiente di origine e l'ambiente di destinazione. I deployment in cluster e ridondanti potrebbero semplificare la migrazione perché questi carichi di lavoro si coordinano tra loro con un intervento limitato.
Aggiornamenti della configurazione:valuta come aggiorni la configurazione dei tuoi workload. Ad esempio, considera come fornisci gli aggiornamenti alla configurazione di ogni workload di cui vuoi eseguire la migrazione. Questa considerazione è fondamentale per il successo della migrazione, perché potresti dover aggiornare la configurazione dei carichi di lavoro durante la migrazione all'ambiente di destinazione.
Genera più report di valutazione:durante la fase di valutazione, potrebbe essere utile generare più di un report di valutazione per tenere conto di diversi scenari. Ad esempio, puoi generare report che tengano conto di profili di carico diversi per i tuoi carichi di lavoro, ad esempio durante le ore di punta e non.
Valuta le modalità di errore supportate dai tuoi workload
Sapere come si comportano i tuoi carichi di lavoro in circostanze eccezionali ti aiuta a assicurarti di non esporli a condizioni da cui non possono ripristinarsi. Nell'ambito della valutazione, raccogli informazioni sulle modalità di errore e sui relativi effetti supportati dai tuoi carichi di lavoro e da cui possono essere recuperati automaticamente, nonché sulle modalità di errore che richiedono il tuo intervento. Ad esempio, puoi iniziare a considerare domande sulle possibili modalità di guasto, ad esempio:
- Cosa succede se un workload perde la connettività alla rete?
- Un workload è in grado di riprendere il lavoro da dove era stato interrotto dopo essere stato arrestato?
- Cosa succede se il rendimento di un carico di lavoro o delle relative dipendenze è inadeguato?
- Che cosa succede se nell'architettura sono presenti due carichi di lavoro con lo stesso identificatore?
- Che cosa succede se un'attività pianificata non viene eseguita?
- Che cosa succede se due workload elaborano lo stesso messaggio?
Un'altra origine per le modalità di errore non supportate potrebbe essere il piano di migrazione stesso. Determina se il piano di migrazione include passaggi che dipendono dal successo di una determinata condizione e se include imprevisti nel caso in cui la condizione non venga soddisfatta. Un piano che include questi tipi di condizioni può indicare che il piano stesso potrebbe non riuscire o che i singoli componenti potrebbero non riuscire durante la migrazione.
Dopo aver valutato le modalità di guasto e i relativi effetti, convalida i risultati in un ambiente non critico simulando i guasti e inserendo errori che emulano queste modalità di guasto. Ad esempio, se un carico di lavoro è progettato per recuperare automaticamente dopo una perdita di connettività di rete, convalida il recupero automatico interrompendo forzatamente la connettività e poi ripristinandola.
Valuta le pipeline di elaborazione dei dati
La valutazione del carico di lavoro deve essere in grado di rispondere alle seguenti domande:
- Le risorse sono dimensionate correttamente per la migrazione?
- Quanto tempo è necessario per eseguire la migrazione dei dati necessari ai tuoi workload?
- L'ambiente di destinazione può ospitare l'intero volume di dati?
- Come si comportano i tuoi workload quando devono gestire picchi di domanda o picchi nella quantità di dati che producono in un determinato periodo di tempo?
- Se si verificano picchi di domanda o picchi nella quantità di dati prodotti dai tuoi carichi di lavoro, si verificano effetti negativi, come aumento della latenza o ritardi nelle risposte?
- Dopo l'avvio dei carichi di lavoro, hanno bisogno di tempo per raggiungere i livelli di prestazioni previsti?
I risultati di questa valutazione sono spesso modelli della domanda che i tuoi carichi di lavoro soddisfano e dei dati che i carichi di lavoro producono in un determinato periodo di tempo. Quando raccogli i punti dati per produrre questi modelli, tieni presente che potrebbero variare in modo significativo tra i periodi di picco e non di picco. Per ulteriori informazioni su come e cosa monitorare, consulta Obiettivi del livello di servizio nel libro Site Reliability Engineering.
Assicurati di poter aggiornare ed eseguire il deployment di ogni workload da migrare
Durante la migrazione, potrebbe essere necessario aggiornare alcuni dei carichi di lavoro che stai migrando. Ad esempio, potresti dover implementare una correzione per un problema o eseguire il rollback di una modifica recente che sta causando un problema. Per ogni carico di lavoro di cui esegui la migrazione, assicurati di poter applicare e implementare le modifiche. Ad esempio, se stai eseguendo la migrazione di un carico di lavoro per il quale disponi del codice sorgente, assicurati di poter accedere a questo codice e di poterlo compilare, pacchettizzare ed eseguire il deployment in base alle esigenze.
La migrazione potrebbe includere carichi di lavoro a cui non puoi applicare e distribuire modifiche, ad esempio software preesistenti e pronti all'uso. In questo scenario, esegui il refactoring del piano di migrazione per considerare l'impegno aggiuntivo necessario per mitigare i problemi che potrebbero verificarsi dopo la migrazione di questi carichi di lavoro.
Valutare l'infrastruttura di rete
Un'infrastruttura di rete funzionale è fondamentale per la migrazione. Puoi utilizzare l'infrastruttura di rete come parte degli strumenti di migrazione. Ad esempio, puoi utilizzare bilanciatori del carico e server DNS per indirizzare il traffico in base al tuo piano di migrazione.
Per evitare problemi durante la migrazione, è importante valutare l'infrastruttura di rete e stabilire in che misura può supportare la migrazione. Ad esempio, puoi iniziare prendendo in considerazione domande sulla tua infrastruttura di bilanciamento del carico, come le seguenti:
- Cosa succede quando riconfiguri i bilanciatori del carico?
- Quanto tempo è necessario prima che la configurazione aggiornata abbia effetto?
- Durante la migrazione senza tempi di inattività, cosa succede se si verifica un picco di traffico prima che la configurazione aggiornata sia attiva?
Dopo aver preso in considerazione le domande relative all'infrastruttura di bilanciamento del carico, passa a quelle relative all'infrastruttura DNS, ad esempio:
- Quali record DNS devi aggiornare per indirizzarli all'ambiente di destinazione e quando devi aggiornarli?
- Quali client utilizzano questi record DNS?
- Come viene configurata la durata (TTL) per i record DNS che prevedi di aggiornare?
- Puoi impostare il TTL del record DNS sul valore minimo in secondi prima di eseguire la migrazione?
- I tuoi client DNS e intermediari rispettano il TTL dei record DNS che prevedi di aggiornare? Ad esempio, le tue applicazioni hanno una memorizzazione nella cache DNS lato client che ignora il TTL che hai configurato per la migrazione? Ricorda che la risoluzione DNS prevede più livelli di memorizzazione nella cache. Valuta la possibilità di utilizzare Google Public DNS per evitare problemi con il DNS dell'ISP.
- I client DNS rispettano il TTL dei record DNS da aggiornare? Ad esempio, le tue applicazioni hanno la memorizzazione nella cache DNS lato client che ignora il TTL che hai configurato per la migrazione?
- Rilevi traffico diretto al tuo ambiente di origine anche dopo aver completato la migrazione?
Valuta la possibilità di creare una proof of concept
Un proof of concept (POC) è una piccola implementazione preliminare di un progetto di migrazione pianificato. Valida la fattibilità, la funzionalità e i potenziali vantaggi del progetto prima di impegnarti in un'implementazione completa. Una POC ti aiuta a determinare se i carichi di lavoro di migrazione funzionano correttamente nell'ambiente di destinazione.
Inizia definendo l'ambito e i criteri di successo specifici per la POC. I tuoi criteri di successo potrebbero includere metriche come la compatibilità completa del carico di lavoro di destinazione, tempi di inattività della migrazione minimi e requisiti di rendimento specifici.
Dopo aver identificato i criteri di successo, testa e convalida la tua POC. Nella documentazione del piano di migrazione, registra i risultati, le sfide che hai incontrato e le potenziali soluzioni a queste sfide.
Valuta la possibilità di creare un POC quando vuoi esaminare le seguenti aree di interesse:
- Convalida la fattibilità della migrazione:verifica che le tue applicazioni, i tuoi workload e i tuoi dati funzionino come previsto in Google Cloud.
- Stima dei tempi di inattività e pianificazione del rollback:misura i tempi di inattività necessari per eseguire la migrazione dei workload e trasferire i dati. Convalida gli scenari di rollback.
- Perfeziona il piano di migrazione:utilizza le seguenti considerazioni per perfezionare il piano prima di eseguire una migrazione su larga scala:
- Identifica l'approccio di migrazione migliore.
- Identifica le tue esigenze di modernizzazione o refactoring del workload.
- Identifica i potenziali rischi o problemi relativi alla migrazione.
- Testa la migrazione.
- Esegui la convalida della sicurezza e della conformità:assicurati che i criteri di sicurezza, i ruoli Identity and Access Management (IAM) e i requisiti di conformità per la migrazione siano in linea con le esigenze della tua organizzazione.
- Aumenta la fiducia e il coinvolgimento degli stakeholder: contribuisci a garantire la soddisfazione degli stakeholder. Una POC ben riuscita aumenta la fiducia degli stakeholder nel piano di migrazione, dimostrando vantaggi tangibili per i team di leadership e tecnici.
- Stima dei costi e delle possibilità di ottimizzazione:stima i costi associati alla migrazione. Esplora le possibilità di ottimizzazione, ad esempio testando diverse dimensioni dell'ambiente di destinazione e strumenti di migrazione.
Esegui l'iterazione di diverse prove concettuali. Modifica i carichi di lavoro di destinazione e il piano di migrazione finché non crei una POC che soddisfi i tuoi criteri di successo.
Pianificazione della migrazione
Una pianificazione accurata della migrazione ti aiuta a evitare problemi durante e dopo la migrazione. La pianificazione ti aiuta anche a evitare di dover affrontare attività impreviste.
Sviluppa una strategia di rollback per ogni passaggio del piano di migrazione
Durante la migrazione, qualsiasi passaggio del piano di migrazione che esegui potrebbe causare problemi imprevisti. Per assicurarti di poter risolvere questi problemi, prepara una strategia di rollback per ogni passaggio del piano di migrazione. Per evitare di perdere tempo durante un'interruzione, procedi nel seguente modo:
- Assicurati che le tue strategie di rollback funzionino rivedendo e testando periodicamente ciascuna strategia di rollback.
- Imposta un tempo di esecuzione massimo consentito per ogni passaggio della migrazione. Al termine di questo periodo di esecuzione consentito, i tuoi team iniziano a eseguire il rollback del passaggio di migrazione.
Anche se hai strategie di rollback pronte per ogni passaggio del piano di migrazione, alcuni di questi passaggi potrebbero comunque essere potenzialmente distruttivi. Un passaggio potenzialmente distruttivo potrebbe causare una qualche tipo di perdita anche se lo annulli, ad esempio una perdita di dati. Valuta quali passaggi del piano di migrazione sono potenzialmente interruttivi.
Se hai automatizzato un passaggio del piano di migrazione, assicurati di avere una procedura pianificata in anticipo per ogni passaggio automatizzato in caso di errore dell'automazione. Come per le strategie di rollback, rivedi e testa periodicamente ogni procedura pianificata.
Se configuri i canali di comunicazione nell'ambito della migrazione, per assicurarti di non rimanere bloccato nel tuo ambiente, esegui il provisioning dei canali di backup che puoi utilizzare per il ripristino in caso di errore. Ad esempio, se stai configurando Partner Interconnect, durante la migrazione puoi anche configurare un accesso di backup tramite internet pubblico nel caso in cui si verifichino problemi durante il provisioning e la configurazione.
Pianifica la modernizzazione e l'adattamento dei tuoi workload
Quando pianifichi la migrazione a Google Cloud, ricorda che la migrazione e l'integrazione dei carichi di lavoro richiedono tempo e potrebbero presentare delle sfide. Valuta la possibilità di creare un documento di panoramica che descriva l'architettura generale dei tuoi carichi di lavoro, incluse informazioni sui seguenti argomenti:
- Dipendenze da sistemi esterni e da middleware di terze parti, come archiviazione, messaggistica e hosting.
- Meccanismi per autenticare e autorizzare i workload.
- Procedure per l'integrazione con IAM.
- Requisiti per l'ambiente di runtime.
- Interazioni con le opzioni del livello di archiviazione, come Cloud Storage e Google Cloud database.
- Requisiti per il volume di trasferimento dei dati e la larghezza di banda.
- Modifiche al codice dell'applicazione che potresti apportare durante la migrazione.
- Opzioni per l'integrazione con Google Cloud Observability.
Potrebbe essere necessario modernizzare i carichi di lavoro, ad esempio integrando le librerieGoogle Cloud per autenticazione, autorizzazione, archiviazione e osservabilità. La modernizzazione delle librerie legacy può richiedere impegno. Pianifica un tempo sufficiente per testare a fondo i tuoi carichi di lavoro.
Pianificare implementazioni e deployment graduali
Per ridurre l'ambito dei problemi che potrebbero verificarsi durante la migrazione, evita modifiche su larga scala e progetta il piano di migrazione in modo da implementare gradualmente le modifiche. Ad esempio, pianifica deployment e modifiche alla configurazione graduali.
Se pianifichi implementazioni graduali, per ridurre il rischio di problemi imprevisti causati dall'applicazione delle modifiche, riduci al minimo il numero e le dimensioni di queste modifiche. Dopo aver identificato e risolto i problemi nel primo piccolo implementazione, puoi eseguire le implementazioni successive per modifiche simili su scale più grandi.
Avvisare i team di sviluppo e operazioni
Per ridurre l'impatto dei problemi che potrebbero verificarsi durante una migrazione, avvisa i team responsabili di qualsiasi workload da migrare. Inoltre, avvisa i team responsabili dell'infrastruttura degli ambienti di origine e di destinazione.
Se i tuoi team lavorano in fusi orari diversi e utilizzi il modello operativo follow-the-sun, assicurati che:
- I tuoi team coprono correttamente questi fusi orari e più turni consecutivi, perché potrebbero non essere in grado di risolvere i problemi durante un singolo turno.
- I tuoi team sono pronti a raccogliere informazioni dettagliate sui problemi che potrebbero riscontrare. Questa raccolta fornisce agli ingegneri del turno successivo una comprensione completa di ciò che è stato fatto nel turno precedente e del perché.
- Persone specifiche dei tuoi team sono responsabili di un determinato turno.
Rimuovi le risorse proof-of-concept dall'ambiente di produzione di destinazione
Nell'ambito della valutazione, potresti aver utilizzato l'ambiente di destinazione per ospitare esperimenti e prove concettuali. Prima della migrazione, rimuovi tutte le risorse che hai creato durante questi esperimenti e prove di concetto dall'area di produzione dell'ambiente di destinazione.
Puoi conservare le risorse in un'area non di produzione dell'ambiente di destinazione mentre la migrazione è in corso, perché potrebbero aiutarti a raccogliere informazioni su eventuali problemi che potrebbero sorgere durante la migrazione. Ad esempio, per diagnosticare i problemi che interessano i carichi di lavoro di produzione dopo la migrazione, puoi confrontare i log di configurazione e dati del carico di lavoro di produzione con i log di configurazione e dati delle prove concettuali e degli esperimenti.
Dopo aver completato la migrazione e verificato che l'ambiente di destinazione funzioni come previsto, puoi eliminare le risorse nell'area non di produzione dell'ambiente di destinazione.
Definisci i criteri per ritirare in sicurezza l'ambiente di origine
Per evitare il costo di esecuzione di due ambienti a tempo indeterminato, definisci le condizioni che devono essere soddisfatte per ritirare in sicurezza l'ambiente di origine, ad esempio:
- Tutti i workload, inclusi i backup e i meccanismi di alta disponibilità e di ripristino di emergenza, vengono migrati correttamente nell'ambiente di destinazione.
- I dati di cui è stata eseguita la migrazione all'ambiente di destinazione sono coerenti, accessibili e utilizzabili.
- L'accuratezza e la completezza dei dati migrati soddisfano lo standard definito.
- Le risorse che rimangono nell'ambiente di origine non sono dipendenze per i workload che non rientrano nell'ambito della migrazione.
- Il rendimento dei tuoi workload nell'ambiente di destinazione soddisfa i tuoi target SLA.
- I tuoi sistemi di monitoraggio segnalano che non c'è traffico di rete verso l'ambiente di origine che dovrebbe essere indirizzato all'ambiente di destinazione.
- Dopo che i carichi di lavoro vengono eseguiti senza problemi nell'ambiente di destinazione per un periodo di tempo definito, hai la certezza di non aver più bisogno di eseguire il rollback all'ambiente di origine.
Pianifica l'aggiornamento di tutti i documenti e le dashboard
Dopo aver completato la migrazione, pianifica di aggiornare in modo completo i runbook delle operazioni di produzione, i documenti di assistenza e le dashboard di monitoraggio. Le modifiche che devi apportare alla tua documentazione potrebbero includere i seguenti elementi:
- Diagrammi dell'architettura:aggiorna i diagrammi dell'architettura in modo che riflettano l'architettura di Google Cloud , soprattutto se modernizzi e refattorizzi i tuoi carichi di lavoro.
- Connessione e autenticazione:aggiorna la documentazione sui metodi di autenticazione, come IAM, e sulle configurazioni di rete per riflettere l'architettura Google Cloud .
- Sicurezza:aggiorna la documentazione che descrive Google Cloud le funzionalità di sicurezza, tra cui crittografia at-rest e in transito e i controlli dell'accesso basati su IAM.
- Manutenzione e scalabilità:aggiorna i runbook delle operazioni di produzione sulle finestre di manutenzione dei servizi gestiti, sulle procedure di scalabilità verticale e orizzontale e sulle best practice per l'ottimizzazione delle prestazioni.
- Alta disponibilità e failover:aggiorna la documentazione per le configurazioni ad alta disponibilità, le considerazioni sulla sincronizzazione regionale e zonale e i meccanismi di failover.
- Backup e ripristino:aggiorna i processi di backup e ripristino in modo che siano in linea con quelli supportati da Google Cloud e dal servizio di backup e ripristino di emergenza (RE). Questi processi includono backup automatici, possibilità di recupero point-in-time e procedure di esportazione e importazione.
- Ripristino di emergenza:aggiorna il piano e le procedure di RE in modo che siano in linea con le funzionalità di RE di Google Cloud , quindi testa le procedure aggiornate.
- Monitoraggio e logging: integra Google Cloud Observability nei tuoi sistemi di monitoraggio e generazione di avvisi. Aggiorna la documentazione su Cloud Quotas e specifica come interpretare log, metriche e avvisi.
Operazioni
Per gestire in modo efficiente l'ambiente di origine e l'ambiente di destinazione durante la migrazione, devi anche progettare i processi operativi.
Monitorare gli ambienti
Per osservare il comportamento degli ambienti di origine e di destinazione e per aiutarti a diagnosticare i problemi man mano che si verificano, configura quanto segue:
- Un sistema di monitoraggio per raccogliere metriche utili per il tuo scenario.
- Un sistema di logging per osservare il flusso di operazioni eseguite dai carichi di lavoro e da altri componenti degli ambienti.
- Un sistema di avviso che ti avvisa prima che si verifichi un evento problematico.
Google Cloud Observability supporta monitoraggio, logging e avvisi integrati per il tuo ambienteGoogle Cloud .
Poiché un carico di lavoro e le relative dipendenze si estendono su più ambienti, potresti dover prendere in considerazione l'utilizzo di più strumenti di monitoraggio e avviso per ambienti diversi. Considera la tempistica della migrazione delle policy di monitoraggio e avviso che supportano i carichi di lavoro. Ad esempio, se il tuo ambiente di origine è configurato per inviare un avviso quando un determinato server è inattivo, l'avviso viene attivato quando disattivi intenzionalmente il server. L'attivazione dell'avviso è prevista, ma si tratta di un comportamento inutile. Nell'ambito della migrazione, devi regolare continuamente gli avvisi per l'ambiente di origine e riconfigurarli per l'ambiente di destinazione.
Gestire la migrazione
Per gestire la migrazione, esamina il rendimento della migrazione per raccogliere informazioni che puoi utilizzare come retrospettiva al termine della migrazione. Dopo aver raccolto le informazioni, le utilizzi per analizzare il rendimento della migrazione e per preparare i punti dati sui potenziali miglioramenti dei tuoi ambienti.
Ad esempio, per iniziare a pianificare la gestione della migrazione, considera le seguenti domande:
- Quanto tempo ha richiesto ogni passaggio del piano di migrazione?
- Ci sono stati passaggi del piano di migrazione che hanno richiesto più tempo del previsto per essere completati?
- Mancavano passaggi o controlli?
- Si sono verificati eventi avversi durante la migrazione?
Passaggi successivi
- Scopri quando trovare assistenza per le migrazioni.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Marco Ferrari | Cloud Solutions Architect
Altro collaboratore: Alex Cârciu | Solutions Architect