Programmering

Hva er Chaos Monkey? Kaos engineering forklart

Chaion Monkey ble banebrytende ut av salene på Netflix under skiftet fra distribusjon av DVD-er til å bygge distribuerte skysystemer for streaming av video, og introduserte et teknikkprinsipp som har blitt omfavnet av programvareutviklingsorganisasjoner i alle former og størrelser: nemlig ved å bevisst bryte systemer kan lære å gjøre dem mer motstandsdyktige.

I følge det opprinnelige Netflix-blogginnlegget om emnet, publisert i juli 2011 av Yury Izrailevsky, daværende direktør for sky- og systeminfrastruktur, og Ariel Tseitlin, direktør for skyløsninger i streaming-selskapet, ble Chaos Monkey designet for å tilfeldig deaktivere produksjonsforekomster på sin Amazon Web Services-infrastruktur, og avslører dermed svakheter som Netflix-ingeniører kan eliminere ved å bygge bedre automatiske gjenopprettingsmekanismer.

Det fengende navnet kom fra "ideen om å slippe løs en villape med et våpen i datasenteret ditt (eller skyområdet) for å tilfeldig skyte ned forekomster og tygge gjennom kabler - hele tiden fortsetter vi å betjene kundene våre uten forstyrrelser," blogginnlegget fastslår.

I praksis vil dette innebære en enkel applikasjon “å velge en tilfeldighet tilfeldig fra hver klynge, og på et tidspunkt i arbeidstiden, slå den av uten advarsel. Det ville gjort dette hver arbeidsdag, "som beskrevet av tidligere Netflix-ingeniører Nora Jones og Casey Rosenthal i sin omfattende bok om emnet, Kaosingeniør, utgitt av O'Reilly Media.

Tanken er at ved å lære hvor de svakeste stedene er, kan ingeniører angi automatiserte utløsere for å bekjempe et problem, og lagre dem en samtale midt på natten hvis noe skulle gå galt. Chaos Monkey har siden utviklet seg til en rekke kaosprinsipper, under banneret av kaosingeniør.

Chaos Monkey på Netflix

Chaos Monkey vokste ut av ingeniørarbeid på Netflix rundt 2010, da Greg Orzell - som nå jobber hos Microsoft-eide GitHub - fikk i oppgave å bygge spenst i selskapets nye skybaserte arkitektur.

"Måten jeg tenker på Chaos Monkey er ikke noe stort ingeniørarbeid," sa Orzell. "Verdien det gir er en tankegangsendring som var kritisk den gangen da vi gikk fra å sende DVDer til streaming via internett."

I de tidlige dagene introduserte Netflix-ingeniører en rekke spenninger og problemer i systemer ved hjelp av en "Simian Army" med åpen kildekodeverktøy, som hver utgjorde visse typer feil, startende med at Chaos Monkey tok ut AWS-klynger.

Den opprinnelige hæren (nå for det meste pensjonert til fordel for nye verktøy) inkluderte slike som Latency Monkey, som ville indusere kunstige forsinkelser i det RESTful klient-serverkommunikasjonslaget, og Doctor Monkey, som ville utnytte helsekontrollene som kjører på hver forekomst. , samt monitorer for andre eksterne tegn på helse (f.eks. CPU-belastning) for å oppdage usunne forekomster og fjerne dem fra tjenesten om nødvendig.

Chaos Kong tok Chaos Monkey til neste nivå ved å simulere et strømbrudd til en hel AWS tilgjengelighetssone. "Det er veldig sjelden at en AWS-region blir utilgjengelig, men det skjer," skisserer et Netflix-blogginnlegg fra 2015.

"Ved å kjøre eksperimenter på en jevnlig basis som simulerer et regionalt strømbrudd, var vi i stand til å identifisere eventuelle systemiske svakheter tidlig og fikse dem," fortsetter innlegget. "Da US-EAST-1 faktisk ble utilgjengelig, var systemet vårt allerede sterkt nok til å håndtere en trafikkfeil."

Som Jones og Rosenthal skisserte i sin bok, var det å slippe Chaos Kong løs på infrastrukturen "en hvit knoke-affære med et" krigsrom "samlet for å overvåke alle aspekter av streamingtjenesten, og det varte i flere timer."

To år senere, i juli 2017, introduserte Netflix ChAP, Chaos Automation Platform, som “forhører distribusjonsrørledningen for en brukerdefinert tjeneste. Deretter lanseres eksperiment- og kontrollklynger av den tjenesten, og ruter en liten mengde trafikk til hver, ”heter det i blogginnlegget.

Kaostekniske prinsipper

Grunnleggende Chaos Monkey-praksis har raskt utviklet seg, med større og større distribusjoner gjennom Chaos Kong, til det som senere ble formalisert som kaosingeniør. Netflix bygde ikke opp sitt eget formelle kaotekniske team før 2015. Teamet ble ledet av Bruce Wong, nå direktør for ingeniør hos Stitch Fix.

