Esegui la migrazione a Google Cloud: best practice per la convalida di un piano di migrazione

Last reviewed 2023-11-29 UTC

Questo documento descrive le best practice per convalidare il piano per la migrazione dei tuoi carichi di lavoro in Google Cloud. Questo documento non elenca tutte le possibili best practice per la convalida di un piano di migrazione e non offre garanzie di successo. ma stimolano la discussione su potenziali modifiche e miglioramenti al 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 migrazione e vuoi esplorarne l'aspetto.

Questo documento fa parte di una serie in più parti sulla migrazione a Google Cloud:

Test

L'esecuzione di una valutazione completa dei carichi di lavoro e degli ambienti aiuta a garantire una comprensione approfondita dei carichi di lavoro e degli ambienti. Sviluppare queste informazioni consente di ridurre al minimo i rischi di problemi che si verificano durante e dopo la migrazione a Google Cloud.

Effettua una valutazione completa

Prima di procedere con i passaggi che seguono la fase di valutazione, completa la valutazione dei carichi di lavoro e degli ambienti. Per effettuare una valutazione completa, prendi in considerazione i seguenti elementi, che spesso vengono trascurati:

  • Inventario: assicurati che l'inventario dei carichi di lavoro di cui eseguire la migrazione sia aggiornato e di aver completato la valutazione. Ad esempio, valuta quanto sono aggiornati e affidabili i dati di origine per la tua valutazione e quali potrebbero esserci lacune nei dati.
  • Tempi di inattività: valuta quali carichi di lavoro possono comportare tempi di inattività e la durata massima di questi tempi di inattività. La migrazione dei carichi di lavoro con tempi di inattività pari a zero o quasi è più difficile della migrazione di carichi di lavoro che possono causare tempi di inattività. Per completare una migrazione senza tempi di inattività, devi progettare e implementare la ridondanza per ogni carico di lavoro di cui eseguire la migrazione. Devi anche coordinare queste istanze ridondanti.

    Quando valuti il tempo di inattività tollerato da un carico di lavoro, valuta se il vantaggio aziendale di una migrazione senza tempi di inattività è maggiore della maggiore complessità della migrazione. Se possibile, evita di creare requisiti di tempo di inattività pari a zero per un carico di lavoro.

  • Cluster 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 del 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 interventi limitati.

  • Aggiornamenti della configurazione: valuta come aggiorni la configurazione dei carichi di lavoro. Ad esempio, valuta le modalità di distribuzione degli aggiornamenti della configurazione di ogni carico di lavoro di cui vuoi eseguire la migrazione. Questa considerazione è fondamentale per il successo della migrazione perché potrebbe essere necessario aggiornare la configurazione dei carichi di lavoro durante la migrazione nell'ambiente di destinazione.

  • Genera più report di valutazione: durante la fase di valutazione, potrebbe essere utile generare più report di valutazione per tenere conto di scenari diversi. Ad esempio, puoi generare report per tenere conto dei diversi profili di carico per i tuoi carichi di lavoro, ad esempio in orari di punta e non di punta.

Valutare le modalità di errore supportate dai carichi di lavoro

Conoscere il comportamento dei carichi di lavoro in circostanze eccezionali ti consente di evitare di esporli a condizioni da cui non possono essere recuperati. Nell'ambito della valutazione, raccogli informazioni sulle modalità di guasto e sui relativi effetti che i tuoi carichi di lavoro supportano e da cui possono recuperare automaticamente, nonché sulle modalità di guasto che richiedono il tuo intervento. Ad esempio, puoi iniziare prendendo in considerazione domande sulle possibili modalità di errore, come le seguenti:

  • Cosa succede se un carico di lavoro perde la connettività alla rete?
  • Un carico di lavoro è in grado di riprendere il proprio lavoro dal punto in cui è stato interrotto dopo l'arresto?
  • Cosa succede se le prestazioni di un carico di lavoro o delle sue dipendenze sono inadeguate?
  • Cosa succede se due carichi di lavoro hanno lo stesso identificatore nell'architettura?
  • Che cosa succede se un'attività pianificata non viene eseguita?
  • Cosa succede se due carichi di lavoro elaborano la stessa richiesta?

Un'altra fonte di modalità di errore non supportate potrebbe essere il piano di migrazione stesso. Determina se il tuo piano di migrazione include passaggi che dipendono dal successo di una determinata condizione e se include contingenze nel caso in cui la condizione non sia 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 errore e i loro effetti, convalida i risultati in un ambiente non critico simulando gli errori e inserendo gli errori che emulano queste modalità. Ad esempio, se un carico di lavoro è progettato per il ripristino automatico dopo una perdita di connettività di rete, convalida il ripristino automatico interrompendo forzatamente la sua connettività e ripristinandola in seguito.

