Ohjelmointi

Mikä on Chaos Monkey? Kaaostekniikka selitti

Tienraivaaja Netflixin salista siirtymisensä aikana DVD-levyjen jakamisesta hajautettujen pilvijärjestelmien rakentamiseen videoiden suoratoistoa varten, Chaos Monkey esitteli suunnitteluperiaatteen, jonka kaikenkokoiset ja -kokoiset ohjelmistokehitysorganisaatiot ovat omaksuneet: nimittäin rikkomalla järjestelmiä tarkoituksella voi oppia tekemään heistä joustavampia.

Alkuperäisen Netflix-blogikirjoituksen mukaan, jonka heinäkuussa 2011 julkaisivat silloinen pilvi- ja järjestelmäinfrastruktuurin johtaja Yury Izrailevsky ja suoratoistoyrityksen pilviratkaisujen johtaja Ariel Tseitlin, Chaos Monkey on suunniteltu poistamaan satunnaisesti käytöstä tuotantotapaukset sen Amazon Web Services -infrastruktuuri paljastaen heikkoudet, jotka Netflix-insinöörit voisivat poistaa rakentamalla parempia automaattisia palautusmekanismeja.

Tarttuva nimi tuli "ajatuksesta vapauttaa villi apina aseella datakeskuksessasi (tai pilvialueella) ampua satunnaisesti tapauksia ja pureskella kaapeleita - samalla kun jatkamme palvelua asiakkaillemme keskeytyksettä", blogiviesti toteaa.

Käytännössä tämä merkitsisi yksinkertaista sovellusta, joka "valitsee ilmentymän satunnaisesti jokaisesta klusterista ja sammuttaa sen jossakin vaiheessa työaikana ilman varoitusta. Se tekisi tämän jokaisena arkipäivänä ”, kuten entiset Netflix-insinöörit Nora Jones ja Casey Rosenthal kertoivat aiheesta kattavassa kirjassaan, Kaaositekniikka, julkaisija O’Reilly Media.

Ajatuksena on, että oppimalla heikoimmat kohdat insinöörit voivat asettaa automaattiset laukaisimet ongelman torjumiseksi, mikä säästää heitä keskellä yötä, jos jokin menee pieleen. Chaos Monkey on sittemmin kehittynyt kokonaisuudeksi kaaosperiaatteita kaaossuunnittelun lipun alla.

Chaos Monkey Netflixissä

Chaos Monkey kasvoi Netflixin suunnittelutyöstä noin vuonna 2010, jolloin Greg Orzellille, joka työskentelee nyt Microsoftin omistamassa GitHubissa, annettiin tehtäväksi rakentaa joustavuus yrityksen uuteen pilvipohjaiseen arkkitehtuuriin.

"Se, miten ajattelen Chaos Monkeyä, ei ole tekniikan merkittävä saavutus", Orzell kertoi. "Sen tuoma arvo on ajattelutavan muutos, joka oli kriittinen tuolloin siirtyessämme DVD-levyjen toimittamisesta suoratoistoon Internetin kautta."

Alkuvuosina Netflix-insinöörit toivat järjestelmiin kaikenlaisia ​​seisokkeja ja ongelmia käyttämällä "Simian Army": ta avoimen lähdekoodin työkaluja, joista jokainen käsitteli tietyntyyppisiä vikoja, alkaen siitä, että Chaos Monkey vei AWS-klustereita.

Alkuperäiseen armeijaan (joka oli nyt enimmäkseen eläkkeellä uusien työkalujen hyväksi) kuului Latency Monkey -tapahtumia, mikä aiheuttaisi keinotekoisia viiveitä RESTful-asiakas-palvelin -viestintäkerrokselle, ja Doctor Monkey, joka ottaisi käyttöön kussakin esiintymässä suoritettavat terveystarkastukset. sekä valvoo muita ulkoisia terveysmerkkejä (esim. suorittimen kuormitusta) epäterveellisten tapausten havaitsemiseksi ja tarvittaessa poistamiseksi käytöstä.