Prinsippene for kaosingeniør er formelt samlet av noen av de opprinnelige forfatterne av Chaos Monkey, og definerte praksisen som: "Disiplinen med å eksperimentere på et system for å bygge tillit til systemets evne til å motstå turbulente produksjonsforhold."

I praksis tar dette form av en firetrinnsprosess:

  1. Definere "steady state" for et system for å sette en grunnlinje for normal oppførsel.
  2. Hypoteser at denne jevne tilstanden vil fortsette i både kontrollgruppen og eksperimentgruppen.
  3. Introdusere variabler som gjenspeiler virkelige hendelser som servere som krasjer, harddisker som ikke fungerer, eller nettverkstilkoblinger som er brutt.
  4. Prøv å motbevise hypotesen ved å se etter en forskjell mellom kontrollgruppen og eksperimentgruppen.

Hvis stabil tilstand er vanskelig å forstyrre, har du et robust system; Hvis det er en svakhet, har du noe å gå og fikse.

"I løpet av de fem årene siden 'The Principles' ble publisert, har vi sett kaosingeniør utvikle seg for å møte nye utfordringer i nye bransjer," observerer Jones og Rosenthal. "Prinsippene og grunnlaget for praksis vil sikkert fortsette å utvikle seg når adopsjon utvides gjennom programvareindustrien og til nye vertikaler."

Kaoteknikk med Chaos Monkey

For å kjøre åpen kildekodeversjon av Chaos Monkey må systemene dine oppfylle et bestemt sett med forutsetninger, som beskrevet på GitHub.

Chaos Monkey kjører ikke som en tjeneste, så du må sette opp en cron-jobb som beskrevet på GitHub-siden, som deretter ringer Chaos Monkey en gang i hverdagen for å lage en tidsplan for avslutninger.

For å bruke denne versjonen av Chaos Monkey, må du bruke Netflix egen, åpen kildekode, kontinuerlig leveringsplattform, Spinnaker, som kan begrense visse organisasjoners mulighet til å ta i bruk metoden. Chaos Monkey krever også en MySQL-kompatibel database, versjon 5.6 eller nyere.

Tjenesteiere setter sine Chaos Monkey-konfigurasjoner gjennom Spinnaker. Chaos Monkey jobber gjennom Spinnaker for å få informasjon om hvordan tjenester distribueres og avslutter tilfeller - virtuelle maskiner eller containere - tilfeldig på en frekvens og tidsplan du angir.

Å implementere Chaos Monkey er selvfølgelig bare begynnelsen på den vanskelige og komplekse oppgaven med å løse problemer med systemets elastisitet. Chaos Monkey bare avdekker svakhetene i systemet; Det er da opp til devops eller systemteknikkteam å identifisere årsakene og komme på løsninger.

"Selve verktøyet er ikke dyrt, men investeringen du må gjøre for å reagere på verktøyet er," som Orzell uttrykker det. Å forplikte seg til kaoteknikk krever også å skifte ressurser fra å bygge nye funksjoner til å styrke motstandsdyktigheten. "Hver bedrift er på et annet punkt i det spekteret, og de må hver bestemme hvor mye de skal ringe opp eller ned i det området," legger han til.

Jones og Rosenthal sier at Netflix-ingeniørene i de tidlige dager "mottok mye tilbakeslag fra spesielt finansinstitusjoner."

Til tross for at innsatsen var høyere for bankene, led de fremdeles avbrudd, så ved å nøye implementere en "proaktiv strategi som kaosteknikk for å forstå risikoer for å forhindre store, ukontrollerte resultater", endret mange av disse organisasjonene tankegangen, med Capital One tidlig adopter, som beskrevet i boka.

Kaostekniske ressurser

Igjen er den siste og definitive boka om emnet Kaosingeniør av eks-Netflix-ingeniører Nora Jones og Casey Rosenthal, publisert i april 2020, som bygger på mye av arbeidet de forfatterne og andre, samlet i 2017-boka Kaosingeniør. For en mer praktisk oversikt, se Russ Miles’s Lære kaosingeniør.

Netflix gir et vell av ressurser om emnet på GitHub, inkludert en veiledning, mye dokumentasjon, en feilteller, avbruddskontroll og dekrypteringsverktøy.

Gremlin - en leverandør av kommersielle verktøy for å kjøre kaostekniske eksperimenter - tilbyr sitt eget omfattende sett med ressurser, som er tilgjengelig gratis online og i PDF-format. Selskapet støtter også ulike samfunnsinnsatser, inkludert Chaos Conf og en Slack-kanal.

O'Reilly har også et vell av ressurser, inkludert denne praktiske spillelisten med bøker og videoer om emnet.

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