Prima di scegliere una piattaforma CDC, è necessario testare lo stato di riavvio, il recupero, la convalida, il comportamento di riproduzione, la diagnostica e i limiti di ripristino.
La maggior parte delle dimostrazioni del CDC mostrano che il percorso funziona come previsto. I dati vengono trasferiti. L'obiettivo si aggiorna. Il pannello di controllo rimane verde. Ma una valutazione del ripristino del CDC deve testare una questione diversa:
Cosa succede quando il sentiero si interrompe?
Le linee guida AWS Well-Architected raccomandano di testare la resilienza in condizioni avverse in ambienti il più possibile simili a quelli di produzione. Avvertono inoltre di non progettare per la resilienza senza aver prima verificato il comportamento del carico di lavoro in caso di guasti e carichi imprevisti.*
Una prova di concetto (POC) della piattaforma offre al team l'opportunità di osservare il comportamento del sistema quando la replica subisce ritardi, si interrompe durante l'elaborazione attiva, perde l'accesso immediato alla cronologia di origine necessaria o deve dimostrare che la destinazione ripristinata è corretta.
L'obiettivo non è quello di creare un guasto artificiale che non si verificherebbe mai in produzione. Si tratta piuttosto di valutare se la piattaforma renda il ripristino visibile, testabile e difendibile in condizioni che rispecchino il vostro ambiente.
Un test di fattibilità pratico per la ripresa, basato sulle linee guida del CDC, dovrebbe testare otto aree:
Per ogni test, chiedersi quale condizione è stata introdotta, cosa potevano vedere gli operatori, quale stato ha mantenuto la piattaforma, cosa è successo durante il ripristino, quali prove sono rimaste in seguito e cosa la piattaforma non è stata in grado di stabilire. Ogni conclusione deve essere collegata alla sorgente, alla destinazione, alla topologia, alla versione, alla configurazione e allo scenario di errore testati.
Il criterio è semplice: mostrateci cosa succede quando il percorso si interrompe. Poi mostrateci come possiamo sapere che il ripristino è andato a buon fine.
Raggiungere questa fase significa probabilmente che avete già stabilito che il ripristino merita una valutazione più approfondita. Non ripetete l'intera valutazione di prontezza all'interno del Proof of Concept (POC). Piuttosto, integrate le lacune documentate nell'ambiente attuale nel piano di test.
Se tali lacune non sono state documentate, iniziate con "Quando un problema di ripristino del CDC diventa un problema della piattaforma ?" e documentate le lacune di ripristino nell'ambiente attuale prima di definire il POC.
Definisci quindi l'ambiente che il POC intende rappresentare. Come minimo, documenta:
Una dimostrazione generica fornisce prove limitate.
La domanda importante non è: la piattaforma supporta il ripristino? La domanda è: come funziona il ripristino in base ai nostri requisiti di origine, destinazione, configurazione, carico di lavoro e operatività?
Le sei aree di funzionalità descritte di seguito definiscono cosa un efficace ripristino CDC dovrebbe rendere visibile, testabile e interpretabile. Gli otto test POC che seguono mostrano come determinare se una piattaforma offre tali funzionalità per la sorgente, la destinazione, la topologia e la configurazione che si intende utilizzare.
Gli operatori devono essere in grado di capire dove si è interrotta l'elaborazione, quale stato rimane disponibile e dove si prevede che l'elaborazione riprenda. Lo stato può essere rappresentato da un checkpoint, un segnalibro, una posizione di riavvio, una posizione nel log sorgente, un RBA, un LRSN, un LSN o un altro marcatore specifico della piattaforma. Questi termini sono correlati, ma non intercambiabili.
Domanda di valutazione: cosa rappresenta ciascun indicatore di ripristino e come lo utilizza la piattaforma per determinare da dove riprende l'elaborazione?
Per le configurazioni supportate, il ripristino può dipendere da log attivi, log archiviati, journal o altra cronologia di origine conservata. La questione non è semplicemente se la cronologia esiste, ma se la piattaforma è in grado di identificare, accedere ed elaborare la cronologia necessaria attraverso un percorso supportato.
Domanda di valutazione: Quali dati storici sono necessari per il ripristino, per quanto tempo sono disponibili e cosa succede quando tali dati non possono più essere elaborati?
Un processo in corso, un recupero in corso e un recupero bloccato rappresentano stati operativi differenti. Gli operatori necessitano di dati quali ritardi, dimensioni e direzione del backlog, throughput, avanzamento della posizione di elaborazione, progressi nell'applicazione degli obiettivi e nuove attività provenienti dalla fonte durante la fase di ripristino.
Domanda di valutazione: gli operatori sono in grado di stabilire se l'arretrato si sta riducendo, rimane stabile o continua a crescere?
La convalida del ripristino va oltre lo stato del processo. La piattaforma dovrebbe aiutare i team a raccogliere prove appropriate ai dati interessati, alla finestra temporale dell'incidente e al rischio aziendale, chiarendo al contempo i limiti di tali prove.
Domanda di valutazione: Quali prove può fornire la piattaforma che il ripristino abbia prodotto lo stato target previsto e cosa rimane al di fuori dell'ambito di validazione della piattaforma?
Gli operatori necessitano di prove sufficienti per comprendere cosa è successo prima, durante e dopo un'interruzione. Ciò può richiedere la correlazione tra attività di elaborazione, ritardi o variazioni di throughput, errori della piattaforma, condizioni di origine, condizioni di destinazione e azioni di ripristino.
Quesito di valutazione: il team operativo è in grado di ricostruire l'accaduto senza riavviare la condotta o affidandosi all'interpretazione di un singolo specialista?
Le modifiche accumulate o ripetute possono raggiungere le applicazioni a valle dopo l'evento originale e attivare notifiche, pagamenti, aggiornamenti di inventario, flussi di lavoro o altre azioni. L'idempotenza è una proprietà del lato client, ma la piattaforma di replica dovrebbe rendere il comportamento di riproduzione sufficientemente visibile da consentire un coordinamento sicuro.
Domanda di valutazione: la piattaforma offre una visibilità sufficiente ai team a valle per determinare se la riproduzione può avvenire in sicurezza?
I nomi delle funzionalità non sono una prova. I test seguenti spostano la discussione da "Supportate questa soluzione?" a "Mostrateci come funziona quando è necessario il ripristino".
Creare una condizione controllata in cui la replica rimanga attiva ma non riesca a tenere il passo con l'attività della sorgente. Lo scopo è determinare se gli operatori siano in grado di distinguere tra funzionamento normale, ritardo crescente, recupero in corso e recupero bloccato.
Chiedi al fornitore di dimostrare l'entità del ritardo, la dimensione e la direzione dell'arretrato, dove si verifica il ritardo, se l'elaborazione sta procedendo e cosa succede all'esposizione della cronologia di origine man mano che il divario aumenta.
Sia l'entità che la direzione del problema sono visibili. Gli operatori non devono dedurre i progressi del recupero da un indicatore di stato verde. Possono capire quanto sono indietro rispetto all'obiettivo, dove si trova il ritardo e se le condizioni stanno migliorando.
Introduci un'interruzione sicura e supportata mentre le transazioni sono in corso. Un arresto pulito può mostrare un comportamento di riavvio normale, ma potrebbe non mostrare cosa accade durante una terminazione brusca, un'interruzione di rete, un guasto del sistema di destinazione o un altro evento realistico.
Chiedi al fornitore di mostrare quale stato di riavvio o di processo è stato mantenuto, cosa significa ciascun indicatore, da dove si prevede che l'elaborazione riprenda, quale limite di transazione si applica e se il lavoro può essere ritentato o rielaborato.
Gli operatori possono esaminare lo stato rilevante prima del riavvio e comprendere cosa farà la piattaforma. Il fornitore può distinguere lo stato di acquisizione della sorgente, elaborazione, trasporto e applicazione alla destinazione laddove tali distinzioni siano applicabili.
Per la CDC basata sui log, le modifiche accumulate possono dipendere da log attivi, log archiviati, journal o altra cronologia di origine conservata. Testa la catena di dipendenze in base al modello di conservazione che verrà utilizzato nel tuo ambiente di produzione.
Chiedi al fornitore di spiegare quale cronologia è necessaria, dove si trova, chi controlla la conservazione, come viene recuperata, se la piattaforma può elaborarla direttamente e dove termina il limite di ripristino supportato.
Il fornitore illustra come la piattaforma individua ed elabora la cronologia necessaria e cosa gli operatori possono monitorare. La risposta è specifica per la fonte e la configurazione, non è una dichiarazione generica sul supporto al ripristino dei log archiviati.
Inizia il recupero, quindi limita le condizioni di origine, di rete, di applicazione o di destinazione in modo che il divario esistente smetta di ridursi o di aumentare. Questo verifica se la piattaforma distingue l'attività dai progressi effettivi.
Chiedi al fornitore di mostrare l'andamento del backlog, le attuali tariffe di elaborazione e applicazione, l'avanzamento di posizione, i tentativi o le limitazioni, l'impatto sulla fonte e sulla destinazione e le basi per qualsiasi stima di completamento.
I progressi e le fasi di stallo nel recupero del divario si distinguono nettamente. Gli operatori possono verificare se il divario si sta riducendo, rimane stabile o peggiora, e le stime di completamento si basano sulle condizioni osservate anziché sulla produttività teorica.
Simula un errore rappresentativo a livello di origine, rete, replica o destinazione e valuta quali prove rimangono disponibili prima e dopo il riavvio.
Chiedete al fornitore di dimostrare come gli operatori indagano sul guasto, come vengono correlati il contesto di elaborazione e gli errori, per quanto tempo vengono conservate le prove, cosa può essere esportato e quali ulteriori prove relative alla fonte, alla rete o al target sono ancora necessarie.
Gli operatori possono collegare i dati relativi all'elaborazione della pipeline, le variazioni di latenza o di throughput, il componente che ha generato l'errore, lo stato residuo e le azioni di ripristino intraprese. Le informazioni utili non scompaiono silenziosamente al riavvio del processo.
Un riavvio riuscito dimostra che la replica è ripresa. Non dimostra che la destinazione sia completa, aggiornata e corretta. È opportuno inserire le discrepanze note laddove sia pratico e sicuro, come ad esempio un inserimento o un aggiornamento mancante, un record imprevisto, un duplicato, una cancellazione mancante, un valore obsoleto, una differenza di trasformazione o un problema di ordinamento in cui la sequenza è importante.
Chiedete al fornitore di dimostrare come vengono identificate le differenze tra la fonte e la destinazione, quali oggetti o finestre temporali degli incidenti possono essere presi in considerazione, quali chiavi e valori vengono confrontati, come vengono presentate le discrepanze e quale ulteriore convalida rimane di responsabilità del team operativo.
La piattaforma identifica differenze specifiche e spiega chiaramente cosa dimostra e cosa non dimostra il confronto. Un conteggio delle righe corrispondente o un processo completato non vengono presentati come prova universale di integrità.
Accumula le modifiche durante un'interruzione ed elaborale durante il recupero. Includi i tipi di eventi sensibili alla riproduzione laddove ciò sia sicuro. La riproduzione non è automaticamente un problema, ma una riproduzione invisibile o mal interpretata può esserlo.
Chiedi al fornitore di mostrare la finestra di riproduzione, i record o i tipi di evento interessati, il volume e la frequenza previsti, il comportamento di ripetizione o di elaborazione, le considerazioni relative all'ordinazione e quali prove rimangono dopo il recupero.
Una piattaforma di replica non può rendere idempotente un'applicazione di pagamento, notifica, inventario o flusso di lavoro. Può però fornire informazioni sufficienti ai team a valle per decidere se sia necessaria la soppressione, la deduplicazione, la sequenzializzazione o l'attivazione coordinata.
La riproduzione è visibile e attribuibile. I team a valle possono stimare cosa arriverà e quando, capire se potrebbero verificarsi elaborazioni ripetute e valutare se sono necessarie misure di sicurezza lato consumatore.
Ogni piattaforma CDC presenta delle condizioni in cui il riavvio o il recupero non sono la soluzione appropriata. Potrebbe essere necessaria una risincronizzazione mirata, una risincronizzazione più ampia o un ricaricamento completo quando lo stato di ripristino non è disponibile, la cronologia di origine necessaria non può essere elaborata, la destinazione è incoerente, si sono verificate modifiche non supportate o la convalida rivela discrepanze significative.
Chiedi al fornitore di spiegare quali scenari supportano il riavvio, il recupero storico, la risincronizzazione mirata, la risincronizzazione più ampia o il ricaricamento, e quali elementi indicano agli operatori che il normale percorso di ripristino non è più applicabile.
La risposta è specifica, qualificata e legata al contesto proposto. Definire con onestà i limiti di recupero è segno di maturità, non di debolezza.
Una prova di concetto (POC) rigorosa non dovrebbe limitarsi a screenshot, appunti di riunione e alla dichiarazione di superamento del test. Per ogni scenario, è necessario documentare le condizioni del test, le prove osservate, il risultato del ripristino, la valutazione, i limiti e le azioni di follow-up necessarie.
L'obiettivo non è assegnare un punteggio di ripristino generico, bensì determinare se la piattaforma ha dimostrato di possedere le capacità richieste dal vostro ambiente nelle condizioni di test effettuate.
Utilizza il foglio di lavoro per la valutazione del punto di cura per la ripresa del CDC . Il foglio di lavoro è il documento di lavoro per la valutazione. Usalo per:
Una funzionalità non dovrebbe essere contrassegnata come "Dimostrata" basandosi esclusivamente sulla documentazione del prodotto, sul materiale di presentazione o su spiegazioni verbali. La valutazione dovrebbe riflettere il comportamento osservabile e le prove raccolte durante il test.
Il nostro team operativo abituale potrebbe utilizzare le prove qui presentate per comprendere il guasto, gestire il ripristino e giustificare il nulla osta senza dipendere interamente dal fornitore o da un singolo specialista interno?
Testare solo il percorso ideale: un test di caricamento iniziale e di replica a regime riuscito stabilisce la funzionalità di base. Non stabilisce il comportamento di ripristino. Includere scenari con ritardo controllato, interruzione, recupero, convalida e limiti di ripristino.
Utilizzare solo arresti puliti: gli arresti puliti potrebbero non mostrare lo stesso stato di riavvio, la stessa transazione, la stessa diagnostica o lo stesso comportamento di ritentativo delle interruzioni brusche. Testare le condizioni di errore supportate che riflettono un rischio di produzione realistico.
Accettare etichette senza definizioni: termini come "esattamente una volta", "zero perdita di dati", "autoriparazione", "recupero automatico", "recupero senza interruzioni" e "validazione integrata" possono descrivere comportamenti diversi su piattaforme diverse. È necessaria una definizione legata alla configurazione testata e allo scenario di errore.
Considerare lo stato del processo come prova di recupero: essere in esecuzione non significa essere in pari. Essere in pari non significa essere validati. Essere validati in un ambito non dimostra la correttezza in ogni sua dimensione.
Non introdurre discrepanze note: se ogni test inizia e termina con dati corretti, la prova di concetto non stabilisce cosa la piattaforma è in grado di rilevare quando qualcosa non va. Includere, ove possibile, dati mancanti, imprevisti, cancellati, obsoleti o ripetuti.
Ignorare il comportamento a valle: il ripristino non si ferma alla tabella di destinazione. Le modifiche ritardate e riprodotte possono attivare applicazioni, eventi, notifiche, pagamenti, flussi di lavoro o decisioni a valle.
Non documentare ciò che non è stato dimostrato: una domanda senza risposta non dovrebbe essere tacitamente considerata una capacità. Registralo come:
Un POC del CDC dovrebbe dimostrare più della semplice replicazione riuscita in condizioni normali. Dovrebbe mostrare cosa vedono gli operatori quando la pipeline subisce un ritardo, quale stato di ripristino rimane dopo un guasto, da dove può riprendere l'elaborazione, da cosa dipende il ripristino storico, come viene misurato il progresso del recupero, quali prove diagnostiche rimangono, come viene convalidato l'obiettivo, cosa significa la riproduzione per gli utenti a valle e dove termina il percorso di ripristino supportato.
Applica gli stessi test a ogni piattaforma, inclusa quella già in uso nel tuo ambiente. La capacità di ripristino non deve essere dedotta dal nome di una funzionalità o da una dimostrazione ben fatta. Deve essere accertata attraverso comportamenti osservabili e prove documentate.
Mostraci cosa succede quando il percorso si interrompe. Poi mostraci come potremmo sapere che il recupero è andato a buon fine.
*AWS Well-Architected: Testare la resilienza utilizzando l'ingegneria del caos Novembre 2024
Il vostro sistema di sviluppo del CDC non è fermo. Siete sicuri che sia in salute?
Prima di riavviare, sai cosa ha causato l'errore?
L'errore più pericoloso nel recupero del CDC si verifica dopo il fallimento
La pipeline è di nuovo in funzione. Ci si può fidare dei dati?
Quando un problema di ripristino del CDC si trasforma in un problema della piattaforma?
Come elaborare un business case per gli investimenti del CDC per la ripresa
