Esistono esempi di implementazione e risposta efficace a una "Scimmia del caos"?


15

Jeff Atwood ha recentemente scritto un post sul blog sull'implementazione di Netflix di "Chaos Monkey". È un articolo di altissimo livello. Sono curioso di sapere se qualcuno ha effettivamente implementato questa tecnica per testare un sistema.

Immagino che cosa sto davvero cercando di chiedere: quali strategie implementate per garantire che la vostra architettura possa sopravvivere a una parte del crash del sistema?


1
E forse, quali strategie usi per testare tale architettura?
— rlb.usa,

... Beh, immagino che stiamo aspettando che qualcuno della squadra di
— Netflix

Probabilmente lancerò una taglia su questo. Potrebbero avere delle risposte molto interessanti
— Robotsushi il

1
D'accordo ... Ma appartiene ai programmatori, non SO. Votato per la migrazione.

Risposte:


5

L'isolamento e il degrado aggraziato sono le strategie generali. (Un altro termine che potresti vedere simile all'isolamento è il disaccoppiamento , anche se tendo a vederlo su scala minore, come in OOD / P. Il concetto è lo stesso.)

Si isolano parti diverse di un sistema l'una dall'altra in modo che se una non funziona, le altre possono ancora rispondere alle richieste. Come diceva il blog Netflix , se la ricerca non funzionasse, lo streaming andrebbe comunque bene. Questo significa solo che la ricerca e lo streaming sono stati separati in modo tale che un collo di bottiglia o l'inabilità di uno non hanno influito sull'altro.

Con grazioso degrado, se la migliore implementazione di qualcosa non è disponibile, hai qualcos'altro da compilare. Sempre dal post di Netflix, hanno un sistema per guardare le cose che hai guardato e apprezzato e quindi elaborare consigli personalizzati di altri cose da guardare. Se quel sistema non funziona, tornano a mostrare raccomandazioni su cose che sono nel complesso popolari. Il punto è avere un piano B, un piano C, ecc. Da fare o mostrare qualcosa quando il piano A fallisce piuttosto che mostrare nulla o un errore.

Un esempio comune sul lato client di degrado gradevole (indipendentemente dal fatto che l'implementazione sia comune o meno) riguarda l'uso di JavaScript sui siti Web. Se il javascript del browser è disabilitato o semplicemente non disponibile, le pagine del sito dovrebbero comunque funzionare correttamente senza di esso. Potrebbe non essere veloce o fluido, ma dovrebbe comunque funzionare piuttosto che diventare inutilizzabile.

Queste sono idee molto generali, però. Quasi ogni progetto li implementerebbe in modo diverso, a seconda dei servizi e sottosistemi che forniscono e delle dipendenze tra di loro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.