Chaos Kong vei Chaos Monkeyn seuraavalle tasolle simuloimalla seisokkia koko AWS-käyttöalueelle. "On hyvin harvinaista, että AWS-alue ei ole käytettävissä, mutta se tapahtuu", kertoo Netflix-blogiviesti vuodelta 2015.

"Suorittamalla säännöllisiä kokeita, jotka simuloivat alueellista seisokkia, pystyimme tunnistamaan kaikki systeemiset heikkoudet jo varhaisessa vaiheessa ja korjaamaan ne", viesti jatkuu. "Kun US-EAST-1 ei todellakaan ollut käytettävissä, järjestelmämme oli jo tarpeeksi vahva käsittelemään liikenteen vianmääritystä."

Kuten Jones ja Rosenthal kirjassa hahmottelevat, Chaos Kongin päästäminen irti infrastruktuurista oli "valkoisen rysty-suhde" sotahuoneen "kanssa, joka oli koottu tarkkailemaan suoratoistopalvelun kaikkia näkökohtia, ja se kesti tuntikausia."

Kaksi vuotta myöhemmin, heinäkuussa 2017, Netflix esitteli ChAP: n, Chaos Automation Platformin, joka "kysyy käyttöönottoputkea käyttäjän määrittelemälle palvelulle. Sitten se käynnistää kyseisen palvelun kokeilu- ja valvontaklusterit ja reitittää pienen määrän liikennettä kullekin ”, blogiviestissä todetaan.

Kaaoksen suunnitteluperiaatteet

Chaos Monkey -peruskäytännöt ovat nopeasti kehittyneet, ja yhä suuremmat käyttöönottotavat Chaos Kongin kautta ovat olleet myöhemmin muodollisia kaaossuunnitteluksi. Netflix rakensi oman muodollisen kaaossuunnittelutiiminsä vasta vuoteen 2015 mennessä. Tiimiä johti Bruce Wong, nyt Stitch Fixin suunnittelupäällikkö.

Jotkut Chaos Monkey -sovelluksen alkuperäisistä kirjoittajista ovat muodollisesti koonneet kaaostekniikan periaatteet määrittelemällä käytännön seuraavasti: "Järjestelmän kokeilun kurinalaisuus luottamuksen lisäämiseksi järjestelmän kykyyn kestää tuotannon myrskyisät olosuhteet."

Käytännössä tämä tapahtuu nelivaiheisen prosessin muodossa:

  1. Järjestelmän vakaan tilan määritteleminen perustason asettamiseksi normaalille käyttäytymiselle.
  2. Oletetaan, että tämä vakaa tila jatkuu sekä kontrolliryhmässä että kokeellisessa ryhmässä.
  3. Esittele muuttujia, jotka heijastavat todellisia tapahtumia, kuten kaatuvat palvelimet, toimintahäiriöiset kiintolevyt tai katkennut verkkoyhteydet.
  4. Yritä kumota hypoteesi etsimällä eroa kontrolliryhmän ja kokeellisen ryhmän välillä.

Jos vakaa tilaa on vaikea häiritä, sinulla on vankka järjestelmä; jos on heikkoutta, sinulla on jotain korjattavaa.

"Viiden vuoden aikana" The Principles "-julkaisun jälkeen olemme nähneet kaaossuunnittelun kehittyvän vastaamaan uusien teollisuudenalojen uusiin haasteisiin", Jones ja Rosenthal huomauttavat. "Käytännön periaatteet ja perusta kehittyvät varmasti, kun käyttöönotto laajenee ohjelmistoteollisuuden kautta ja uusiin vertikaaleihin."

Kaaosinsuunnittelu Chaos Monkeyn kanssa

Chaos Monkeyn avoimen lähdekoodin version suorittamiseksi järjestelmiesi on täytettävä tietyt GitHubissa esitetyt edellytykset.

