Panoramica di Fault Injection Testing

Fault Injection Testing ti consente di eseguire esperimenti di inserimento di errori, un metodo per introdurre errori in un sistema per testarne la resilienza prima che causino un errore reale e imprevisto che influisce sui tuoi clienti. Con Fault Injection Testing, puoi inserire errori in vari componenti del tuo ambiente Google Cloud per assicurarti che la tua applicazione li gestisca in modo prevedibile.

Per la release iniziale di Fault Injection Testing, gli errori sono generalmente equivalenti a un errore della risorsa di destinazione. Questi errori dovrebbero attivare l'applicazione per reindirizzare il traffico alle istanze integre se hai progettato la tolleranza di errore nella tua applicazione.

Devi osservare la tua applicazione prima, durante e dopo l'inserimento dell'errore per verificare che l'applicazione lo abbia gestito come previsto.

Perché utilizzare Fault Injection Testing?

Fault Injection Testing ti consente di eseguire esperimenti sulla resilienza delle tue applicazioni in Google Cloud in un'ampia gamma di scenari di errore. Una parte fondamentale di questo spettro è l'esecuzione di esperimenti per approssimare Google Cloud zone e regioni in errore, che sono difficili o impossibili da eseguire completamente in autonomia. Inoltre, il test di inserimento di errori funge da prezioso strumento di sviluppo e miglioramento, consentendoti di eseguire esperimenti sui meccanismi di resilienza progettati prima di introdurli in un ambiente di produzione. Rilevare i problemi prima che si manifestino in produzione consente di migliorare più rapidamente i progetti, evita costosi tempi di inattività e perdite di reputazione e migliora l'esperienza complessiva.

Senza un prodotto di inserimento di errori nativo di Google Cloud, devi eseguire i tuoi esperimenti. Eseguire i tuoi esperimenti è problematico:Google Cloud è un ambiente condiviso e in molti casi potresti non avere accesso diretto ai servizi e all'infrastruttura sottostanti. Questo scenario può comportare una sperimentazione inadeguata e faticosa che potrebbe rivelarsi inefficace nel suo obiettivo di sperimentare correttamente la resilienza dell'applicazione. Fault Injection Testing ti aiuta a ridurre lo sforzo di automatizzare questi esperimenti, ti consente di accedere a modalità di errore a cui altrimenti non avresti accesso e migliora la fedeltà dei tuoi sforzi di sperimentazione.

Per i clienti regolamentati, l'esecuzione di esperimenti regolari è spesso un requisito per rimanere conformi agli enti che regolano il settore. In questi casi, l'esperimento spesso assume la forma di test diripristino di emergenzay, dimostrando che l'interruzione di una zona o di una regione non impedirà all'applicazione di continuare a funzionare in modo efficace.

Come utilizzare Fault Injection Testing

Prima di utilizzare Fault Injection Testing, assicurati di quanto segue:

  • Gli ambienti da sperimentare presentano una certa ridondanza. Quando viene inserito un errore, l'applicazione di questo ambiente può continuare a essere eseguita sull'infrastruttura ridondante.
  • Per gli amministratori o i proprietari di Google Cloud risorse: scegli con attenzione a chi concedere le autorizzazioni per configurare ed eseguire esperimenti di Fault Injection Testing. Causare errori sui componenti dell'infrastruttura in esecuzione nel tuo ambiente Google Cloud causerà interruzioni. Pertanto, devi concedere l'autorizzazione solo agli operatori che comprendono l'architettura del loro ambiente cloud e come sperimentare in modo sicuro la resilienza di questa architettura, in modo che possano configurare gli esperimenti in modo da non causare interruzioni involontarie.

L'utilizzo di Fault Injection Testing prevede la configurazione di un esperimento. Per configurare un nuovo esperimento, devi prima creare un template di esperimento, che definisce l'errore da inserire e le risorse di destinazione. Poi eseguirai l'esperimento dal modello. Un esperimento è l'insieme di azioni definite nel modello che verranno eseguite sulle risorse selezionate nel modello.