Techniek is overal. Afhankelijk van hoe hoog de inzet in uw branche is, kan het falen van een technisch product of systeem ergens tussen volledig verwaarloosbaar vallen tot het einde van de levensduur zoals u die kent.

Ziekenhuis mainframes? Soort belangrijk. De veerkracht van de Candy Crush-app op je mobiele telefoon? Waarschijnlijk een beetje lager op de algemene lijst van prioriteiten.

In een gedistribueerd systeem van netwerken is falen onvermijdelijk. Het voorkomen van rampen begint met een solide, waterdicht beveiligingsontwerp. Maar wat kan er verder nog worden gedaan?

Wat is Netflix Chaos Engineering?

20 september 2015.

Het is allemaal stil aan het westelijke front, wanneer plotseling verschillende belangrijke zakelijke Amazon Web Services-servers zonder een woord uitvallen.

Veel grote bedrijven waren enkele uren niet in staat om voor hun klanten te zorgen. Netflix was echter binnen enkele minuten weer op de been. Hoe? De interne bedrijfscultuur van Netflix was geëvolueerd en omvatte veel "mislukkingsinducerende" praktijken die in realtime werden geïmplementeerd om zowel systemen als technici voor te bereiden op wanneer zich een ramp voordoet.

instagram viewer

De leiding van het bedrijf voerde doelbewust gesimuleerde serverstoringen uit in afgesloten delen van het systeem om dergelijke gebeurtenissen te bestuderen en voor te bereiden. Dit hielp hen gaten in het systeem te identificeren en redundanties te bouwen waardoor de service ononderbroken kon doorgaan, zelfs in het geval van een grote storing zoals de eerder genoemde.

Deze opzettelijke 'chaos-engineering'-oefeningen gaven hun ingenieurs genoeg concurrentievoordeel om zichzelf te zien door het fiasco, mede dankzij de preventieve infrastructuur die ze hadden gebouwd met dit soort doemscenario's in gedachten.

Niemand anders was klaar toen de grote golf toesloeg. Het Netflix-systeem was sterk genoeg om voor zichzelf te zorgen. Conclusie? Deze chaotische meesterbreinen kunnen hier iets op het spoor zijn.

Opzettelijk degenen die van je houden vernietigen

"Chaos Engineering is de discipline van het experimenteren met een systeem om vertrouwen op te bouwen in het vermogen van het systeem om turbulente productieomstandigheden te weerstaan."

Principes van Chaos Manifest

Dit is het hart van chaos-engineering - in wezen een "brandoefening" die tijdens werkuren aan het systeem wordt opgelegd wanneer er ogen en handen beschikbaar zijn om de gepresenteerde uitdaging aan te gaan. Het vermogen van een bepaald systeem om storingen te tolereren wordt op de proef gesteld wanneer eventuele kwetsbaarheden worden blootgelegd.

In de oorspronkelijke context van 2011 betrof chaos-engineering de IT-afdeling van Netflix. Hun leiderschap wilde testen hoe veerkrachtig de inspanningen van het team waren toen een of meer van hun computers opzettelijk werden uitgeschakeld. Door deze tegenslagen kon het IT-team de belangrijkste zwakke punten identificeren voordat ze systeembrede problemen werden en van buitenaf konden worden uitgebuit.

Echte mislukking? Het kan duur zijn als de hel, en dat gaat verder dan de monetaire implicaties. Zelfs perioden van downtime, zonder echt verval in beveiliging, zullen waarschijnlijk resulteren in tal van gemiste kansen om inkomsten te genereren. Waarom wachten tot een noodgeval u verblindt?

De apen achter de waanzin

Sommige bedrijven zullen een "rood team" -model hanteren dat teams van ontwikkelaars tegenover hun broeders plaatst over afdelingsgrenzen heen. Het klassieke voorbeeld dat Netflix aanhaalde, maakt echter gebruik van een "Simian Army". Deze bots doen het vuile werk voor hen eerlijk en volledig willekeurig.

Krankzinnig? Voor de leek misschien. In de woorden van "Chaos Monkeys" auteur Antonio Garcia Martinez:

"Stel je een aap voor die een 'datacenter' binnengaat, deze 'boerderijen' van servers die alle kritieke functies van onze online activiteiten hosten. De aap scheurt willekeurig kabels en vernietigt apparaten. De uitdaging is om het informatiesysteem waarvoor ze verantwoordelijk zijn zo te ontwerpen dat het kan werken ondanks deze apen, waarvan niemand weet wanneer ze aankomen en wat ze zullen vernietigen."

Een kleurrijke analogie. Niet alle Simians zijn echter wreed: Doctor Monkey houdt bijvoorbeeld de prestaties van het systeem in de gaten. Wanneer Chaos Kong langskomt voor een bezoek, zijn alle weddenschappen echter uitgeschakeld; dit personage zal een volledige AWS-beschikbaarheidszone uitschakelen.

Verwant: Hoe worden beveiligingsproblemen beoordeeld?

Chaos Engineering en de wetenschappelijke methode

