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.