Chi è questa Chaos Monkey e perché ha bloccato il mio server?


28

Avevo un server perfetto, era così bello e solido e così l'ho chiamato Petra. Era perfetto in ogni modo, tutto era configurato e messo a punto nel modo giusto, aveva un record di servizio perfetto al 100% e 753 giorni di uptime. Ho trascorso molto tempo e molti sforzi per assicurarmi che funzionasse così bene. Nessun altro server dell'azienda era stato così buono. Ma ieri sera questo mostro malvagio si è schiantato sul mio server senza motivo.

Scimmia del caos

Ovviamente sono stato avvisato alle 2 del mattino e mi ci è voluto fino al mattino per farlo funzionare e tutto è stato configurato e messo a punto, ma temo che non sarà buono come prima. Potrebbero essere necessarie settimane prima che ritorni al suo antico splendore. Ora il mio tempo di attività è finito, non ho nemmeno miseramente tre 9 e chissà cosa questo farà alla mia reputazione. Chi è questa Chaos Monkey e perché l'ha fatto al mio server e perché sta cercando di rovinarmi?


12
Ci deve essere un badge per la domanda più divertente :)
Richard Slater,

Server singolo? Cos'è quello? Perché dovresti basare la tua attività su un'opera d'arte unica anziché su un prodotto che può essere facilmente ridimensionato e sostituito quando inevitabilmente fallisce o va in affitto?
Nessun rimborso Nessun

Consideriamo davvero questa una buona domanda con cui effettuare il pre-seeding del sito? Ci aspettiamo che gli ingegneri installino, configurino ed eseguano Chaos Monkey, quindi dimentichino di cosa si tratta, ma scopriamo che è in esecuzione sulla loro rete e chiedono su Stack Exchange piuttosto che visitare il sito ufficiale? Ci sono così tanti passi lì che non sono plausibili.
Xiong Chiamiov

2
Ovviamente, non è una vera domanda. È stato uno scherzo una specie di ritratto del vecchio sistema di campo, che è stato semplicemente superato dall'industria. Ma le tue critiche presumono che ci sia una sola persona o anche una sola squadra a occuparsi dell'infrastruttura. Abbastanza spesso nelle grandi aziende l'infrastruttura e i team esistenti vengono lasciati sul posto anche mentre vengono sostituiti. È abbastanza plausibile che un nuovo team abbia iniziato con la nuova infrastruttura e l'installazione di Chaos Monkey e la vecchia scoreggia sia stata semplicemente colpita in un momento in cui era dopo il successo iniziale distribuito in tutta l'azienda.
Jiri Klouda,

La domanda ovvia è se avessi un server del genere, perché hai configurato Chaos Monkey?
user253751

Risposte:


32

TL; DR : Chaos Monkey è stato sviluppato nel 2010 su Netflix e rilasciato in libertà nel 2012 fa parte dell'esercito di Simian , popolarissimo tra i seguaci devoti . Basato sui principi dell'ingegneria del caos , l'esercito aumenta la resilienza al fallimento iniettando un fallimento costante al sistema.

Concetto

Chaos Monkey è stato sviluppato appositamente per AWS dove ucciderà casualmente le istanze all'interno di un gruppo di ridimensionamento automatico. È progettato per funzionare durante l'orario di lavoro quando gli ingegneri sono in allerta e possono reagire rapidamente ai guasti rilevati.

Esercito di Simian

I membri dell'esercito seminerebbero il caos con altri mezzi:

  • Latency Monkey introdurrà ritardi casuali ai servizi.

  • Chaos Gorilla (Kong) simulerà l'interruzione dell'intera zona di disponibilità.

Altre scimmie sono utili e rimuovono i membri deboli del branco:

  • Conformity Monkey chiude le istanze che non seguono le migliori pratiche.

  • Sicurezza Monkey cerca vulnerabilità di sicurezza note nella configurazione e nei servizi.

  • Il dottor Monkey chiude i casi malsani non conformi a determinate metriche.

  • Janitor Monkey cerca risorse inutilizzate da recuperare.

Il fallimento è inevitabile

Il fallimento nel sistema è inevitabile, qualcosa andrà sempre storto . Potresti non essere in grado di scegliere cosa, ma puoi provare a scegliere quando. Introducendo piccoli errori nel corso della giornata, garantisci la presenza dei tuoi ingegneri. Uccidendo rapidamente i servizi non conformi, ci si assicura che gli errori si verifichino spesso prima della distribuzione. Rendendo l'ambiente più contraddittorio, si garantisce che saranno gli sviluppatori a incorrere in problemi molto prima che qualsiasi servizio entri in produzione. I fallimenti saranno presto evidenti nella fase di integrazione di nuovi servizi con quelli vecchi, ma va bene, perché i vecchi servizi di produzione sono già resilienti.

Bestiame non animali domestici

