Lavorare con una “Chaos Monkey”

Molte volte i sistemisti, i programmatori e gli ingegneri sono accomunati da un’analoga spinta irrefrenabile che li porta a voler cambiare i propri sistemi in favore di qualcosa di più evoluto o performante. In tal senso si prende in considerazione l’idea di voler far migrare una parte, anche consistente della propria architettura su una nuova piattaforma o di voler modificare il cuore stesso di un dato sistema informatico in modo che risulti “al passo coi tempi”. Tutto ciò anche se il sistema risulta perfettamente funzionante, scalabile e soprattutto robusto. Si tende a pensare più al come il proprio software o sistema si comporti all’interno piuttosto che a come quest’ultimo risponda effettivamente alle richieste da parte dei propri utenti (i quali dovrebbero corrispondere con buona probabilità anche ai propri clienti).

Scimmia CaosThe Dirty Cream: http://thedirtycream.blogspot.com


Nella gestione del ciclo di vita di qualsiasi sistema informatico si applicano, nelle migliori aziende, delle tecniche di sviluppo del software che fanno capo ad una vera e propria materia di studio che prende il nome di Ingegneria del Software. Questa si compone di un insieme di tecniche e stili di e sviluppo che mirano alla creazione di un prodotto migliore dal punto di vista del cliente, dello sviluppatore e dell’azienda. Normalmente queste tecniche comprendono anche il test del software prodotto che può essere eseguito a livello di unità (moduli componenti il software stesso), di funzionalità, di installazione e via discorrendo. Un test che comunque fa emergere i veri problemi è sicuramente il beta e il test operativo successivo al deploy finale dell’applicativo venduto. Si tende a mettere sotto stress il proprio prodotto in modo tale che esso possa reggere a tutti le “sollecitazioni” esterne, in tutti i possibili scenari di utilizzo e ipotesi di fallimento che conseguono alla messa a regime del programma o dell’insieme di programmi.
In tutto ciò può sicuramente essere applicata la famosa legge di Murphy:

«Se qualcosa può andar male, lo farà.»



In questo modo un sistema perfettamente funzionante e robusto, capace quindi di sopportare ogni inconveniente o quasi e di rispondere in modo esaustivo alle richieste degli utilizzatori, diventa instabile e tende a bloccarsi inspiegabilmente, provocando le ire funeste dell’utente malcapitato. Se proprio si vuole procedere all’upgrade di un’applicazione che per anni ha fatto il suo dovere egregiamente è meglio prima dotarsi di una cattivissima SCIMMIA DEL CAOS.

Vi starete dunque chiedendo come funziona la nostra antipaticissima e impredicibile scimmietta da armadio. Ve lo spiego subito. Il caro primate da compagnia del delirante ingegnere informatico non è altro che un killer silenzioso e randomico delle istanze e dei servizi della nostra applicazione. Questo fenomenale animaletto programmato non fa altro che uccidere, uccidere e ancora uccidere senza che vi sia un modo qualsiasi di prevedere come o quando ciò avverrà. E questo non è semplicemente fantastico? Sì lo è. :) E sono anche certo che farà l’immensa gioia dei vostri carissimi programmatori, possibilmente sottoposti. Essi infatti dovranno creare del software che sappia sempre e comunque rispondere ai bisogni dell’entropica scimmietta affamata.

Ovviamente questo simpaticissimo animaletto da compagnia può essere dotato di moltissime funzionalità che possono essere via via abilitate nell’assoluta inconsapevolezza degli sviluppatori che si troveranno a fronteggiarla. Un esempio potrebbe essere quello di un software che cambi in modo random le porte di comunicazione del vostro web server, che modifichi le regole del vostro Iptables, che stoppi il servizio del vostro database o che semplicemente cambi del tutto randomicamente i permessi ai file dell’applicazione. Ci sono moltissimi scenari applicativi per la Chaos Monkey che vi lasciamo immaginare. Se ne avete voglia potete anche lasciare un commento a margine di questo articolo esponendo le vostre migliori strategie caotiche.

[youtube:http://www.youtube.com/watch?v=-jJZF_oIAEk]

Via: codinghorror.com

tags Tags: ,
categorieCategorie: Programmazione, Software

Forge Of Empires Italia

Comments are closed.