Seriøs omkring sky? Følg Netflix's føring og gå ind i kaoteknik

Udtrykket 'bygget til at mislykkes' inspirerer ikke tillid, hvilket tyder på et produkt øjeblikke væk fra implodering.

Men virksomheder, der er vært for distribuerede systemer oven på skyinfrastruktur, bør forberede sig på det værre.

Det er argumentet fra onlinevideo-giganten Netflix, der er afhængig af Amazon Web Services til at streame film og tv-shows til mere end 50 millioner hjem over hele verden.

Billede: Neflix

For at hærde sig mod katastrofisk fiasko beskæftiger Netflix sin Simian Army, software, der bevidst forsøger at skabe ødelæggelse på sine systemer. Simian Army angriber Netflix-infrastruktur på mange fronter - Chaos Monkey deaktiverer tilfældigt produktionsforekomster, Latency Monkey fremkalder forsinkelser i klient-serverkommunikation, og den store dreng, Chaos Gorilla, simulerer brud på en hel Amazon-tilgængelighedszone.

Netflix bruger disse virtuelle vandaler til at teste, om dets automatiserede systemer kan håndtere virkelighedsfejl uden at påvirke sine kunder. Virksomheden kan lide det at pirke et hul i dine bildæk en gang om ugen for at se, om du er i stand til at udskifte dem.

Men hvorfor kræver brug af skyinfrastruktur en sådan tilgang? Ifølge Netflix er det manglen på kontrol over den underliggende hardware, manglende evne til at konfigurere den til at prøve at sikre 100 procent oppetid.

Netflix har haft flere muligheder for at se, hvor robust dette forsætlige brud har forladt sine systemer - fra AWS Elastic Load Balancer-udbrud i 2012 til AWS, der for nylig genstarter maskiner, der kører et i 10 EC2-tilfælde.

Denne genstart gav Netflix en chance for at finde ud af, om dens databaser kunne fungere på samme fejltolerante måde som dens andre systemer.

"Databaser har længe været de forkælede og forkælede fyrster i applikationsverdenen, " sagde Netflix ingeniørchef for cloud-databaseteknik Christos Kalantzis og ingeniørchef for kaoteknik Bruce Wong sagde i et blogindlæg.

"De modtog den bedste hardware, rigelige mængder af personlig opmærksomhed, og ingen ville nogensinde drømme om med vilje at slå sig sammen med dem. I en verden af ​​demokratiserede offentlige skyer er dette ikke længere muligt. Knudepunktfejl er ikke bare sandsynlige, de forventes. Dette kræver databaseteknologi, der kan modstå fiasko og fortsætte med at udføre. "

Netflix bruger Apache Cassandra, en open source NoSQL distribueret database. Distribuerede systemer tilbyder en kompromis mellem konsistensen af ​​data, der er indeholdt på hver knude i systemet, tilgængeligheden af ​​systemet og partitionstolerance - et systems evne til at fortsætte med at fungere, efter at en delmængde ikke er tilgængelig.

"Ved at handle væk C (konsistens) har vi taget en bevidst beslutning om at designe vores applikationer med en eventuel konsistens i tankerne, " sagde Kalantzis og Wong.

"Vores forventning er, at Cassandra ville leve op til sin side af købet og give stærk tilgængelighed og partitionstolerance."

Så hvordan klarede Cassandra sig under EC2-genstarten? Ifølge Kalantzis og Wong blev 218 genstartet af mere end 2.700 produktions Cassandra-knudepunkter. Af disse noder var 22 på hardware, der ikke genstarter med succes.

Hvordan Netflix håndterer Cassandra-knudefejl. Billede: Netflix

Netflix 'automatiseringssoftware opdagede de mislykkede noder og erstattede dem, "med minimal menneskelig indgriben". Generelt oplevede Netflix ingen nedetid i løbet af weekenden med genstarterne, sagde de.

At opbygge denne modstandsdygtighed i databaselaget krævede en masse kaotest af systemer af Neflix-ingeniører, ifølge Kalantzis og Wong, hvor firmaet skulle udsætte arbejdet i sine Cassandra-klynger, opbygge pålidelig overvågning for at spore disse arbejde for fejl og konstruere software til automatisk at oprette og oprette erstatningsnoder.

"Gentagne gange og regelmæssigt at udøve fiasko, selv i persistenslaget, skulle være en del af ethvert selskabs elasticitetsplanlægning. Hvis det ikke var for Cassandras deltagelse i Chaos Monkey, ville denne historie have endt meget anderledes."

AWS for nylig anbefalede virksomheder, der bruger dens infrastruktur, tester deres modstandsdygtighed ved at bruge Chaos Monkey til at fremkalde fejl. Her er nogle af Netflixs tip til hvad det kalder kaos engineering.

Opsæt dydige kaoscyklusser

Efter afbrydelse af infrastrukturen har Netflix "skyldløse post-mortems" for at fastslå, hvordan man kan forhindre en gentagelse.

Ved siden af ​​at udvikle modstandsdygtighedslapper og arbejde for at forhindre gentagelse bygger det nye kaosværktøjer til at teste modstandsdygtighed regelmæssigt og systematisk for at opdage regressioner eller nye forhold.

Brug pålidelighedsdesignmønstre

Brug designmønstre, der forbedrer pålideligheden i et distribueret miljø, der er vært for løst-koblede tjenester.

Netflix roser Hystrix som "et fantastisk eksempel på et pålidelighedsdesignmønster, der hjælper med at skabe konsistens i vores mikroservices økosystem".

Forudse usete fejl

Netflix arbejder på at udvikle dyb forståelse af distribuerede systemer og anvende denne forståelse for at foregribe de fejl, den endnu ikke har oplevet.

Dette gør det muligt for "at forudse fejltilstande, bestemme måder at injicere disse forhold på en kontrolleret måde og udvikle vores pålidelighedsdesignmønstre".

© Copyright 2020 | mobilegn.com