Tutti te lo diranno di recente: non trattare i tuoi server come animali domestici . C'è un potere nei numeri e ogni singolo punto di errore farà cadere il sistema. Non importa quanto bene sia possibile ottimizzare e ottimizzare il server, non importa quanto hardware robusto si possa ottenere, quanto può gestire, non sarà mai una corrispondenza per un branco di piccole istanze scalabili. Chaos Monkey ti incoraggia a pensare a rimuovere tutti i punti di fallimento, perché prima o poi arriverà la Scimmia! Tutti falliscono e anche l'Amazon S3 ha avuto un'interruzione imprevedibile .

Anti-Fragile

Quindi qual è la teoria e perché funziona? Nassim Nicholas Taleb nel suo libro Antifragile descrive un concetto in cui i sistemi autocoscienti viventi trarranno beneficio da un piccolo livello di casualità e diventeranno effettivamente migliori di fronte alle avversità. Questo è simile alla ricottura.

Descrive anche un modo evolutivo, in cui la fragilità delle parti in un sistema si sta trasferendo nell'antifragilità del tutto . Il trasferimento avviene su due livelli:

  1. A parte piccole variazioni casuali - gli sviluppatori apportano modifiche - le soluzioni più adatte all'ambiente sopravvivranno e si propagheranno - supereranno i test e verranno implementate . Ciclo di vita di sviluppo standard .

  2. In caso di guasto di parti che non sono in grado di resistere a un livello più elevato di casualità nell'ambiente, le parti rimanenti che sono state in grado di resistere compongono un sistema che è nel complesso meglio in grado di gestire l'ambiente in evoluzione rispetto a prima. Questa è essenzialmente Chaos Monkey .

Livelli più grandi di casualità possono essere resistiti usando il secondo approccio.


"Il fallimento è inevitabile" - grande mantram!
wogsland,

È stato votato perché hai menzionato Nassim Taleb. Ragazzo super intelligente, e le sue idee possono essere applicate praticamente a tutto.
Maplebird

8

Alcune aggiunte alla tua risposta a questa domanda ...

Scimmie aggiuntive

L'articolo su "In che modo il caos aumenta le prestazioni " descrive alcune di queste scimmie, ad esempio:

  • 10-18 Monkey : trova problemi di configurazione e di runtime in istanze che servono clienti in più aree.
  • Chaos Kong : simula un'interruzione di una regione amazzonica.

Nota: lo stesso articolo menziona anche "Chaos Gorilla: simula un'interruzione di una zona di disponibilità amazzonica", anche se potrebbe essere che questo sia stato ribattezzato ora in "Chaos Kong: simula un'interruzione di una regione amazzonica" ... Caos ! Finora non ho trovato alcuna conferma / documento, almeno non sembra esserci un problema nella coda dei problemi . Una modifica non documentata avrebbe potuto arrivare alla produzione su github ... Gggggggrrrrreat!

Installa e usa le tue scimmie.

Vai su github per entrare in contatto con l'esercito di Simian (stesso link del primo link nella tua risposta). Ecco una citazione di ciò che troverai lì:

L'esercito di Simian consiste in servizi (scimmie) nel cloud per generare vari tipi di guasti, rilevare condizioni anomale e testare la nostra capacità di sopravvivere. L'obiettivo è mantenere il nostro cloud sicuro, protetto e altamente disponibile. Maggiori dettagli possono essere trovati in questo blog .

Attualmente i simian includono Chaos Monkey , Janitor Monkey e Conformity Monkey .

Fai riferimento alla Guida rapida per iniziare a configurare e utilizzare le scimmie.

Puoi persino configurare i monky, in modo che si adattino alle tue esigenze aziendali.

Se scavi abbastanza in profondità all'interno di quei collegamenti Github (ovvero all'interno del collegamento Supporto ), troverai anche un collegamento per unirti al gruppo Google SimianArmy .


Chaos Kong è stato ribattezzato Chaos Gorilla, credo o viceversa.
Jiri Klouda,

@JiriKlouda sembra confermare ciò che stavo iniziando a chiedermi. Questo è il motivo per cui ora ho aggiunto anche la mia osservazione nella mia risposta.
Pierre.Vriens

2

Un server per dominarli tutti, Un server per trovarli,
Un server per portarli tutti e in caso di interruzione li vincolano

Tu, Sauron, hai forgiato questo One Server, nell'oscurità di Mount Doom, il tuo Datacenter, nel desiderio di governare tutte le applicazioni.
Spero che la Fellowship of Devops si sia unita per dirti:

Gandalf - Dovrai PAAS

Dopo una lunga battaglia, Frodo the Chaos Monkey è stato in grado di sciogliere il tuo One Server e portare libertà a tutte le applicazioni, guidandoti allo stesso modo su server riproducibili allo stesso tempo.

Crediti:

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.