Valutare le pipeline di elaborazione dati

La valutazione del carico di lavoro dovrebbe 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 carichi di lavoro?
  • L'ambiente di destinazione è in grado di gestire l'intero volume di dati?
  • Come si comportano i carichi di lavoro quando devono far fronte a picchi di richiesta o di quantità di dati prodotti in un determinato periodo di tempo?
  • Se ci sono picchi nella domanda o picchi nella quantità di dati prodotti dai carichi di lavoro, ci sono effetti negativi, come un aumento della latenza o dei 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 carichi di lavoro soddisfano e dei dati prodotti dai carichi di lavoro in una determinata finestra temporale. Quando raccogli i punti dati per produrre questi modelli, tieni presente che questi punti dati potrebbero variare in modo significativo tra 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 carico di lavoro per la migrazione

Durante la migrazione, potresti dover aggiornare alcuni dei carichi di lavoro di cui esegui la migrazione. Ad esempio, potresti dover eseguire il deployment di una correzione per un problema o eseguire il rollback di una modifica recente che lo sta causando. Per ogni carico di lavoro di cui esegui la migrazione, assicurati di poter applicare le modifiche ed eseguirne il deployment. Ad esempio, se stai eseguendo la migrazione di un carico di lavoro per il quale disponi del codice sorgente, assicurati di poter accedere al codice sorgente e di poter creare, pacchettizzare ed eseguire il deployment del codice sorgente in base alle tue esigenze.

La migrazione potrebbe includere carichi di lavoro a cui non puoi applicare o di cui non puoi eseguire il deployment (ad esempio software proprietario). In questo scenario, rifattorizza il piano di migrazione per prendere in considerazione ulteriori sforzi per mitigare i problemi che potrebbero verificarsi dopo la migrazione di quei 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 della rete e valutare 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 riconfigura i bilanciatori del carico?
  • Quanto tempo è necessario perché la configurazione aggiornata sia applicata?
  • Quando esegui la migrazione senza tempi di inattività, cosa succede se si verifica un picco di traffico prima dell'applicazione della configurazione aggiornata?

Dopo aver riflettuto sulle domande relative all'infrastruttura di bilanciamento del carico, poniti le seguenti domande sull'infrastruttura DNS, ad esempio le seguenti:

  • Quali record DNS devi aggiornare per indirizzarli all'ambiente di destinazione e quando devi aggiornarli?
  • Quali client utilizzano questi record DNS?
  • Come è configurata la durata (TTL) per l'aggiornamento dei record DNS?
  • Puoi impostare il TTL del record DNS al minimo durante la migrazione?
  • I tuoi 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 configurato per la migrazione?

Pianificazione della migrazione

Una pianificazione accurata consente di evitare problemi durante e dopo la migrazione. Pianificare ti aiuta anche a evitare lo sforzo di gestire attività inaspettate.

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 inaspettati. 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:

  • Esamina e testa periodicamente ogni strategia di rollback.
  • Imposta un tempo di esecuzione massimo consentito per ogni passaggio della migrazione. Alla scadenza del tempo di esecuzione consentito, i tuoi team inizieranno a eseguire il rollback della fase di migrazione.

Anche se hai strategie di rollback pronte per ogni passaggio del piano di migrazione, alcuni di questi passaggi potrebbero comunque essere potenzialmente fastidiosi. Un passaggio potenzialmente invasivo potrebbe causare un qualche tipo di perdita anche se esegui il rollback, ad esempio una perdita di dati. Valuta quali passaggi del piano di migrazione sono potenzialmente invasivi.

Se hai automatizzato un qualsiasi passaggio del piano di migrazione, assicurati di avere una procedura pianificata per ogni passaggio automatico in caso di errore nell'automazione. Come per le strategie di rollback, esamina e testa periodicamente ogni procedura pianificata.

Se imposti canali di comunicazione come parte della migrazione, per assicurarti di non perdere l'accesso al tuo ambiente, esegui il provisioning dei canali di backup che puoi utilizzare per il ripristino in seguito a un errore. Ad esempio, se configuri Partner Interconnect, durante la migrazione puoi anche configurare un accesso di backup tramite la rete internet pubblica in caso di problemi durante il provisioning e la configurazione.

Pianifica implementazioni e deployment graduali

Per ridurre l'ambito dei problemi che potrebbero verificarsi durante la migrazione, evita modifiche su larga scala e progetta il tuo piano di migrazione per implementare gradualmente le modifiche. Ad esempio, pianifica deployment e modifiche graduali della configurazione.

Se prevedi implementazioni graduali, per ridurre il rischio di problemi imprevisti causati dall'applicazione delle modifiche, riduci al minimo il numero e le dimensioni delle modifiche. Dopo aver identificato e risolto i problemi nella prima implementazione ridotta, puoi implementare modifiche simili su larga scala su larga scala.

