Cloud & IT Cert Prep · leksjon

Helsesonder og kontrollert degradering

Konfigurer helsesonder for lastbalansering og Traffic Manager slik at feil oppdages raskt, og utform mønstre med kretsbryter og kontrollert degradering for applikasjonslaget.

Leksjon 4 av 413 trinn

Helsesonder og kontrollert degradering er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hvorfor tilstandskontroller er avgjørende

Tilstandskontroller er mekanismen som lastbalanserere og trafikkstyrere bruker til å oppdage om en backend-instans kan behandle forespørsler. Uten tilstandskontroller kan en lastbalanserer fortsette å sende trafikk til en server som har sviktet eller ikke svarer, noe som fører til feil for brukerne. Riktig konfigurerte tilstandskontroller muliggjør automatisk omdirigering av trafikk bort fra usunne instanser i løpet av sekunder etter en feil.

Tilstandskontroller i Azure Load Balancer

Azure Load Balancer støtter to typer tilstandskontroller:

  • TCP-kontroll — kontrollerer om backend-en kan godta en TCP-tilkobling på en angitt port. Enkel, men bekrefter ikke applikasjonslogikken.
  • HTTP/HTTPS-kontroll — sender en GET-forespørsel til en angitt bane og forventer et 200 OK-svar. Mer nøyaktig fordi den tester applikasjonens endepunkt direkte.

En backend markeres som usunn hvis kontrollen mislykkes et konfigurerbart antall ganger etter hverandre.

# Create an HTTP health probe for an Azure Load Balancer:
az network lb probe create \
  --resource-group myRG \
  --lb-name myLoadBalancer \
  --name httpHealthProbe \
  --protocol Http \
  --port 80 \
  --path /health \
  --interval 15 \
  --threshold 2

Utforme et pålitelig tilstandsendepunkt

Et godt utformet tilstandsendepunkt (/health) gjør mer enn å returnere 200 OK — det bekrefter at applikasjonens kritiske avhengigheter er tilgjengelige. En omfattende tilstandskontroll kan teste tilkoblingen til databasen, hurtigbufferen og eventuelle underordnede API-er. Hvis en avhengighet ikke er tilgjengelig, returnerer endepunktet en 5xx-statuskode, som signaliserer til lastbalansereren at denne instansen skal fjernes fra rotasjonen.

# Example health endpoint response (JSON):
# GET /health
# {
#   'status': 'healthy',
#   'checks': {
#     'database': 'ok',
#     'cache': 'ok',
#     'externalApi': 'ok'
#   }
# }
# If database check fails, return HTTP 503 instead of 200

Tilstandskontroller i Traffic Manager

Azure Traffic Manager bruker også tilstandskontroller, men på regionalt nivå. Den sender periodiske HTTP- eller HTTPS-GET-forespørsler til den konfigurerte endepunkt-URL-en i hver region. Hvis et endepunkt ikke svarer innenfor tidsavbruddsintervallet et angitt antall intervaller etter hverandre, markerer Traffic Manager endepunktet som degradert og slutter å rute DNS-spørringer til det. Brukerne omdirigeres dermed til en frisk region.

# Configure Traffic Manager health probe settings:
az network traffic-manager profile update \
  --resource-group myRG \
  --name myTMProfile \
  --monitor-protocol HTTPS \
  --monitor-port 443 \
  --monitor-path /health \
  --monitor-interval 30 \
  --monitor-timeout 10 \
  --monitor-tolerated-failures 3

Tilstandskontroller i Application Gateway

Azure Application Gateway har mer avanserte funksjoner for tilstandskontroller enn standardutgaven av Load Balancer. Den støtter egendefinerte kontroller som angir host-headeren, det forventede statuskodeområdet (for eksempel 200–399) og en streng som skal finnes i responsinnholdet. Application Gateway støtter også ruting per bane, slik at ulike backend-pooler kan ha forskjellige konfigurasjoner for tilstandskontroller for ulike URL-baner.

# Create a custom probe for Application Gateway:
az network application-gateway probe create \
  --gateway-name myAppGateway \
  --resource-group myRG \
  --name customProbe \
  --protocol Http \
  --host-name-from-http-settings true \
  --path /api/health \
  --interval 20 \
  --timeout 10 \
  --threshold 3

Hva er kontrollert funksjonsreduksjon?

Kontrollert funksjonsreduksjon er en applikasjons evne til å fortsette å tilby deler av funksjonaliteten når én eller flere avhengigheter svikter. I stedet for å krasje fullstendig oppdager applikasjonen at en ikke-kritisk tjeneste er utilgjengelig, og går over til en redusert, men fortsatt nyttig tilstand. Hvis for eksempel en anbefalingstjeneste svikter, kan et e-handelsnettsted vise generelle forslag i stedet for at hele produktsiden krasjer.

