Opsio - Cloud and AI Solutions
8 min di lettura· 1893 parole

Strategia di test della migrazione al cloud: fasi, tipi di test e checklist

Pubblicato: ·Aggiornato:
Tradotto dall'inglese e revisionato dal team editoriale di Opsio. Vedi originale →
Strategia di test della migrazione al cloud: fasi, tipi di test e checklist

Una strategia di test della migrazione al cloud definisce che cosa si testa prima, durante e dopo ogni ondata di migrazione, e i criteri di superamento o fallimento che decidono se un carico di lavoro va in produzione. Copre funzionalità, integrità dei dati, prestazioni, sicurezza e rollback. Il metodo: misurare una baseline sulla vecchia piattaforma, eseguire una migrazione di prova, confrontare, e passare al cutover solo quando i numeri coincidono.

Punti chiave

  • Rilevate le baseline prima di spostare qualsiasi cosa: tempi di risposta, tassi di errore, durata dei batch e conteggi di righe.
  • Concordate criteri di superamento e trigger di rollback prima della prima ondata, non durante il cutover.
  • Usate le funzioni di test degli stessi strumenti di migrazione: i test di migrazione di Azure Migrate e la data validation di AWS DMS esistono per questo scopo.
  • I tipi di test crescono con il percorso di migrazione. Un lift-and-shift richiede soprattutto verifiche di parità; un refactor richiede test funzionali e di integrazione completi.
  • Eseguite le migrazioni di prova in una rete isolata. Microsoft sconsiglia i test di migrazione in una rete virtuale di produzione.
  • Continuate a testare dopo il cutover: tenete d'occhio i service level indicator (SLI) per almeno un intero ciclo di business.

Che cos'è il test della migrazione al cloud?

Il test della migrazione al cloud è l'insieme di verifiche che dimostrano che un'applicazione, i suoi dati e la sua infrastruttura funzionano almeno altrettanto bene dopo lo spostamento che prima. Si svolge lungo l'intera migrazione, non solo alla fine.

Si distingue dai normali test di rilascio per tre aspetti:

  • Cambia la piattaforma, non il codice. In un lift-and-shift il codice è lo stesso, quindi si testa l'ambiente: rete, identità, prestazioni dello storage, DNS e fusi orari.
  • I dati si spostano. Bisogna dimostrare che ogni riga e ogni file sono arrivati, invariati, e che le modifiche in corso hanno continuato a sincronizzarsi fino al cutover.
  • Il cloud si comporta in modo diverso. Autoscaling, limiti dei servizi gestiti, latenza regionale e infrastruttura condivisa possono cambiare le prestazioni anche quando nient'altro è cambiato.

I criteri di successo restano quelli dell'on-premises: le funzioni devono lavorare, i dati devono essere completi e corretti, e gli utenti non devono accorgersi di un calo di velocità.

Le quattro fasi di una strategia di test della migrazione

Suddividete i test in quattro fasi, ciascuna con le proprie evidenze e la propria approvazione.

FaseObiettivoVerifiche principaliEvidenze
1. Pianificazione e baselineSapere come appare il "buono" oggiMappa delle dipendenze, percorsi utente critici, tempi di risposta attuali, durata dei batch, volumi di datiReport di baseline, criteri di superamento concordati
2. Migrazione di provaDimostrare che il carico funziona sulla destinazioneAvvio e connettività, smoke test funzionali, integrazioni, validazione dei dati, prestazioni sotto caricoRisultati dei test per carico, elenco dei difetti
3. CutoverPassare in sicurezza, con una via di ritornoSincronizzazione finale e validazione dei dati, controlli di DNS e certificati, smoke test, go/no-goRunbook di cutover con le tempistiche, go/no-go firmato
4. Post-migrazioneConfermare la stabilità e ottimizzareMonitoraggio degli SLI, accettazione utente, test di backup e ripristino, verifica dei costiReport di hypercare, difetti chiusi

Fase 1: pianificazione e baseline

Partite da un inventario di applicazioni, database, interfacce e job pianificati, poi ordinateli per rischio di business. Per ogni carico di lavoro, registrate i numeri con cui confronterete in seguito: tempo di risposta p95 delle transazioni chiave, tasso di errore, durata del batch notturno, dimensione del database e conteggi di righe.

Trasformateli in criteri. Ad esempio: "p95 della ricerca ordini entro il 10% della baseline", "zero discrepanze di righe nelle tabelle finanziarie", "il batch notturno termina prima delle 06:00". Il Google SRE book definisce un SLI come "una misura quantitativa definita con cura di un aspetto del livello di servizio" e un SLO come un valore obiettivo per esso (Google SRE book). Scrivere i criteri in questa forma rende oggettiva la decisione go/no-go.