Team operativi e di sviluppo degli avvisi

Per ridurre l'impatto di problemi che potrebbero verificarsi durante una migrazione, avvisa i team responsabili di qualsiasi carico di lavoro di cui eseguire la migrazione. Avvisa anche i team responsabili dell'infrastruttura degli ambienti di origine e di destinazione.

Se i tuoi team lavorano in fusi orari diversi, verifica quanto segue:

  • I tuoi team coprono correttamente questi fusi orari e coprono più turni consecutivi, perché potrebbero non essere in grado di risolvere i problemi durante un singolo turno.
  • I team sono pronti a raccogliere informazioni dettagliate sui problemi che potrebbero dover affrontare. Grazie a questa raccolta, gli ingegneri del cambiamento successivo possono farsi un'idea completa degli effetti del passaggio precedente e del perché.
  • Alcune persone specifiche dei tuoi team sono responsabili di ogni turno.

Rimuovi 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 proof of concept. Prima della migrazione, rimuovi tutte le risorse create durante questi esperimenti e i proof of concept dall'area di produzione dell'ambiente di destinazione.

Puoi mantenere le risorse in un'area non di produzione dell'ambiente di destinazione mentre è in corso la migrazione, perché potrebbero aiutarti a raccogliere informazioni su eventuali problemi che potrebbero verificarsi 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 dei proof of concept 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 modo sicuro l'ambiente di origine

Per evitare il costo dell'esecuzione di due ambienti a tempo indeterminato, definisci le condizioni che devono essere soddisfatte per poter ritirare in modo sicuro l'ambiente di origine, ad esempio quanto segue:

  • Tutti i carichi di lavoro, inclusi i backup e i meccanismi ad alta disponibilità e di ripristino di emergenza, vengono migrati correttamente nell'ambiente di destinazione.
  • I dati di cui è stata eseguita la migrazione nell'ambiente di destinazione sono coerenti, accessibili e utilizzabili.
  • L'accuratezza e la completezza dei dati di cui è stata eseguita la migrazione soddisfano lo standard definito.
  • Le risorse che rimangono nell'ambiente di origine non sono dipendenze per carichi di lavoro esterni all'ambito della migrazione.
  • Le prestazioni dei carichi di lavoro nell'ambiente di destinazione soddisfano gli obiettivi dello SLA (accordo sul livello del servizio).
  • I sistemi di monitoraggio segnalano che non c'è traffico di rete verso l'ambiente di origine da indirizzare all'ambiente di destinazione.
  • Dopo che i carichi di lavoro sono stati eseguiti senza problemi nell'ambiente di destinazione per un periodo di tempo da te definito, hai la certezza che non avrai più bisogno della capacità di ricorrere all'ambiente di origine.

Suite operativa

Per gestire in modo efficiente l'ambiente di origine e l'ambiente di destinazione durante la migrazione, devi anche progettare i tuoi processi operativi.

Monitora i tuoi ambienti

Per osservare il comportamento degli ambienti di origine e di destinazione e per diagnosticare più facilmente i problemi quando 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 delle operazioni eseguite dai carichi di lavoro e da altri componenti dei tuoi ambienti.
  • Un sistema di avviso che ti avvisa prima che si verifichi un evento problematico.

L'osservabilità di Google Cloud supporta il monitoraggio, il logging e gli avvisi integrati per l'ambiente Google Cloud.

Poiché un carico di lavoro e le sue dipendenze si estendono su più ambienti, potrebbe essere necessario utilizzare più strumenti di monitoraggio e avviso per ambienti diversi. Considera le tempistiche di migrazione dei criteri di monitoraggio e avviso che supportano i carichi di lavoro. Ad esempio, se l'ambiente di origine è configurato per segnalare che un determinato server non è disponibile, l'avviso si attiva quando spegni intenzionalmente il server. L'attivatore di avviso è previsto, ma è un comportamento inutile. Nell'ambito della migrazione, devi modificare continuamente gli avvisi per l'ambiente di origine e riconfigurarli per l'ambiente di destinazione.

Gestisci la migrazione

Per gestire la migrazione, puoi esaminarne le prestazioni per raccogliere informazioni da utilizzare in modo retroattivo al termine della migrazione. Dopo aver raccolto le informazioni, puoi utilizzarle per analizzare le prestazioni della migrazione e per preparare i punti dati sui potenziali miglioramenti dei tuoi ambienti.

Ad esempio, per iniziare a pianificare la gestione della migrazione, poniti 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 completamento del previsto?
  • Mancano passaggi o controlli?
  • Si sono verificati eventi avversi durante la migrazione?

Passaggi successivi