Cloudeigen tolerantie

Tip

Deze inhoud is een fragment uit het eBook, Cloud Native .NET Applications for Azure ontwerpen, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.

Cloud Native .NET apps for Azure eBook cover thumbnail.

Tolerantie is de mogelijkheid van uw systeem om te reageren op fouten en nog steeds functioneel te blijven. Het gaat niet om het vermijden van fouten, maar het accepteren van fouten en het samenstellen van uw cloudeigen services om erop te reageren. U wilt zo snel mogelijk terugkeren naar een volledig functionerende status.

In tegenstelling tot traditionele monolithische toepassingen, waarbij alles in één proces wordt uitgevoerd, omarmen cloudeigen systemen een gedistribueerde architectuur, zoals wordt weergegeven in afbeelding 6-1:

Distributed cloud-native environment

Afbeelding 6-1. Gedistribueerde cloudeigen omgeving

In de vorige afbeelding worden elke microservice en cloudgebaseerde backingservice uitgevoerd in een afzonderlijk proces, in de serverinfrastructuur, die communiceert via netwerkoproepen.

Als u in deze omgeving werkt, moet een service gevoelig zijn voor veel verschillende uitdagingen:

  • Onverwachte netwerklatentie: de tijd voor een serviceaanvraag om naar de ontvanger en terug te gaan.

  • Tijdelijke fouten: kortstondige netwerkverbindingsfouten .

  • Blokkering door een langdurige synchrone bewerking.

  • Een hostproces dat is vastgelopen en opnieuw wordt opgestart of verplaatst.

  • Een overbelaste microservice die niet gedurende korte tijd kan reageren.

  • Een orchestratorbewerking in de flight, zoals een rolling upgrade of het verplaatsen van een service van het ene knooppunt naar het andere.

  • Hardwarefouten.

Cloudplatforms kunnen veel van deze infrastructuurproblemen detecteren en beperken. De service kan opnieuw worden opgestart, uitgeschaald en zelfs opnieuw worden distribueren naar een ander knooppunt. Als u echter optimaal gebruik wilt maken van deze ingebouwde beveiliging, moet u uw services ontwerpen om erop te reageren en te bloeien in deze dynamische omgeving.

In de volgende secties verkennen we defensieve technieken die uw service en beheerde cloudresources kunnen gebruiken om downtime en onderbrekingen te minimaliseren.