Fase 2: migrazione di prova

Migrate una copia del carico di lavoro sulla destinazione e testatelo lì mentre l'origine continua a funzionare. Entrambe le principali piattaforme lo supportano:

  • Azure Migrate offre una migrazione di prova che avvia le VM replicate in una rete virtuale a vostra scelta. Le indicazioni di Microsoft sconsigliano la migrazione di prova in una rete virtuale di produzione, perché connessioni aperte verso l'on-premises possono causare VM duplicate o modifiche al DNS.
  • AWS Application Migration Service (MGN) avvia istanze di test da server replicati in continuo, e la replica prosegue dopo il test. AWS indica come best practice testare per almeno due settimane prima del cutover previsto, così da avere tempo per correggere ciò che emerge.

Usate questa fase per scoprire le sorprese: indirizzi IP scritti nel codice, regole di firewall mancanti, controlli di licenza legati all'hardware e job che chiamano server dimenticati nella migrazione.

Fase 3: cutover

Il cutover è un runbook provato, non un'improvvisazione. Congelate le modifiche, eseguite la sincronizzazione finale dei dati, validateli, cambiate i target di DNS o load balancer ed eseguite gli smoke test. Ogni passaggio ha un responsabile, un orario previsto e un'azione di rollback.

Definite in anticipo i trigger di rollback, ad esempio: "se gli smoke test falliscono o la validazione dei dati mostra discrepanze 60 minuti dopo il passaggio, riportare il DNS sull'origine". Provate il rollback almeno una volta durante le migrazioni di prova.

Fase 4: validazione post-migrazione

Dopo il go-live, confrontate gli SLI con la baseline per almeno un intero ciclo di business, includendo se possibile fine mese o giorni di picco. Eseguite i test di accettazione utente, provate un ripristino dai nuovi backup e confrontate la prima fattura cloud con la stima. Solo allora dismettete l'origine.

Quali tipi di test eseguire?

Abbinate i tipi di test al rischio di ciascun carico di lavoro. Non ogni applicazione richiede ogni test.

Tipo di testChe cosa dimostraStrumenti tipici
Funzionale e di regressioneFunzionalità e percorsi utente continuano a funzionareSelenium, Playwright, suite di test esistenti
IntegrazioneAPI, code di messaggi, trasferimenti di file e servizi di terze parti si colleganoContract test, strumenti di test API, transazioni sintetiche
Validazione dei datiOgni riga e ogni file sono arrivati e coincidonoAWS DMS data validation, checksum, conteggi di righe, strumenti di diff per database
Prestazioni e caricoTempi di risposta e throughput rispettano gli obiettivi, l'autoscaling funzionaJMeter, k6, Gatling
Sicurezza e conformitàAccessi, cifratura, regole di rete e logging sono correttiStrumenti di cloud security posture, scansioni delle vulnerabilità, revisioni IAM
Resilienza e DRIl carico sopravvive ai guasti e può essere ripristinatoProve di failover, ripristini da backup, AWS Fault Injection Service
Accettazione utenteGli utenti di business confermano che il sistema è idoneo all'usoUAT con script e approvazione formale

Per test di carico realistici che riproducano il vostro traffico di picco, consultate il nostro servizio di load testing.

Come si validano i dati durante una migrazione?

Validate i dati su tre livelli: conteggi, checksum e confronto riga per riga per le tabelle critiche.

  1. Conteggi: righe per tabella, file per bucket, byte totali. Veloce e individua gli errori grossolani.
  2. Checksum e aggregati: somme degli importi, hash delle colonne chiave. Individua problemi di troncamento e di codifica.
  3. Confronto a livello di riga: per i database, la data validation di AWS DMS confronta ogni riga di origine con la riga di destinazione e segnala le discrepanze, comprese le modifiche acquisite durante la replica in corso.

Dalla documentazione AWS emergono due limiti pratici da pianificare: la validazione richiede una chiave primaria o un indice univoco su ogni tabella e aggiunge carico di query sia sull'origine sia sulla destinazione. Programmate le validazioni pesanti fuori dall'orario di lavoro, oppure eseguitele come task separati di sola validazione.

Testate anche ciò che cambia volutamente. Se convertite da Oracle a PostgreSQL, tipi di dati, collation e ordinamento differiscono, quindi confrontate i risultati delle query, non solo i valori memorizzati. Il nostro servizio di migrazione dei database copre queste conversioni.

