Teknik finns överallt. Beroende på hur höga insatser din bransch är kan misslyckande med en teknisk produkt eller ett system falla någonstans mellan helt försumbar till slutet av livet som du känner till det.

Sjukhusstorlekar? Typ av viktigt. Flexibiliteten i Candy Crush-appen på din mobiltelefon? Förmodligen lite lägre på den övergripande prioriteringslistan.

I ett distribuerat system av nätverk är fel oundvikligt. Att förhindra katastrof börjar med en gedigen, vattentät säkerhetsdesign. Utöver det, dock, vad mer kan göras?

Vad är Netflix Chaos Engineering?

20 september 2015.

Allt tyst på västfronten när flera viktiga företagsservrar från Amazon Web Services plötsligt går ner utan ord.

Många stora företag kunde inte försörja sina kunder på flera timmar. Netflix var dock tillbaka på några minuter. Hur? Netflix: s interna företagskultur har utvecklats till att inkludera många "felframkallande" metoder implementerade i realtid för att förbereda både system och ingenjörer för när katastrof inträffar.

instagram viewer

Företagets ledarskap genomförde målmedvetet simulerade serveravbrott i delar av systemet för att studera och förbereda sig för händelser som dessa. Detta hjälpte dem att identifiera hål i systemet och bygga uppsägningar som gjorde det möjligt för tjänsten att fortsätta utan avbrott, även i händelse av en större funktionsfel som den som nämnts tidigare.

Dessa avsiktliga "kaostekniska" övningar gav sina ingenjörer tillräckligt med konkurrensfördelar för att se sig själva genom fiaskot, delvis tack vare den förebyggande infrastrukturen som de hade byggt med den här typen av dommedagshändelse i åtanke.

Ingen annan var redo när den stora vågen slog till. Netflix-systemet var tillräckligt starkt för att klara sig själv. Slutsats? Dessa kaotiska hjärnor kan vara på något här.

Medvetet förintar de som älskar dig

"Chaos Engineering är disciplinen att experimentera på ett system för att bygga förtroende för systemets förmåga att motstå turbulenta förhållanden i produktionen."

Principer för kaosmanifestet

Detta är hjärtat av kaoteknik - i huvudsak en "brandövning" som systemet införs under arbetstid när det finns ögon och händer tillgängliga för att möta utmaningen. Ett visst systems förmåga att tolerera fel testas eftersom alla sårbarheter exponeras.

I sitt ursprungliga 2011-sammanhang berörde kaotekniken Netflix IT-avdelning. Deras ledarskap ville testa hur motståndskraftigt teamets ansträngningar var när en eller flera av deras datorer avsiktligt inaktiverades. Dessa bakslag gjorde det möjligt för IT-teamet att identifiera viktiga svagheter innan de blev systemomfattande problem och kunde utnyttjas från utsidan.

Verkligt misslyckande? Det kan vara dyrt som fan, och det går utöver de monetära konsekvenserna. Även perioder med stillestånd, utan att säkerheten förfaller, kommer sannolikt att resultera i många missade möjligheter att tjäna pengar. Varför vänta på en nödsituation för att göra dig blind?

Aporna bakom galenskapen

Vissa företag kommer att anta en "röd team" -modell som ställer utvecklarlag mot sina bröder över avdelningar. Det klassiska exemplet som Netflix inställde använder dock en "Simian Army". Dessa bots gör det smutsiga arbetet för dem rättvist och helt slumpmässigt.

Sinnessjuk? Till lekmannen, kanske. Med orden "Chaos Monkeys" författaren Antonio Garcia Martinez:

"Tänk dig att en apa kommer in i ett" datacenter ", dessa" gårdar "av servrar som är värd för alla de kritiska funktionerna i våra onlineaktiviteter. Apan sliter slumpmässigt kablar och förstör enheter. Utmaningen är att utforma det informationssystem som de ansvarar för så att det kan fungera trots dessa apor, som ingen någonsin vet när de kommer och vad de kommer att förstöra. "

En färgstark analogi. Inte alla Simians är dock grymma: Doctor Monkey övervakar till exempel systemets prestanda. När Chaos Kong stannar för ett besök är dock alla spel avstängda; denna karaktär tar ner en hel AWS tillgänglighetszon.

Relaterad: Hur bedöms säkerhetsproblem?

Chaos Engineering och den vetenskapliga metoden

