Teknologi er overalt. Avhengig av hvor høy innsats din bransje er, kan feil på et teknisk produkt eller system falle hvor som helst mellom helt ubetydelig til slutten av livet slik du kjenner det.

Sykehusstordvinduer? Litt viktig. Spenstigheten til Candy Crush-appen på mobiltelefonen din? Sannsynligvis litt lavere på den overordnede prioriteringslisten.

I et distribuert system av nettverk er feil uunngåelig. Å forhindre katastrofe begynner med en solid, vanntett sikkerhetsdesign. Utover det, skjønt, hva mer kan gjøres?

Hva er Netflix Chaos Engineering?

20. september 2015.

Alt stille på vestfronten, da flere viktige bedriftens Amazon Web Services-servere plutselig går ned uten et ord.

Mange store selskaper klarte ikke å sørge for sine kunder i flere timer. Netflix var imidlertid tilbake på beina i løpet av få minutter. Hvordan? Den interne firmakulturen til Netflix hadde utviklet seg til å omfatte mange "sviktfremkallende" praksis implementert i sanntid for å forberede både systemer og ingeniører på når katastrofen rammer.

instagram viewer

Selskapets ledelse gjennomførte målrettet simulerte serverbrudd i inneholdte deler av systemet for å studere og forberede seg på hendelser som disse. Dette hjalp dem med å identifisere hull i systemet og bygge opp permitteringer som gjorde at tjenesten kunne fortsette uavbrutt, selv i tilfelle en større funksjonsfeil som den som er nevnt tidligere.

Disse bevisste "kaostekniske" øvelsene ga ingeniørene sine nok konkurransefortrinn til å se seg selv gjennom fiaskoen, delvis takket være den forebyggende infrastrukturen de hadde bygget med denne typen dommedagshendelse i tankene.

Ingen andre var klare da den store bølgen traff. Netflix-systemet var sterkt nok til å klare seg selv. Konklusjon? Disse kaotiske hjerner kan være på noe her.

Utslettende de som elsker deg med vilje

"Chaos Engineering er disiplinen med å eksperimentere på et system for å bygge tillit til systemets evne til å tåle turbulente forhold i produksjonen."

Prinsipper for kaosmanifest

Dette er hjertet i kaosteknikk - i hovedsak en "brannøvelse" som pålegges systemet i arbeidstiden når det er øyne og hender tilgjengelig for å takle utfordringen. Et gitt systems evne til å tolerere svikt blir satt på prøve når eventuelle sårbarheter blir utsatt.

I sin opprinnelige 2011-kontekst gjaldt kaosingeniør Netflix-avdelingen. Ledelsen deres ønsket å teste hvor motstandsdyktig lagets innsats var da en eller flere av datamaskinene deres ble deaktivert med vilje. Disse tilbakeslagene gjorde at IT-teamet kunne identifisere viktige svakheter før de ble systemomfattende problemer og kunne utnyttes utenfra.

Virkelig fiasko? Det kan være kostbart som helvete, og det går utover de økonomiske implikasjonene. Selv perioder med nedetid, uten virkelig bortfall av sikkerhet, vil sannsynligvis resultere i mange tapte muligheter til å tjene inntekter. Hvorfor vente på en nødsituasjon for å gjøre deg blind?

Apene bak galskapen

Noen selskaper vil vedta en "rød team" -modell som stiller team av utviklere mot sine brødre på tvers av avdelingslinjer. Det klassiske eksemplet som Netflix innførte, bruker imidlertid en "Simian Army". Disse robotene gjør det skitne arbeidet for dem ganske og helt tilfeldig.

Sinnsyk? Til lekmann, kanskje. Med ordene til "Chaos Monkeys" forfatter Antonio Garcia Martinez:

"Tenk deg at en ape kommer inn i et" datasenter ", disse" gårdene "med servere som er vert for alle de kritiske funksjonene til våre online aktiviteter. Apen river tilfeldig kabler og ødelegger enheter. Utfordringen er å utforme informasjonssystemet de er ansvarlige for slik at det kan fungere til tross for disse apene, som ingen noen gang vet når de kommer og hva de vil ødelegge. "

En fargerik analogi. Ikke alle simianerne er grusomme, men: Doctor Monkey overvåker for eksempel ytelsen til systemet. Når Chaos Kong er innom for et besøk, er imidlertid alle spill av; denne karakteren vil ta ned en hel AWS tilgjengelighetssone.

I slekt: Hvordan vurderes sikkerhetsproblemer?

Kaosteknikk og den vitenskapelige metoden