Come cambiano i test in base al percorso di migrazione

  • Rehost (lift and shift): concentratevi sulla parità dell'ambiente. Verificate rete, DNS, identità, throughput dello storage, job di backup e agent di monitoraggio. I test funzionali possono limitarsi a uno smoke test più i percorsi critici.
  • Replatform: quando spostate un database su un servizio gestito o un'applicazione su container, aggiungete validazione dei dati, test di prestazioni e verifiche dei limiti dei servizi gestiti, come il numero di connessioni.
  • Refactor: trattatelo come software nuovo. Eseguite test funzionali, di integrazione e di prestazioni completi, e usate rilasci canary o blue/green con feature flag per limitare l'esposizione.

Checklist per i test della migrazione al cloud

  • Inventario e mappa delle dipendenze completi per l'ondata
  • Baseline registrate per percorsi critici, job batch e volumi di dati
  • Criteri di superamento e trigger di rollback approvati dal responsabile di business
  • Ambiente di test isolato dalle reti di produzione
  • Infrastruttura definita come codice perché test e produzione coincidano (vedere il nostro servizio di Terraform infrastructure as code)
  • Dati di test mascherati quando contengono dati personali
  • Migrazione di prova eseguita, difetti corretti e ritestati
  • Validazione dei dati superata per tutte le tabelle in perimetro
  • Test di carico al picco previsto superato
  • Revisione di sicurezza completata: IAM, cifratura, security group, logging
  • Rollback provato e cronometrato
  • Runbook di cutover con responsabili e tempistiche approvato
  • Dashboard e alert di monitoraggio post-migrazione attivi
  • Ripristino da backup testato sulla nuova piattaforma

Come può aiutare Opsio

Opsio pianifica e gestisce migrazioni al cloud con i test integrati in ogni ondata. Per SilverRail Technologies, Opsio ha spostato su AWS la filiale nordica dell'azienda e l'ha integrata con l'organizzazione globale. La fase Mobilize ha incluso una migrazione pilota di prova di carichi selezionati, e il processo di migrazione e i servizi AWS sono stati adattati in base a quei test. I dati sono stati spostati con strumenti PostgreSQL nativi seguendo un piano di cutover dettagliato, e i cutover sono avvenuti in finestre di servizio ristrette per limitare l'impatto sui clienti. Leggete il caso studio SilverRail.

Domande frequenti

Che cos'è una strategia di test della migrazione al cloud?

È un piano che definisce quali test si eseguono prima, durante e dopo ogni ondata di migrazione, i criteri di superamento di ciascuno e chi li approva. Copre funzionalità, dati, prestazioni, sicurezza e rollback.

Quali sono le fasi del test della migrazione al cloud?

Pianificazione e baseline, migrazione di prova, cutover e validazione post-migrazione. Ogni fase produce evidenze, come report di baseline, risultati dei test, un go/no-go firmato e un report di hypercare.

Come si testano i dati dopo una migrazione al cloud?

Confrontando conteggi di righe e checksum per tutte le tabelle ed eseguendo confronti a livello di riga per i dati critici. Su AWS, la data validation di DMS confronta le righe di origine e destinazione e segnala le discrepanze; richiede una chiave primaria o un indice univoco su ogni tabella.

In che cosa il test di un lift-and-shift differisce da quello di un refactor?

Un lift-and-shift richiede soprattutto verifiche di parità dell'ambiente e dei percorsi critici, perché il codice non cambia. Un refactor richiede test funzionali, di integrazione e di prestazioni completi, poiché di fatto si rilascia software nuovo.

Per quanto tempo monitorare dopo il cutover?

Per almeno un intero ciclo di business, compresi i giorni di picco come fine mese, prima di dismettere i sistemi di origine. Mantenete aperta l'opzione di rollback finché non sono soddisfatti i criteri concordati.

Sull'autore

Oscar Bergenbrink
Oscar Bergenbrink

CTO

Technology leadership, cloud architecture, and digital transformation strategy

Standard editoriali: Questo articolo è stato scritto da un professionista certificato, indicato sopra come autore. Lo aggiorniamo quando cambiano la tecnologia o la normativa di cui tratta; le date qui sopra indicano l'ultimo aggiornamento. Opsio è editorialmente indipendente: consigliamo soluzioni in base al merito tecnico, non a rapporti commerciali.

Volete implementare ciò che avete appena letto?

I nostri architetti possono aiutarvi a trasformare queste idee in azione.