Questo documento descrive le best practice per convalidare il piano di migrazione dei carichi di lavoro su Google Cloud. Questo documento non elenca tutte le possibili best practice per convalidare un piano di migrazione e non offre alcuna garanzia di successo. ma ti aiuta a stimolare discussioni 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 la possibilità 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:
- Eseguire la migrazione a Google Cloud: inizia
- Esegui la migrazione a Google Cloud: valuta e scopri i tuoi carichi di lavoro
- Eseguire la migrazione a Google Cloud: pianifica e crea le basi
- Eseguire la migrazione a Google Cloud: trasferire i set di dati di grandi dimensioni
- Eseguire la migrazione a Google Cloud: eseguire il deployment dei carichi di lavoro
- Eseguire la migrazione a Google Cloud: dai deployment manuali a quelli automatizzati e containerizzati
- Eseguire la migrazione a Google Cloud: ottimizzare l'ambiente
- Migrate to Google Cloud: best practice per convalidare una migrazione piano (questo documento)
- Esegui la migrazione a Google Cloud: riduci al minimo i costi
Test
Eseguire una completa valutazione dei carichi di lavoro e degli ambienti contribuisce a garantire una comprensione approfondita dei carichi di lavoro e degli ambienti. Questa conoscenza consente di ridurre al minimo i rischi che si verificano durante e dopo la migrazione a Google Cloud.
Esegui una valutazione completa
Prima di procedere con passaggi successivi alla fase di valutazione, completa 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. è aggiornato e che hai completato la valutazione. Ad esempio, valuta quanto sono aggiornati e affidabili i dati di origine per la tua valutazione e quali lacune potrebbero esserci nei dati.
Tempi di inattività: valuta quali carichi di lavoro possono permettersi un tempo di inattività e la durata massima di questi tempi di inattività. La migrazione dei carichi di lavoro con tempi di riposo nulli o quasi è più difficile rispetto alla migrazione dei carichi di lavoro che possono permettersi tempi di riposo. Per completare una migrazione senza tempi di riposo, devi progettare e implementare la ridondanza per ogni carico di lavoro di cui vuoi eseguire la migrazione. Devi inoltre avere per coordinare queste istanze ridondanti.
Quando valuti il tempo di inattività che un carico di lavoro può tollerare, valuta se il vantaggio aziendale di una migrazione senza tempi di inattività è maggiore di una maggiore complessità della migrazione. Se possibile, evita di creare una senza tempi di inattività 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, anche in ambienti diversi, come l'ambiente di origine e l'ambiente di destinazione. I deployment clusterizzati e ridondanti potrebbero semplificare la migrazione perché questi carichi di lavoro si coordinano tra loro con un intervento limitato.
Aggiornamenti della configurazione:valuta in che modo aggiorni la configurazione delle per i carichi di lavoro. Ad esempio, considera il modo in cui invii aggiornamenti configurazione di ogni carico di lavoro 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 nell'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 scenari diversi. Ad esempio, puoi generare report per tenere conto dei diversi profili di carico per i tuoi carichi di lavoro, ad esempio durante i periodi di picco e non di picco volte.
Valuta le modalità di errore supportate dai tuoi carichi di lavoro
Sapere come si comportano i carichi di lavoro in circostanze eccezionali ti aiuta a assicurati di non esporli a condizioni da cui non possono riprendersi. Nell'ambito della valutazione, raccogli informazioni sul modalità di errore e relativi effetti supportate dai tuoi carichi di lavoro e da cui possono ripristinare automaticamente, le modalità di errore richiedono il tuo intervento. Ad esempio, puoi iniziare ponendoti domande su possibili modalità di errore, ad esempio:
- 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 era stato interrotto arrestato?
- Cosa succede se le prestazioni di un carico di lavoro o le sue dipendenze inadeguate?
- Cosa succede se due carichi di lavoro hanno lo stesso identificatore in l'architettura?
- Che cosa succede se un'attività pianificata non viene eseguita?
- Che 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 particolare condizione e se include contingenze non viene 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 queste modalità di errore e i loro effetti, convalida i risultati in un ambiente non critico simulando guasti e inserendo errori che per emulare queste modalità di errore. Ad esempio, se un carico di lavoro è progettato il ripristino automatico dopo una perdita di connettività di rete, il ripristino interrompendo forzatamente la connettività e ripristinandola in seguito.
Valuta le tue pipeline di elaborazione dei 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 di cui hanno bisogno i tuoi carichi di lavoro?
- L'ambiente di destinazione può gestire l'intero volume di dati?
- Come si comportano i tuoi carichi di lavoro quando devono gestire picchi di domanda o picchi nella quantità di dati che producono in un determinato intervallo di tempo?
- Se si verificano picchi di domanda o picchi nella quantità di dati generati dai carichi di lavoro, si verificano effetti negativi, come un aumento della latenza o ritardi nelle risposte?
- Dopo l'avvio dei carichi di lavoro, hanno bisogno di tempo per raggiungere le livelli di prestazioni?
I risultati di questa valutazione sono spesso modelli della domanda soddisfatta dai carichi di lavoro e dei dati prodotti dai carichi di lavoro in un determinato intervallo di tempo. Quando raccogli punti dati per produrre questi modelli, considera che questi i punti dati possono variare significativamente tra le finestre di tempo di picco e non di picco. Per per ulteriori informazioni su come e cosa monitorare, consulta Obiettivi del livello di servizio nel libro Site Reliability Engineering.
Assicurati di poter aggiornare e implementare ogni carico di lavoro da migrare
Durante la migrazione, potresti dover aggiornare alcuni dei carichi di lavoro migrazione. Ad esempio, potresti dover eseguire il deployment di una correzione per un problema o eseguire una modifica recente che causa un problema. Per ogni carico di lavoro di Google, assicurati di poter applicare le modifiche ed eseguirne il deployment. Ad esempio, se stai eseguire la migrazione di un carico di lavoro per il quale disponi del codice sorgente, assicurati di poter accedere al codice sorgente e che puoi creare, pacchettizzare ed eseguire il deployment il codice, se necessario.
La migrazione potrebbe includere carichi di lavoro che non puoi applicare e che non puoi eseguire il deployment delle modifiche (come nel caso di software proprietario). In questo caso, esegui il refactoring del piano di migrazione per prendere in considerazione un impegno aggiuntivo per mitigare i problemi che potrebbero verificarsi dopo la migrazione di questi carichi di lavoro.
Valuta l'infrastruttura di rete
Un'infrastruttura di rete funzionale è fondamentale per la migrazione. Puoi usano 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 la rete dell'infrastruttura e valutare in che misura può supportare la migrazione. Ad esempio, puoi iniziare ponendoti domande sull'infrastruttura di bilanciamento del carico, ad esempio:
- Che cosa succede quando riconfiguri i bilanciatori del carico?
- Quanto tempo è necessario perché la configurazione aggiornata abbia effetto?
- Durante la migrazione senza tempi di riposo, cosa succede se si verifica un picco di traffico prima dell'applicazione della configurazione aggiornata?
Dopo aver esaminato le domande sull'infrastruttura di bilanciamento del carico, prova a fare domande sulla tua infrastruttura DNS, ad esempio:
- Quali record DNS devi aggiornare in modo che puntino 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? Per Ad esempio, se le tue applicazioni dispongono di una memorizzazione nella cache DNS lato client che ignora Il TTL che hai configurato per la migrazione?
Pianificazione della migrazione
Pianificare attentamente la migrazione ti aiuta a evitare problemi durante e dopo la migrazione. Planning consente anche di evitare sforzi ad attività inaspettate.
Sviluppare una strategia di rollback per ogni fase del piano di migrazione
Durante la migrazione, qualsiasi passaggio del piano di migrazione eseguito potrebbe causare problemi imprevisti. Per assicurarti di poter recuperare prepara una strategia di rollback per ogni fase del piano di migrazione. Per evitare di perdere tempo durante un'interruzione, procedi nel seguente modo:
- Assicurati che le tue strategie di rollback funzionino esaminando e testando periodicamente ogni strategia di rollback.
- Imposta un tempo di esecuzione massimo consentito per ogni passaggio della migrazione. Al termine di questo periodo di esecuzione consentito, i team inizieranno a eseguire il rollback del passaggio di migrazione.
Anche se hai già preparato strategie di rollback per ogni passaggio del piano di migrazione, alcuni di questi passaggi potrebbero comunque essere potenzialmente disastrosi. Un potenziale passaggio dirompente potrebbe causare una perdita anche se esegui il rollback, come una perdita di dati. Valuta quali passaggi del piano di migrazione sono potenzialmente problematici.
Se hai automatizzato un passaggio del piano di migrazione, assicurati di avere una procedura prepianificata per ogni passaggio automatico in caso di errore nell'automazione. Come per le strategie di rollback, rivedi e testa periodicamente ogni procedura prepianificata.
Se configuri i 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 da un errore. Ad esempio, se configuri Partner Interconnect durante la migrazione puoi anche impostare un accesso di backup tramite a internet in caso di problemi durante il provisioning configurazione.
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 i deployment graduali e le modifiche alla configurazione.
Se prevedi implementazioni graduali, per ridurre il rischio di problemi imprevisti causati dall'applicazione delle modifiche, minimizza il numero e dimensione di queste modifiche. Dopo aver identificato e risolto i problemi nel primo implementa meno di piccole dimensioni, puoi eseguire gli implementamenti successivi per modifiche simili su scala più ampia.
Avvisa i team operativi e di sviluppo
Per ridurre l'impatto dei problemi che potrebbero verificarsi durante una migrazione, avvisa responsabili della migrazione dei carichi di lavoro. Avvisa anche i team responsabili dell'infrastruttura degli ambienti di origine e di destinazione.
Se i tuoi team lavorano in fusi orari diversi, assicurati di 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 tuoi team sono pronti a raccogliere informazioni dettagliate sui problemi. che potrebbero affrontare. Questa raccolta fornisce agli ingegneri del turno successivo una comprensione completa di cosa ha fatto il turno precedente e perché.
- Alcune persone specifiche dei tuoi team sono responsabili di ogni turno.
Rimuovi le risorse di 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 le risorse che hai creato durante gli esperimenti e le prove di concetto dall'area di produzione dell'ambiente di destinazione.
Puoi mantenere le risorse in un'area di produzione dell'ambiente di destinazione mentre la migrazione è in corso 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 delle prove di concetto e degli esperimenti.
Dopo aver completato la migrazione e aver 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 gestire due ambienti a tempo indeterminato, definisci le condizioni che devono essere soddisfatte per ritirare in sicurezza l'ambiente di origine, ad esempio:
- Tutti i carichi di lavoro, inclusi i relativi backup e i meccanismi di alta disponibilità e di recupero dopo disastri, 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 migrati soddisfano i criteri definiti standard.
- Le risorse che rimangono nell'ambiente di origine non sono dipendenze che non rientrano nell'ambito della migrazione.
- Il rendimento dei carichi di lavoro nell'ambiente di destinazione soddisfa i tuoi obiettivi previsti dallo SLA.
- I tuoi sistemi di monitoraggio segnalano che non c'è traffico di rete verso l'ambiente di origine che deve essere indirizzato all'ambiente di destinazione.
- Dopo che i carichi di lavoro vengono eseguiti senza problemi nell'ambiente di destinazione per un periodo definito, puoi essere certo di non aver più bisogno di eseguire il fallback all'ambiente di origine.
Operazioni
Per gestire in modo efficiente l'ambiente di origine e quello di destinazione durante la migrazione, devi progettare anche le tue procedure operative.
Monitora i tuoi 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 le metriche utili per il tuo scenario.
- Un sistema di logging per osservare il flusso di operazioni eseguito 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.
Google Cloud Observability supporta il monitoraggio, il logging e la generazione di avvisi integrati per il tuo ambiente Google Cloud.
Poiché un carico di lavoro e le sue dipendenze coprono più ambienti, prendere in considerazione l'utilizzo di più strumenti di monitoraggio e avviso per ambienti cloud-native. Tieni conto delle tempistiche per la migrazione dei criteri di monitoraggio e di avviso che supportano i carichi di lavoro. Ad esempio, se l'ambiente di origine è configurato per inviare un avviso quando un determinato server non è attivo, l'avviso si attiva quando disattivi intenzionalmente il server. L'attivazione dell'avviso è prevista, ma si tratta di un comportamento non utile. Nell'ambito della migrazione, è necessario regolare continuamente gli avvisi per l'ambiente di origine e riconfigurarli per l'ambiente di destinazione.
Gestire la migrazione
Per gestire la migrazione, esamina le prestazioni della migrazione per raccogliere informazioni che puoi utilizzare come retrospettiva al termine della migrazione. Dopo aver raccolto le informazioni, utilizzale per analizzare il rendimento della migrazione e per preparare punti dati sui potenziali miglioramenti dei tuoi ambienti.
Ad esempio, per iniziare a pianificare la gestione della migrazione, poniti le seguenti domande:
- Quanto tempo è stato necessario per ogni passaggio del piano di migrazione?
- Ci sono stati passaggi del piano di migrazione che hanno richiesto più tempo completa del previsto?
- Sono mancati passaggi o controlli?
- Si sono verificati eventi avversi durante la migrazione?
Passaggi successivi
- Scopri come trovare assistenza per le migrazioni.
- Esplora architetture di riferimento, diagrammi e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.