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 fornisce garanzie 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
- 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 la convalida di un piano di migrazione (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. Acquisire questa conoscenza ti aiuta a ridurre al minimo i rischi di problemi durante e dopo la migrazione a Google Cloud.
Esegui una valutazione completa
Prima di procedere con i passaggi successivi alla 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 che tu abbia 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 riposo: valuta quali carichi di lavoro possono permettersi un tempo di riposo e la durata massima di questi tempi di riposo. 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. Inoltre, devi coordinare queste istanze ridondanti.
Quando valuti il tempo di riposo che un carico di lavoro può tollerare, valuta se il vantaggio aziendale di una migrazione senza tempi di riposo è maggiore della complessità aggiuntiva della migrazione. Se possibile, evita di creare un requisito di tempo di riposo 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, 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 come aggiorni la configurazione dei tuoi workload. Ad esempio, valuta come apporti aggiornamenti alla configurazione di ogni carico di lavoro di cui vuoi eseguire la migrazione. Questa considerazione è fondamentale per la buona riuscita della migrazione, in quanto 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 scenari diversi. Ad esempio, puoi generare report che tengano conto di diversi profili di carico per i tuoi carichi di lavoro, ad esempio in orari di punta e fuori orario.
Valuta i modi di errore supportati dai tuoi carichi di lavoro
Sapere come si comportano i carichi di lavoro in circostanze eccezionali ti aiuta a assicurarti di non esporli a condizioni da cui non possono riprendersi. Nell'ambito della valutazione, raccogli informazioni sulle modalità di errore e sui relativi effetti supportate dai tuoi carichi di lavoro e da cui possono recuperare automaticamente, nonché sulle modalità di errore che richiedono il tuo intervento. Ad esempio, puoi iniziare ponendo 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 lavoro da dove si era interrotto dopo essere stato interrotto?
- Cosa succede se il rendimento di un carico di lavoro o delle relative dipendenze è insufficiente?
- 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 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 piano di migrazione include passaggi che dipendono dall'esito positivo 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 queste modalità di errore e i relativi effetti, convalida i risultati in un ambiente non critico simulando errori e iniettando guasti che emulano queste modalità di errore. 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 ripristinandola in un secondo momento.
Valuta le 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 workload?
- 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, i carichi di lavoro hanno bisogno di tempo per raggiungere i livelli di prestazioni previsti?
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 i punti dati per produrre questi modelli, tieni presente che questi punti dati potrebbero variare notevolmente tra gli intervalli di tempo di picco e quelli non di picco. Per maggiori informazioni su come e cosa monitorare, consulta la sezione 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, potrebbe essere necessario aggiornare alcuni dei carichi di lavoro di cui vuoi eseguire la migrazione. Ad esempio, potresti dover implementare una correzione per un problema o annullare una modifica recente che sta causando un problema. Per ogni carico di lavoro di cui stai eseguendo la migrazione, assicurati di poter applicare e implementare le modifiche. Ad esempio, se stai eseguendo la migrazione di un carico di lavoro di cui disponi del codice sorgente, assicurati di poter accedere a questo codice sorgente 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 implementare modifiche (ad esempio 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 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 ponendoti domande sull'infrastruttura di bilanciamento del carico, ad esempio:
- Che cosa succede quando riconfiguri i bilanciatori del carico?
- Quanto tempo occorre prima che la configurazione aggiornata venga applicata?
- Durante la migrazione senza tempi di riposo, cosa succede se si verifica un picco di traffico prima dell'applicazione della configurazione aggiornata?
Dopo aver considerato le domande sull'infrastruttura di bilanciamento del carico, poniti le seguenti domande sull'infrastruttura DNS:
- Quali record DNS devi aggiornare in modo che puntino all'ambiente di destinazione e quando devi aggiornarli?
- Quali client utilizzano questi record DNS?
- Come viene configurata la durata (TTL) per l'aggiornamento dei record DNS?
- Puoi impostare il valore TTL del record DNS sul valore minimo durante la migrazione?
- I tuoi client DNS rispettano il TTL dei record DNS da aggiornare? Ad esempio, le tue applicazioni dispongono della memorizzazione nella cache DNS lato client che ignora il TTL configurato per la migrazione?
- Rilevi traffico diretto verso il tuo ambiente di origine anche dopo aver completato la migrazione?
Pianificazione della migrazione
Pianificare attentamente la migrazione ti aiuta a evitare problemi durante e dopo la migrazione. La pianificazione ti aiuta anche a evitare di dover gestire attività impreviste.
Sviluppare una strategia di rollback per ogni passaggio del piano di migrazione
Durante la migrazione, qualsiasi passaggio del piano di migrazione eseguito 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 esaminando e testando periodicamente ogni strategia di rollback.
- Imposta un tempo di esecuzione massimo consentito per ogni passaggio di 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 passaggio potenzialmente problematico 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 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 nell'ambito della migrazione, per assicurarti di non rimanere bloccato fuori dal tuo ambiente, esegui il provisioning dei canali di backup che puoi utilizzare per recuperare da un 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 implementazioni e rollout 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, riduci al minimo il numero e le dimensioni 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 di sviluppo e operazioni
Per ridurre l'impatto dei problemi che potrebbero verificarsi durante una migrazione, avvisa i team responsabili di qualsiasi carico di lavoro da migrare. 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 riscontrare. Questa raccolta fornisce agli ingegneri del turno successivo una comprensione completa di cosa ha fatto il turno precedente e perché.
- Persone specifiche dei tuoi team sono responsabili di un determinato 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 workload, inclusi i relativi 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 nell'ambiente di destinazione sono coerenti, accessibili e utilizzabili.
- L'accuratezza e la completezza dei dati sottoposti a migrazione 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 carichi di lavoro nell'ambiente di destinazione soddisfa i tuoi obiettivi previsti dallo SLA.
- I sistemi di monitoraggio segnalano che non c'è traffico di rete nell'ambiente di origine che debba 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 relative dipendenze si estendono su più ambienti, potresti dover prendere in considerazione l'utilizzo di più strumenti di monitoraggio e invio di avvisi per ambienti diversi. Tieni conto della tempistica della 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, devi aggiustare continuamente gli avvisi per l'ambiente di origine e riconfigurarli per l'ambiente di destinazione.
Gestire la migrazione
Per gestire la migrazione, esaminane il rendimento per raccogliere informazioni che puoi utilizzare come analisi di un'esperienza passata 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 è durata ogni fase del piano di migrazione?
- Ci sono stati passaggi del piano di migrazione che hanno richiesto più tempo del previsto per essere completati?
- Sono mancati passaggi o controlli?
- Si sono verificati eventi avversi durante la migrazione?
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