Chaos engineering en tolerantie begrijpen
Voordat u Azure Chaos Studio gaat gebruiken, is het handig om inzicht te krijgen in de belangrijkste concepten van sitebetrouwbaarheidstechniek die worden toegepast.
Wat is tolerantie?
Het is nog nooit zo eenvoudig geweest om grootschalige, gedistribueerde toepassingen te maken. Infrastructuur wordt gehost in de cloud en ondersteuning voor programmeertalen is divers. Er zijn ook veel opensource- en gehoste onderdelen en services waarop u kunt bouwen.
Helaas is er geen betrouwbaarheidsgarantie voor deze onderliggende onderdelen en afhankelijkheden, of voor systemen die erop zijn gebouwd. Infrastructuur kan offline gaan en serviceonderbrekingen of storingen kunnen zich op elk gewenst moment voordoen. Kleine onderbrekingen in het ene gebied kunnen worden vergroot en hebben langdurige bijwerkingen in een ander gebied.
Toepassingen en services moeten plannen en problemen oplossen, zoals:
- Servicestoringen.
- Onderbrekingen van bekende en onbekende afhankelijkheden.
- Plotselinge onverwachte belasting.
- Latenties in het hele systeem.
Toepassingen en services moeten zijn ontworpen om fouten te verwerken en te worden beschermd tegen onderbrekingen.
Toepassingen en services die omgaan met stress en problemen zijn flexibel. Betrouwbaarheid van afzonderlijke onderdelen is goed, maar tolerantie is een eigenschap van het hele systeem. End-to-end systeemtolerantie moet worden gevalideerd in een geïntegreerde, productieachtige omgeving met de voorwaarden en belasting die in productie wordt geconfronteerd.
Wat zijn chaos engineering en foutinjectie?
- Chaos engineering: De praktijk van het onderwerpen van toepassingen en diensten aan echte stress en fouten. Het doel is om tolerantie te bouwen en te valideren voor onbetrouwbare voorwaarden en ontbrekende afhankelijkheden.
- Foutinjectie: de handeling van het introduceren van een fout in een systeem. U kunt verschillende fouten, zoals netwerklatentie of verlies van toegang tot opslag, gebruiken om systeemonderdelen te richten. U kunt scenario's maken waaruit een toepassing of service moet kunnen verwerken of herstellen.
Een chaos-experiment is de toepassing van fouten afzonderlijk, parallel of opeenvolgend ten opzichte van een of meer abonnementsresources of afhankelijkheden. Het doel is om systeemgedrag en -status te bewaken, zodat u kunt reageren op eventuele problemen die zich voordoen.
Een experiment kan een praktijkscenario vertegenwoordigen, zoals een stroomstoring in een datacenter of netwerklatentie naar een DNS-server. Het kan ook worden gebruikt om randvoorwaarden te simuleren die optreden. Voorbeelden zijn Black Friday shopping sprees of wanneer concerttickets te koop gaan voor een populaire band.