Chaos-engineering dient als een waardevolle bron van systemisch inzicht voor degenen die de experimenten uitvoeren. Niet alleen de ontwikkelaars worden hier op de proef gesteld; het is ook het systeem zoals het autonoom bestaat.

Voordat het vat met apen op de tafel wordt gedumpt, moet er eerst wat basiswerk worden gedaan om chaos te ontwikkelen.

  1. U moet eerst vaststellen wat u beschouwt als een "stabiele", gezonde, functionele toestand voor uw systeem. Dit zal de "controle" zijn waaraan u eventuele tastbare resultaten meet.
  2. Begin na te denken over hoe deze toestand uit balans zal worden gebracht door het binnendringen van georkestreerd falen. Plan uw indringende malware om alleen een beperkt, controleerbaar deel van uw systeem te beïnvloeden.
  3. Introduceer de "indringer" en laat het systeem reageren.
  4. Observeer en interpreteer eventuele verschillen tussen het systeem zoals het nu bestaat en hoe het zich eerder gedroeg, terwijl het in homeostase was. Vergroot uw "explosiestraal" van impact totdat u een kwetsbaarheid detecteert of volledige schaal bereikt, afhankelijk van wat zich het eerst voordoet.

Het idee is dat hoe moeilijker het is om een ​​functioneel systeem te verstoren, hoe meer vertrouwen je kunt hebben in de veerkracht ervan om te veranderen en te bombarderen. Deze aanpak laat zien hoe verschillende aspecten van het systeem elkaars storingen compenseren bij een storing.

"Omdat geen enkel onderdeel 100% uptime kan garanderen (en zelfs de duurste hardware uiteindelijk faalt), moeten we ontwerp een cloudarchitectuur waarin individuele componenten kunnen falen zonder de beschikbaarheid van het hele systeem."

De Netflix Blog

Soms komt het spelen met het systeem op deze manier niet eens in de buurt van het beïnvloeden van de klantervaring. Andere keren zullen ernstige beveiligingsfouten aan het licht komen. Nu, vooral bij Netflix, is onvoorziene omstandigheden die bedoeld zijn om systeemstoringen op gebruikersniveau te maskeren, ingebouwd in de basis van het systeem.

Verwant: Wat is een zero-day-exploit?

Is chaos-engineering het waard?

Als je een complex systeem wilt begrijpen — stoor het

— Farhan Thawar (@fnthawar) 26 mei 2021

Critici zullen zeggen dat geen enkele back-endgame de moeite waard is om de ervaring van een klant te beïnvloeden, ook al is het maar kort en per incident. Degenen die voorstander zijn van chaos-engineering zullen echter weerleggen met het feit dat deze "geplande uitval" veel kleiner moet zijn dan wat AWS in 2015 meemaakte. Als een klein, gepland probleem u in staat stelt te voorkomen dat een veel groter probleem zich ooit voordoet, kan het plannen van het eerste incident de beste manier zijn om u voor te bereiden. In totaal zullen er minder gebruikers worden getroffen. De wiskunde komt uit.

Van de menselijke kant van de zaak is de mentaliteit dat nu deze ingenieurs die een servercrash voor hun neus hebben gehad en er vakkundig mee omgaat, zal in de toekomst zowel alerter zijn als intellectueel meer toegerust om alles aan te pakken wat er op hun pad komt manier. Het sterkere systeem dat daaruit voortvloeit, spreekt in veel gevallen voor zich.

Silicon Valley: waar dromen sterven

Ze zeggen dat als je het groot wilt maken, je bereid moet zijn om je lievelingen te vermoorden, of, in dit geval, bereid moet zijn om anderen ze voor jou te laten doden. Wanneer beveiliging vanaf het allereerste begin van de ontwikkeling voorop staat, is de kans veel groter dat uw team iets ondoordringbaars en veiligs krijgt voor klanten om vrij te gebruiken.

Het game-ifying van de werkplekervaring maakt het vooruitzicht op succes in dit domein spannend; als het eindresultaat er een is van kwaliteit, gaat iedereen een level omhoog. Mijn Netflix werkt prima, en dat hebben we alleen aan de gekken achter de chaos te danken.

Nu je chaos-engineering goed onder de knie hebt, waarom zou je je kennis dan niet uitbreiden met een andere methode voor softwareontwikkeling? Agile is een uitstekend systeem dat u kunt gebruiken om een ​​personeelsbestand te verenigen en schone, efficiënte code te produceren.

E-mail
Wat is de Agile-programmeermethode?

Of je nu solliciteert naar een programmeerbaan of een efficiëntere manier van werken wilt, je moet kennis hebben van Agile.

Lees volgende

Gerelateerde onderwerpen
  • Programmeren
  • Programmeren
Over de auteur
Emma Garofalo (25 artikelen gepubliceerd)

Emma Garofalo is een schrijver die momenteel in Pittsburgh, Pennsylvania woont. Als ze niet aan haar bureau aan het zwoegen is op zoek naar een betere toekomst, is ze meestal te vinden achter de camera of in de keuken.

Meer van Emma Garofalo

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.