Teknologi er overalt. Afhængigt af hvor høj indsats din branche er, kan svigt i et teknisk produkt eller system falde et sted mellem helt ubetydelig til slutningen af livet, som du kender det.
Hospitalets mainframes? Slags vigtigt. Candy Crush-appens fleksibilitet på din mobiltelefon? Sandsynligvis lidt lavere på den samlede prioritetsliste.
I et distribueret netværkssystem er fiasko uundgåelig. Forebyggelse af katastrofe begynder med et solidt, vandtæt sikkerhedsdesign. Men ud over det, hvad kan der ellers gøres?
Hvad er Netflix Chaos Engineering?
20. september 2015.
Alt stille på vestfronten, når flere vigtige virksomheds Amazon Web Services-servere pludselig går ned uden et ord.
Mange store virksomheder kunne ikke forsørge deres kunder i flere timer. Netflix var dog tilbage på benene i løbet af få minutter. Hvordan? Netflix's interne virksomhedskultur havde udviklet sig til at omfatte mange "fiasko-inducerende" praksis implementeret i realtid for at forberede både systemer og ingeniører til, når katastrofen rammer.
Virksomhedens ledelse gennemførte målrettet simulerede serverafbrydelser i indeholdte dele af systemet for at studere og forberede sig på begivenheder som disse. Dette hjalp dem med at identificere huller i systemet og opbygge afskedigelser, der gjorde det muligt for tjenesten at fortsætte uafbrudt, selv i tilfælde af en større funktionsfejl som den tidligere nævnte.
Disse bevidste "kaotekniske" øvelser gav deres ingeniører nok konkurrencemæssige fordele til at se sig selv gennem fiaskoen, delvis takket være den forebyggende infrastruktur, som de havde bygget med denne slags dommedagsbegivenhed i tankerne.
Ingen andre var klar, da den store bølge ramte. Netflix-systemet var stærkt nok til at klare sig selv. Konklusion? Disse kaotiske hjerner kan være på noget her.
Bevidst tilintetgørelse af dem, der elsker dig
"Chaos Engineering er disciplinen med at eksperimentere med et system for at opbygge tillid til systemets evne til at modstå turbulente produktionsforhold."
Principper for kaosmanifest
Dette er hjertet i kaoteknik - i det væsentlige en "brandøvelse", der pålægges systemet i arbejdstiden, når der er øjne og hænder til rådighed til at tackle den udfordring, der præsenteres. Et givet systems evne til at tolerere fiasko sættes på prøve, da eventuelle sårbarheder udsættes for.
I sin oprindelige 2011-sammenhæng vedrørte kaoteknik Netflix's IT-afdeling. Deres ledelse ønskede at teste, hvor modstandsdygtigt holdets indsats var, da en eller flere af deres computere med vilje blev deaktiveret. Disse tilbageslag tillod it-teamet at identificere vigtige svagheder, inden de blev systemomfattende problemer og kunne udnyttes udefra.
Virkelig fiasko? Det kan være dyrt som helvede, og det går ud over de monetære implikationer. Selv perioder med nedetid uden reelt bortfald af sikkerhed vil sandsynligvis resultere i masser af ubesvarede muligheder for at tjene penge. Hvorfor vente på en nødsituation for at blinde dig?
Aberne bag galskaben
Nogle virksomheder vil vedtage et "rødt team" -model, der sætter hold af udviklere mod deres brødre på tværs af afdelinger. Det klassiske eksempel, som Netflix indførte, bruger dog en "Simian Army". Disse bots gør det beskidte arbejde for dem retfærdigt og totalt tilfældigt.
Sindssyg? Til lægmanden måske. Med ordene fra "Chaos Monkeys" forfatter Antonio Garcia Martinez:
"Forestil dig, at en abe kommer ind i et 'datacenter', disse 'gårde' af servere, der er vært for alle de kritiske funktioner i vores online-aktiviteter. Apen revner tilfældigt kabler og ødelægger enheder. Udfordringen er at designe det informationssystem, de er ansvarlige for, så det kan fungere på trods af disse aber, som ingen nogensinde ved, hvornår de ankommer, og hvad de vil ødelægge. "
En farverig analogi. Ikke alle simianere er dog grusomme: Doctor Monkey overvåger f.eks. Systemets ydeevne. Når Chaos Kong stopper ved et besøg, er alle væddemål dog slået fra; denne karakter vil fjerne en hel AWS tilgængelighedszone.
Relaterede: Hvordan vurderes sikkerhedssårbarheder?
Chaos Engineering og den videnskabelige metode
Kaoteknologi fungerer som en værdifuld kilde til systemisk indsigt for dem, der gennemfører eksperimenterne. Det er ikke kun udviklerne, der sættes på prøve her; det er også systemet, som det eksisterer autonomt.
Inden dumpen af aberløbet ud på bordet kræver kaoteknik, at der lægges lidt grundarbejde.
- Du skal først identificere, hvad du anser for at være en "stabil", sund og funktionel tilstand for dit system. Dette vil være den "kontrol", som du måler eventuelle konkrete resultater mod.
- Begynd at tænke på, hvordan denne tilstand vil blive sat ud af balance ved indtrængen af orkestreret fiasko. Planlæg din sonderende malware, så den kun påvirker et indeholdt, kontrollerbart område af dit system.
- Indfør "ubuden gæst" og lad systemet reagere.
- Observer og fortolk eventuelle forskelle mellem systemet, som det eksisterer nu, og hvordan det opførte sig før, mens det var i homeostase. Forøg din "eksplosionsradius" af stød, indtil du enten opdager en sårbarhed eller når fuld skala, alt efter hvad der kommer først.
Ideen er, at jo sværere det er at forstyrre et funktionelt system, jo mere tillid kan du have til dets modstandsdygtighed over for ændringer og bombardementer. Denne tilgang viser, hvordan forskellige aspekter af systemet vil kompensere for hinandens fejl i tilfælde af afbrydelse.
"Da ingen enkelt komponent kan garantere 100% oppetid (og selv den dyreste hardware til sidst fejler), er vi nødt til at gøre det designe en skyarkitektur, hvor individuelle komponenter kan mislykkes uden at påvirke tilgængeligheden af hele system."
Det Netflix Blog
Nogle gange kommer legetøj med systemet på denne måde ikke engang tæt på at påvirke kundeoplevelsen. Andre gange vil alvorlige sikkerhedsfejl blive bragt i lyset. Nu, især på Netflix, er beredskab beregnet til at maskere systemfejl på brugerniveau indbygget i systemet.
Relaterede: Hvad er en nul-dagsudnyttelse?
Er Chaos Engineering det værd?
Hvis du vil forstå et komplekst system - forstyrr det
- Farhan Thawar (@fnthawar) 26. maj 2021
Kritikere vil sige, at intet back-end-spil er værd at påvirke en kundes oplevelse, selvom det kun er kort og tilfældigt. De, der går ind for kaoteknik, vil imidlertid afvise det faktum, at disse "planlagte afbrydelser" skal være meget mindre end hvad AWS oplevede i 2015. Hvis et lille, planlagt problem sætter dig i stand til at forhindre, at et meget større problem nogensinde præsenterer sig, kan planlægning af den indledende hændelse være den bedste måde at forberede sig på. Færre brugere vil blive påvirket i alt. Matematikken ordner sig.
Fra den menneskelige ende af sagen er mentaliteten, at disse ingeniører, der har haft en server, går ned foran dem og håndteret det kompetent vil være både mere opmærksomt i fremtiden og også mere intellektuelt udstyret til at håndtere det, der kommer deres vej. Det stærkere system, der resulterer, taler i mange tilfælde for sig selv.
Silicon Valley: Where Dreams Go to Die
De siger, at hvis du vil gøre det stort, skal du være villig til at dræbe dine elskede, eller i dette tilfælde være villig til at lade andre dræbe dem for dig. Når sikkerhed er i spidsen lige fra begyndelsen af udviklingen, er dit team meget mere tilbøjeligt til at ende med noget uigennemtrængeligt og sikkert for kunder at bruge frit.
Spil-ifying arbejdspladserfaring gør udsigten til succes inden for dette domæne spændende; når slutresultatet er af kvalitet, kommer alle op på niveau. Min Netflix kører fint, og vi har kun de galne bag kaoset, der skal takkes for det.
Nu hvor du har et fast greb om kaoteknik, hvorfor ikke udvide din viden med en anden softwareudviklingsmetode? Agile er et fremragende system, du kan indarbejde for at forene en arbejdsstyrke og producere ren, effektiv kode.
Uanset om du ansøger om programmeringsjob eller ønsker en mere effektiv måde at arbejde på, skal du vide om Agile.
Læs Næste
- Programmering
- Programmering
Emma Garofalo er en forfatter i øjeblikket baseret i Pittsburgh, Pennsylvania. Når hun ikke slider sig væk ved sit skrivebord i mangel af en bedre morgen, kan hun normalt findes bag kameraet eller i køkkenet.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft venligst din e-mail-adresse i den e-mail, vi lige har sendt dig.