Chaos Engineering - Previeni l'imprevedibile



Diverse cose possono andare storto durante il ciclo di vita dello sviluppo del software, come bug, attacchi informatici e interruzioni del sistema dovuti magari ad alluvioni o terremoti. Per prevenire l'imprevedibile ci viene in aiuto il Chaos Engineering.

Cos’è il Chaos Engineering

Il Chaos Engineering è una metodologia di testing del software che individua i punti deboli delle nostre applicazioni e infrastrutture attraverso l'immissione di fallimenti controllati nel sistema. Molti si chiederanno: perché dovrei rompere il mio software di proposito? Per fare un esempio, pensiamo al vaccino, ti viene iniettata una piccola quantità di corpo estraneo nel tuo corpo in modo che tu possa genere anticorpi e resistenza per prevenire la malattia. Il Chaos Engineering funziona allo stesso modo, iniettiamo danni al sistema in modo tale da generare immunità e rendere il software più robusto.

Principi del Chaos Engineering?
I principi del Chaos Engineering sono:
  • Piano: Inizia stabilendo un piano base. I tester devono identificare come il sistema dovrebbe funzionare in condizioni ottimali e specificare cosa costituisce un normale stato di funzionamento
  • Esperimento: Causare guasti nel sistema e vedere come reagisce. L'iniezione di errori è semplicemente il processo di introduzione di un problema in un sistema esistente per esporre una vulnerabilità.
  • Analisi: Utilizza i dati dei tuoi esperimenti per identificare potenziali punti di errore.
  • Risoluzione: Se trovi un problema, puoi terminare l'esperimento per concentrarti sulla risoluzione. Altrimenti, puoi ridimensionare il tuo esperimento fino a quando non arrivi al nocciolo del problema.

Chaos Monkey 

Nome molto particolare e divertente, nasce dall'idea di lasciare libera una scimmia armata all'interno del proprio data center in modo che spari casualmente alle virtual machine mentre il servizio continua senza interruzioni.

Chaos Monkey è uno strumento realizzato da Netflix che permette di interrompere il funzionamento di alcune istanze in modo da generare chaos e verificare di aver implementato una soluzione resiliente ai fallimenti ed ai problemi. Considerato uno dei tool migliori per perfezionare la qualità del servizio. 

Chaos Monkey è completamente integrato con Spinnaker e funziona con qualsiasi backend come AWS, Azure, Kubernetes, Google Cloud. Il progetto è opensource ed è disponibile su Github, per l'integrazione consultate direttamente la pagina che è in continuo aggiornamento.

Commenti

Post popolari in questo blog

Inbox & Outbox pattern - La consegna dei messaggi ai tempi moderni

I Behavior-Driven Development (BDD): La Magia dei Test che Parlano

#4 Space Invaders - Vola navicella....Vola - Unity Tutorial