Convalida migrazione
Sposta il traffico solo dopo il passaggio di comportamenti, sicurezza, prestazioni, osservabilità e cancelli di rollback.
Prima del cutover, effettuare le operazioni di convalida riportate di seguito.
- Ripeti gli eventi acquisiti e confronta gli output, gli errori, i codici di stato, le intestazioni, lo schema del corpo, i metadati degli oggetti, le scritture a valle, gli effetti collaterali, i log e il comportamento degli allarmi.
- Esegui test di carico e guasti che coprono la durata p95/p99, la durata massima, l'headroom di memoria, i percorsi sensibili all'avvio freddo, il picco di concorrenza, il backlog o l'età della coda, i tempeste di nuovo tentativo, i limiti di frequenza a valle e i sintomi di capacità.
- Test di payload con formato errato, eventi duplicati, messaggi avvelenati, indisponibilità a valle, negazione delle autorizzazioni, rotazione segreta, errore di rete, comportamento di timeout, prevenzione dei loop e condizioni di rollback.
Passaggio alle funzioni OCI
Sposta il traffico solo dopo il passaggio di comportamenti, sicurezza, prestazioni, osservabilità e cancelli di rollback.
Per passare alle funzioni OCI, effettuare le operazioni riportate di seguito.
- Verificare che siano stati superati i controlli di convalida funzionali, prestazionali, di sicurezza e operativi.
- Registrare il proprietario del cutover, il proprietario del rollback, i criteri di riuscita, i trigger di rollback e il tempo di recupero previsto.
- Bloccare le modifiche dell'applicazione non correlate durante la finestra di cutover.
- Passare una parte limitata e osservabile del carico di lavoro alle funzioni OCI, ove possibile.
- Monitora gli output aziendali, gli errori, i timeout, la latenza, la limitazione, il backlog e gli errori a valle.
- Aumentare il traffico solo dopo il periodo di osservazione concordato.
- Arrestare il cutover ed eseguire il piano di rollback se un criterio di successo richiesto non riesce.
- Avviare l'ondata di migrazione successiva solo dopo che i proprietari dell'applicazione e delle operazioni hanno accettato i risultati della produzione.
Se l'instradamento basato su percentuale non è disponibile, limitare l'esposizione iniziale in base a trigger, bucket, coda, area o altro limite del carico di lavoro controllato.
Convalida dopo migrazione
Verificare che il carico di lavoro migrato soddisfi i requisiti di architettura, comportamento, prestazioni, sicurezza e operazioni.
Per eseguire la convalida dopo la migrazione, effettuare le operazioni riportate di seguito.
- Il ruolo del carico di lavoro, l'inventario di origine, l'architettura di destinazione, le alternative, la valutazione dei rischi, i limiti del servizio e il comportamento di richiamo della destinazione sono documentati.
- Gli inventari di trigger, dipendenza, sicurezza, networking e operazioni sono sufficientemente completi da consentire a un revisore di riprodurre la decisione di destinazione.
- Gli eventi acquisiti producono codici di stato, intestazioni, schema del corpo, metadati degli oggetti, scritture a valle, effetti collaterali, log e comportamento degli errori.
- Ogni trigger dispone di test per il formato del payload, i nuovi tentativi, l'errore, l'ordine, il comportamento in batch, l'idempotenza, la consegna duplicata, l'instradamento di lettera morta o errore e i messaggi avvelenati, se applicabile.
- durata p95/p99, durata massima, spazio di memoria, percorsi sensibili all'avvio a freddo, concorrenza di picco, durata backlog o code, conteggio timeout, comportamento throttle o 429 e limiti di frequenza a valle soddisfano i requisiti del carico di lavoro.
- I controlli di concorrenza proteggono i sistemi a valle ed evitano tempeste di nuovi tentativi o crescita del backlog illimitato.
- Le chiamate di servizio consentite hanno esito positivo e i percorsi negati non riescono in sicurezza. I segreti non sono presenti in codice sorgente, immagini, log, dump dell'ambiente, output CI, stack trace o messaggi di errore.
- Le dipendenze private ed esterne necessarie sono raggiungibili tramite percorsi di rete approvati. Log, metriche, allarmi, dashboard, trace, runbook, trigger di rollback, proprietario, passi, tempo di recupero previsto e approvazioni finali vengono completati prima degli spostamenti del traffico.
Informazioni su problemi di migrazione e mitigazioni comuni
Evita questi errori comuni di progettazione, integrazione e operazioni della migrazione.
- Creare tutte le funzioni Lambda uguali: classificare ogni funzione in base al ruolo, al trigger, alle dipendenze, al comportamento runtime, al profilo di traffico e alle esigenze operative prima di scegliere la destinazione.
- Scelta anticipata delle funzioni OCI: convalida del payload, del timeout, della memoria, della dipendenza, del richiamo, della concorrenza, del networking e dell'integrazione prima del codice di rifattorizzazione.
- Supponendo che i payload degli eventi siano identici: creare un adattatore handler OCI e ripetere gli eventi di origine acquisiti prima di connettere i trigger di produzione.
- Ignoramento dei livelli e delle dipendenze native: crea le dipendenze all'interno dell'immagine della funzione OCI o dell'immagine di base condivisa, quindi testa la dimensione dell'immagine, l'avvio, le librerie native e le versioni delle dipendenze.
- La traduzione di IAM è troppo ampia: mappa le azioni di runtime osservate ai criteri OCI con meno privilegi e testa i percorsi negati, non solo l'accesso happy-path.
- La semantica della coda o del flusso è diversa: progetta l'idempotenza esplicita, riprova, guasto parziale, destinazione degli errori, gestione degli ordini e della backpressure.
- Gli eventi oggetto causano loop: utilizzare prefissi o filtri di input e output separati e convalidare il funzionamento di creazione, aggiornamento, eliminazione, nuovo tentativo, duplicazione e prevenzione loop.
- Le operazioni vengono posticipate: consentono di abilitare log, metriche, allarmi, dashboard, runbook, test degli errori e controlli di rollback prima che il traffico di produzione si sposti.