Circuit breaker-mønsteret

Circuit breaker-mønsteret hindrer et program i å kalle en tjeneste lenger ned i kjeden som feiler, gjentatte ganger. Når en tjeneste begynner å feile, åpner circuit breaker-en og returnerer umiddelbart en feil- eller fallback-respons uten å foreta nettverkskallet. Etter en avkjølingsperiode går den inn i tilstanden halvåpen og tillater ett prøveanrop. Hvis det lykkes, lukkes circuit breaker-en, og normal drift gjenopptas.

# Circuit breaker states:
# CLOSED: normal operation, calls pass through
# OPEN:   service failing, calls immediately return error/fallback
# HALF-OPEN: cool-down expired, try one request:
#           success -> CLOSED
#           failure -> OPEN (reset timer)

# Libraries: Polly (.NET), Resilience4j (Java), polly-js (JS)

Nytt forsøk med eksponentiell backoff

For forbigående feil (korte nettverksforstyrrelser eller midlertidig overbelastning av en tjeneste) er en strategi med nye forsøk og eksponentiell backoff egnet. Programmet prøver det mislykkede kallet på nytt etter en forsinkelse, og dobler forsinkelsen for hvert nytt forsøk opp til en maksimumsverdi. Ved å legge til jitter (tilfeldig variasjon) i forsinkelsen unngår man at alle nye forsøk synkroniseres og overbelaster en tjeneste som er i ferd med å hente seg inn.

# Exponential backoff with jitter (pseudocode):
# attempt 1: wait 1s  + random(0-500ms)
# attempt 2: wait 2s  + random(0-500ms)
# attempt 3: wait 4s  + random(0-500ms)
# attempt 4: wait 8s  + random(0-500ms)
# max retries: 4
# max wait: 30s (cap)
# After max retries: return error to caller

Bulkhead-mønsteret

Bulkhead-mønsteret isolerer ulike deler av et program i separate ressursutvalg, slik at en feil i ett område ikke bruker opp alle ressursene og fører til at hele systemet stopper. Navnet kommer fra skott i skip, som hindrer at ett oversvømt rom senker hele fartøyet. I Azure kan dette innebære å bruke separate trådpooler eller separate App Service-planer for ulike tjenester, slik at feil begrenses.

Fallback-responser og bufrede data

En vanlig teknikk for kontrollert funksjonsreduksjon er å levere bufrede eller foreldede data når en direkte datakilde ikke er tilgjengelig. En produk katalogside kan for eksempel vise gårsdagens bufrede priser fra Azure Cache for Redis i stedet for å vise en feil hvis databasen midlertidig ikke kan nås. Brukerne opplever en liten ulempe (litt foreldede priser) i stedet for et fullstendig avbrudd.

Overvåking og varsling ved funksjonsreduksjon

Kontrollert funksjonsreduksjon bør være synlig og målbar. Bruk Application Insights til å spore frekvensen av åpninger av circuit breaker-en, fallback-responser og nye forsøk som egendefinerte måleverdier. Konfigurer varsler når disse måleverdiene overskrider tersklene, slik at beredskapsteamet får beskjed om at programmet kjører med redusert funksjonalitet, selv om brukeropplevelsen tilsynelatende er akseptabel.

Kort kontroll

Test forståelsen Deres av konseptene i Microsoft Azure Fundamentals (AZ-900) fra denne leksjonen.

Oppsummering av leksjonen

I denne leksjonen lærte De at helseprober gjør det mulig for lastbalansere å oppdage backend-systemer som feiler, og automatisk omdirigere trafikken; kontrollert funksjonsreduksjon holder programmer delvis funksjonelle når avhengigheter feiler; og mønstre som circuit breaker, nye forsøk med backoff og bulkhead implementerer robusthet på programnivå. Deretter skal vi se nærmere på konsepter innen katastrofegjenoppretting – definisjon av RTO, RPO og gjenopprettingsnivåer.

Gratis å komme i gang

Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
150
Leksjoner
600

Ofte stilte spørsmål

Er leksjonen «Helsesonder og kontrollert degradering» gratis?

Ja – hele teksten i «Helsesonder og kontrollert degradering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.

Hva lærer jeg i «Helsesonder og kontrollert degradering»?

Konfigurer helsesonder for lastbalansering og Traffic Manager slik at feil oppdages raskt, og utform mønstre med kretsbryter og kontrollert degradering for applikasjonslaget. Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?

Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Helsesonder og kontrollert degradering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?

Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Azure-SLA-er og sammensatte SLA-er
  2. Tilgjengelighetssett og tilgjengelighetssoner
  3. Aktiv-aktiv-arkitektur på tvers av flere regioner
  4. Helsesonder og kontrollert degradering
← Tilbake til Cloud & IT Cert Prep