Kaosteknikk fungerer som en verdifull kilde til systemisk innsikt for de som gjennomfører eksperimentene. Det er ikke bare utviklerne som blir satt på prøve her; det er også systemet slik det eksisterer autonomt.

Før du tømmer apekatten ut på bordet, krever kaoteknikk litt grunnarbeid.

  1. Du må først identifisere hva du anser for å være en "stabil", sunn, funksjonell tilstand for systemet ditt. Dette vil være "kontrollen" som du måler eventuelle konkrete resultater mot.
  2. Begynn å tenke på hvordan denne tilstanden vil bli satt ut av balanse ved inntrenging av orkestrert fiasko. Planlegg probing malware slik at det bare påvirker et innesluttet, kontrollerbart område av systemet ditt.
  3. Innfør "inntrengeren" og la systemet svare.
  4. Observer og tolk eventuelle forskjeller mellom systemet slik det eksisterer nå og hvordan det oppførte seg før, mens det var i homeostase. Øk din "eksplosjonsradius" av støt til du enten oppdager et sårbarhet eller når full skala, avhengig av hva som kommer først.

Tanken er at jo vanskeligere det er å forstyrre et funksjonelt system, jo ​​mer selvtillit kan du ha i dets motstandskraft mot endring og bombardement. Denne tilnærmingen viser hvordan forskjellige aspekter av systemet vil kompensere for hverandres feil i tilfelle avbrudd.

"Siden ingen enkeltkomponenter kan garantere 100% oppetid (og til og med den dyreste maskinvaren til slutt mislykkes), må vi designe en skyarkitektur der individuelle komponenter kan mislykkes uten å påvirke tilgjengeligheten av hele system."

De Netflix Blogg

Noen ganger kommer leker med systemet på denne måten ikke engang i nærheten av å påvirke kundeopplevelsen. Andre ganger vil alvorlige sikkerhetsfeil bli brakt frem. Nå, spesielt på Netflix, er beredskap ment å maskere systemfeil på brukernivå innebygd i systemet.

I slekt: Hva er en null-dagers utnyttelse?

Er Chaos Engineering verdt det?

Hvis du vil forstå et komplekst system - forstyrr det

- Farhan Thawar (@fnthawar) 26. mai 2021

Kritikere vil si at ingen back-end-spill er verdt å påvirke kundens opplevelse, selv om det bare er kort og tilfeldig. De som går inn for kaoteknikk, vil imidlertid motbevise det faktum at disse "planlagte avbruddene" er ment å være mye mindre enn hva AWS opplevde i 2015. Hvis et lite, planlagt problem setter deg i stand til å forhindre at et mye større problem noen gang presenterer seg, kan det være den beste måten å forberede deg på å planlegge den første hendelsen. Totalt sett vil færre brukere bli berørt. Matematikken ordner seg.

Fra den menneskelige enden av saken er mentaliteten at disse ingeniørene som har hatt en server, krasjer foran dem og håndtert det kompetent vil være både mer våken i fremtiden og også mer intellektuelt rustet til å håndtere det som kommer deres vei. Det sterkere systemet som resulterer, taler i mange tilfeller for seg selv.

Silicon Valley: Where Dreams Go to Die

De sier at hvis du vil gjøre det stort, må du være villig til å drepe dine kjære, eller i dette tilfellet å være villig til å la andre drepe dem for deg. Når sikkerhet er i forkant helt fra begynnelsen av utviklingen, er det mye mer sannsynlig at teamet ditt vil ende opp med noe ugjennomtrengelig og trygt for kundene å bruke fritt.

Spill-ifying arbeidsplassen erfaring gjør utsiktene til suksess i dette domenet spennende; når sluttresultatet er av kvalitet, får alle nivået opp. Netflix går helt fint, og vi har bare galskapene bak kaoset å takke for det.

Nå som du har et godt grep om kaosingeniør, hvorfor ikke utvide din kunnskap med en annen programvareutviklingsmetode? Agile er et utmerket system du kan innlemme for å forene en arbeidsstyrke og produsere ren, effektiv kode.

E-post
Hva er den smidige programmeringsmetoden?

Enten du søker programmeringsjobber eller ønsker en mer effektiv måte å jobbe på, må du vite om Agile.

Les Neste

Relaterte temaer
  • Programmering
  • Programmering
Om forfatteren
Emma Garofalo (25 artikler publisert)

Emma Garofalo er en forfatter for tiden basert i Pittsburgh, Pennsylvania. Når hun ikke sliter seg ved skrivebordet sitt i lyst på en bedre morgendag, kan hun vanligvis bli funnet bak kameraet eller på kjøkkenet.

Mer fra Emma Garofalo

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.