Che cos'è Azure Chaos Studio Preview?

Azure Chaos Studio è un servizio gestito per migliorare la resilienza tramite l'inserimento di errori nelle applicazioni Azure. L'esecuzione di esperimenti fault injection controllati sulle applicazioni, una pratica nota come chaos engineering, consente di misurare, comprendere e migliorare la resilienza in caso di eventi imprevisti reali, ad esempio interruzioni di un'area o errori delle applicazioni che causano un utilizzo elevato della CPU in una macchina virtuale.

Perché usare Chaos Studio?

Sia che si sviluppi una nuova applicazione ospitata in Azure, si eserciti la migrazione di un'applicazione esistente ad Azure o si eserciti un'applicazione già in esecuzione in Azure, è importante convalidare e migliorare la resilienza dell'applicazione. La resilienza è la capacità di un sistema di gestire e recuperare da interruzioni. Le interruzioni nella disponibilità dell'applicazione possono causare errori e errori per gli utenti, che a loro volta possono avere conseguenze negative sull'azienda o sulla missione.

Quando si esegue un'applicazione nel cloud, per evitare queste conseguenze negative è necessario verificare che l'applicazione risponda in modo efficace a interruzioni che potrebbero essere causate da un servizio da cui si dipende, interruzioni causate da un errore nel servizio stesso o persino interruzioni degli strumenti e dei processi di risposta agli eventi imprevisti. La sperimentazione di Chaos consente di verificare che l'applicazione ospitata nel cloud sia resiliente agli errori.

Quando si usa Chaos Studio?

La progettazione chaos può essere usata per un'ampia gamma di scenari di convalida della resilienza. Questi scenari si estendono all'intero ciclo di vita dello sviluppo e dell'operazione del servizio e possono essere classificati come spostamento a destra, in cui lo scenario viene convalidato meglio in un ambiente di produzione o di pre-produzione, oppure a sinistra, dove lo scenario può essere convalidato in un ambiente di sviluppo o in un ambiente di test condiviso. In genere gli scenari di spostamento a destra devono essere evasi con il traffico reale dei clienti o il carico simulato, mentre gli scenari di spostamento a sinistra possono essere evasi senza traffico reale dei clienti. Di seguito sono riportati alcuni scenari comuni in cui è possibile applicare chaos engineering:

  • Riprodurre un evento imprevisto che ha inciso sull'applicazione per comprendere meglio la modalità di errore o assicurarsi che gli elementi di riparazione post-evento imprevisto impediranno che l'evento imprevisto si ripeta.
  • Esecuzione di "giorni di gioco": convalida del carico, della scalabilità, delle prestazioni e della resilienza di un servizio in preparazione a un evento o una stagione utente importante.
  • Esecuzione di esercitazioni sulla continuità aziendale/ripristino di emergenza (BCDR, Business Continuity/Disaster Recovery) per assicurarsi che, se l'applicazione fosse tata da un'emergenza grave, il ripristino sia rapido e che i dati critici siano conservati.
  • Esecuzione di esercitazioni sulla disponibilità elevata per testare la resilienza dell'applicazione in caso di errori specifici, ad esempio interruzioni dell'area, errori di configurazione di rete, eventi di stress elevati o problemi con i vicini rumorosi.
  • Sviluppo di benchmark delle prestazioni delle applicazioni.
  • Pianificazione delle esigenze di capacità per gli ambienti di produzione.
  • Esecuzione di test di stress o test di carico.
  • Garantire che i servizi migrati da un ambiente locale o altro cloud rimangano resilienti agli errori noti.
  • Creazione di fiducia nei servizi creati in architetture native del cloud.
  • La convalida degli strumenti del sito live, dei dati di osservabilità e dei processi on call funziona come previsto in condizioni impreviste.

Per molti di questi scenari, prima di tutto si crea resilienza usando esperimenti chaos ad hoc e quindi si verifica continuamente che le nuove distribuzioni non regrediscono usando esperimenti chaos come gate di distribuzione nella pipeline CI/CD.

Come funziona Chaos Studio?

Chaos Studio consente di orchestrare fault injection risorse di Azure in modo sicuro e controllato. L'elemento centrale di Chaos Studio è l'esperimento chaos. Un esperimento chaos è una risorsa di Azure che descrive gli errori che devono essere eseguiti e le risorse su cui devono essere eseguiti tali errori. Gli errori possono essere organizzati per l'esecuzione in parallelo o in sequenza, a seconda delle esigenze. Chaos Studio supporta due tipi di errori: gli errori diretti al servizio, che vengono eseguiti direttamente su una risorsa di Azure senza alcuna installazione o strumentazione (ad esempio, il riavvio di un cluster cache di Azure per Redis o l'aggiunta di latenza di rete ai pod del servizio AzureKs) e gli errori basati su agente, che vengono eseguiti in macchine virtuali o set di scalabilità di macchine virtuali per eseguire errori nel guest (ad esempio, l'applicazione di un utilizzo di memoria virtuale o la rimozione di un processo). Ogni errore ha parametri specifici che è possibile controllare, ad esempio il processo da determinare o la quantità di utilizzo di memoria da generare.

Quando si compila un esperimento chaos, si definiscono uno o più passaggi che vengono eseguiti in sequenza, ogni passaggio contenente uno o più rami eseguiti in parallelo all'interno del passaggio e ogni ramo contenente una o più azioni, ad esempio l'inserimento di un errore o l'attesa per una determinata durata. Infine, si organizzano le risorse (destinazioni) su cui verrà eseguito ogni errore in gruppi denominati selettori in modo da poter fare facilmente riferimento a un gruppo di risorse in ogni azione.

Diagramma che mostra il layout di un esperimento chaos.

Un esperimento chaos è una risorsa di Azure che si trova in una sottoscrizione e in un gruppo di risorse. È possibile usare il portale di Azure o l'API REST di Chaos Studio per creare, aggiornare, avviare, annullare e visualizzare lo stato di un esperimento.

Passaggi successivi

Per iniziare a creare ed eseguire esperimenti chaos per migliorare la resilienza delle applicazioni con Chaos Studio, usare i collegamenti seguenti.