Kaoteknik fungerar som en värdefull källa till systemisk insikt för dem som utför experimenten. Det är inte bara utvecklarna som testas här; det är också systemet som det existerar autonomt.

Innan du tappar aporna ut på bordet kräver kaoteknik lite grundarbete.

  1. Du måste först identifiera vad du anser vara ett "stabilt", hälsosamt, funktionellt tillstånd för ditt system. Detta kommer att vara den "kontroll" som du mäter eventuella konkreta resultat mot.
  2. Börja tänka på hur detta tillstånd kommer att balanseras av intrånget av orkestrerat misslyckande. Planera din probande skadliga program så att den bara påverkar ett inneslutet, kontrollerbart område av ditt system.
  3. Presentera "inkräktaren" och låt systemet svara.
  4. Observera och tolka eventuella skillnader mellan systemet så som det existerar nu och hur det fungerade tidigare, medan det var i homeostas. Öka din "sprängradie" av stötar tills du antingen upptäcker en sårbarhet eller når full skala, beroende på vilket som kommer först.

Tanken är att ju svårare det är att störa ett funktionellt system, desto mer självförtroende kan du ha i dess motståndskraft mot förändring och bombardemang. Detta tillvägagångssätt visar hur olika aspekter av systemet kommer att kompensera för varandras fel vid avbrott.

"Eftersom ingen enskild komponent kan garantera 100% driftstid (och till och med den dyraste hårdvaran slutligen misslyckas) måste vi utforma en molnarkitektur där enskilda komponenter kan misslyckas utan att det påverkar tillgängligheten för hela systemet."

De Netflix Blogg

Ibland kommer leksaker med systemet på detta sätt inte ens att påverka kundupplevelsen. Andra gånger kommer allvarliga säkerhetsbrister att framgå. Nu, speciellt på Netflix, är beredskap avsedd att dölja systemfel på användarnivå inbyggd i systemets grund.

Relaterad: Vad är en Zero-Day Exploit?

Är Chaos Engineering värt det?

Om du vill förstå ett komplext system - stör det

- Farhan Thawar (@fnthawar) 26 maj 2021

Kritiker kommer att säga att inget back-end-spel är värt att påverka en kunds upplevelse, även om det bara är kort och per händelse. De som stöder kaoteknik kommer emellertid att motbevisa det faktum att dessa "planerade avbrott" är avsedda att vara mycket mindre än vad AWS upplevde 2015. Om ett litet, planerat problem ger dig möjlighet att förhindra att ett mycket större problem någonsin presenterar sig, kan planering av den första incidenten vara det bästa sättet att förbereda. Färre användare påverkas totalt. Matematiken fungerar.

Från den mänskliga änden av saken är mentaliteten att nu dessa ingenjörer som har haft en server kraschar framför dem och hanteras med det kompetent kommer att vara mer vaken i framtiden och också mer intellektuellt utrustad för att hantera vad som helst som kommer deras sätt. Det starkare systemet som resulterar i många fall talar för sig själv.

Silicon Valley: Where Dreams Go to Die

De säger att om du vill göra det stort måste du vara villig att döda dina älsklingar, eller i det här fallet vara villig att låta andra döda dem åt dig. När säkerheten ligger i framkant redan från början av utvecklingen är det mycket mer troligt att ditt team kommer att få något ogenomträngligt och säkert för kunderna att använda fritt.

Spelet om arbetsplatserfarenheten gör utsikterna till framgång inom denna domän spännande; när slutresultatet är av kvalitet får alla en nivå upp. Min Netflix går bra, och vi har bara galna bakom kaoset att tacka för det.

Nu när du har ett ordentligt grepp om kaoteknik, varför inte utöka din kunskap med en annan programvaruutvecklingsmetod? Agile är ett utmärkt system som du kan använda för att förena en arbetskraft och producera ren, effektiv kod.

E-post
Vad är den agila programmeringsmetoden?

Oavsett om du ansöker om programmeringsjobb eller vill ha ett effektivare sätt att arbeta, måste du veta om Agile.

Läs Nästa

Relaterade ämnen
  • Programmering
  • Programmering
Om författaren
Emma Garofalo (25 artiklar publicerade)

Emma Garofalo är författare som för närvarande är baserad i Pittsburgh, Pennsylvania. När hon inte sliter sig vid skrivbordet för att få en bättre morgondag kan hon vanligtvis hittas bakom kameran eller i köket.

Mer från Emma Garofalo

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.