Förstå kaosteknik och motståndskraft

Innan du börjar använda Azure Chaos Studio är det användbart att förstå de grundläggande begreppen för platstillförlitlighetsutveckling som tillämpas.

Vad är motståndskraft?

Det har aldrig varit enklare att skapa storskaliga, distribuerade program. Infrastrukturen finns i molnet och stöd för programmeringsspråk är olika. Det finns också många komponenter och tjänster med öppen källkod och värdbaserade tjänster att bygga vidare på.

Tyvärr finns det ingen tillförlitlighetsgaranti för dessa underliggande komponenter och beroenden, eller för system som bygger på dem. Infrastrukturen kan kopplas från och tjänststörningar eller avbrott kan inträffa när som helst. Mindre störningar i ett område kan förstoras och har långvariga biverkningar i ett annat.

Program och tjänster måste planera för och hantera problem som:

  • Avbrott i tjänsten.
  • Störningar i kända och okända beroenden.
  • Plötslig oväntad belastning.
  • Svarstider i hela systemet.

Program och tjänster måste utformas för att hantera fel och härdas mot störningar.

Program och tjänster som hanterar stress och problem på ett smidigt sätt är motståndskraftiga. Tillförlitlighet för enskilda komponenter är bra, men motståndskraft är en egenskap för hela systemet. Systemresiliens från slutpunkt till slutpunkt måste verifieras i en integrerad, produktionsliknande miljö med de förhållanden och den belastning som ställs inför i produktionen.

Vad är kaosteknik och felinmatning?

  • Kaosteknik: Praxis att utsätta program och tjänster för verkliga påfrestningar och fel. Målet är att skapa och validera motståndskraft mot otillförlitliga förhållanden och saknade beroenden.
  • Felinmatning: Åtgärden att införa ett fel i ett system. Du kan använda olika fel, till exempel nätverksfördröjning eller förlust av åtkomst till lagring, för att rikta in dig på systemkomponenter. Du kan skapa scenarier som ett program eller en tjänst måste kunna hantera eller återställa från.

Ett kaosexperiment är tillämpningen av fel individuellt, parallellt eller sekventiellt mot en eller flera prenumerationsresurser eller beroenden. Målet är att övervaka systemets beteende och hälsa så att du kan agera på eventuella problem som uppstår.

Ett experiment kan representera ett verkligt scenario, till exempel ett datacenters strömavbrott eller nätverksfördröjning till en DNS-server. Den kan också användas för att simulera gränsförhållanden som inträffar. Exempel är Black Friday shopping sprees eller när konsertbiljetter går till försäljning för ett populärt band.