Chaos Monkey ei toimi palveluna, joten sinun on määritettävä cron-työ GitHub-sivulla kuvatulla tavalla, joka sitten kutsuu Chaos Monkey kerran viikossa luomaan aikataulun lopetuksista.

Jos haluat käyttää tätä Chaos Monkey -versiota, sinun on käytettävä Netflixin omaa, avoimen lähdekoodin jatkuvaa jakelualustaa, Spinnakeria, joka voi rajoittaa tiettyjen organisaatioiden kykyä omaksua menetelmä. Chaos Monkey vaatii myös MySQL-yhteensopivan tietokannan, version 5.6 tai uudemman.

Palvelun omistajat asettavat Chaos Monkey -määritykset Spinnakerin kautta. Chaos Monkey toimii Spinnakerin kautta saadakseen tietoja palvelujen käyttöönotosta ja lopettaa esiintymät - virtuaalikoneet tai kontit - satunnaisesti valitsemallasi taajuudella ja aikataululla.

Tietysti Chaos Monkey -sovelluksen toteuttaminen on vasta alku vaikealle ja monimutkaiselle tehtävälle ratkaista järjestelmän joustavuuskysymykset. Chaos Monkey vain paljastaa järjestelmän heikkoudet; Sitten on kehittäjien tai järjestelmäsuunnitteluryhmien tehtävä tunnistaa syyt ja löytää ratkaisuja.

"Itse työkalut eivät ole kalliita, mutta investoinnit, jotka sinun on tehtävä reagoidaksemme työkaluihin, ovat", kuten Orzell sanoo. Kaaostekniikkaan sitoutuminen edellyttää myös resurssien siirtämistä uusien ominaisuuksien rakentamisesta joustavuuden parantamiseen. "Jokainen yritys on eri pisteessä kyseisellä taajuudella, ja jokaisen on päätettävä, kuinka paljon soitetaan ylös tai alas tässä tilassa", hän lisää.

Jones ja Rosenthal sanovat, että Netflixin insinöörit "alkuajoina" saivat paljon palautetta erityisesti rahoituslaitoksilta ".

Huolimatta siitä, että panokset olivat korkeammat pankeille, ne kärsivät silti seisokkeista, joten toteuttamalla huolellisesti "ennakoiva strategia, kuten kaaostekniikka riskien ymmärtämiseksi suurten, hallitsemattomien tulosten estämiseksi", monet näistä organisaatioista muuttivat ajattelutapaansa, pääoma Yksi aloitti varhain adoptoija, kuten kirjassa on yksityiskohtaisesti kuvattu.

Kaaoksen suunnitteluresurssit

Jälleen, viimeisin ja lopullinen kirja aiheesta on Kaaositekniikka kirjoittanut ex-Netflix-insinöörit Nora Jones ja Casey Rosenthal, julkaistu huhtikuussa 2020, joka perustuu suurelle osalle näiden kirjoittajien ja muiden tekemää työtä, joka on koottu vuoden 2017 kirjassa Kaaositekniikka. Käytännön yleiskatsaus, katso Russ Miles Kaaositekniikan oppiminen.

Netflix tarjoaa runsaasti resursseja aiheesta GitHub, mukaan lukien opetusohjelma, paljon dokumentaatiota, virhelaskuri, virtakatkustarkistin ja salauksenpurkutyökalut.

Gremlin - kaupallisten työkalujen toimittaja kaaossuunnittelukokeiden suorittamiseen - tarjoaa omat kattavat resurssit, jotka ovat saatavilla ilmaiseksi verkossa ja PDF-muodossa. Yhtiö tukee myös erilaisia ​​yhteisön toimia, kuten Chaos Conf ja Slack-kanava.

O’Reillyllä on myös runsaasti resursseja, mukaan lukien tämä kätevä soittolista kirjoja ja videoita aiheesta.

$config[zx-auto] not found$config[zx-overlay] not found