0Pricing
Cloud & IT Cert Prep · Lezione

Probe di integrità e degradazione controllata

Configurare le probe di integrità del bilanciatore del carico e di Traffic Manager per rilevare rapidamente i guasti e progettare modelli di circuit breaker e degradazione controllata per il livello applicativo.

Probe di integrità e degradazione controllata è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Perché le probe di integrità sono essenziali

Le probe di integrità sono il meccanismo con cui i bilanciatori del carico e i traffic manager rilevano se un'istanza backend è in grado di gestire le richieste. Senza probe di integrità, un bilanciatore del carico potrebbe continuare a inviare traffico a un server guasto o che non risponde, causando errori visibili agli utenti. Probe di integrità configurate correttamente consentono il reindirizzamento automatico del traffico lontano dalle istanze non integre entro pochi secondi dal guasto.

Probe di integrità di Azure Load Balancer

Azure Load Balancer supporta due tipi di probe di integrità:

  • Probe TCP — verifica se il backend può accettare una connessione TCP su una porta specificata. È semplice, ma non verifica la logica dell'applicazione.
  • Probe HTTP/HTTPS — invia una richiesta GET a un percorso specificato e si aspetta una risposta 200 OK. È più precisa perché testa direttamente l'endpoint dell'applicazione.

Un backend viene contrassegnato come non integro se la probe non riesce per un numero configurabile di tentativi consecutivi.

# 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

Progettazione di un endpoint di integrità affidabile

Un endpoint di integrità ben progettato (/health) fa più che restituire 200 OK: verifica che le dipendenze critiche dell'applicazione siano raggiungibili. Un controllo di integrità completo potrebbe verificare la connettività al database, alla cache e alle API downstream. Se una dipendenza non è disponibile, l'endpoint restituisce un codice di stato 5xx, segnalando al bilanciatore del carico di rimuovere l'istanza dalla rotazione.

# 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

Probe di integrità di Traffic Manager

Azure Traffic Manager utilizza probe di integrità anche a livello regionale. Invia periodicamente richieste GET HTTP o HTTPS all'URL dell'endpoint configurato in ogni area geografica. Se un endpoint non risponde entro la finestra di timeout per un determinato numero di intervalli consecutivi, Traffic Manager lo contrassegna come degradato e interrompe l'instradamento delle query DNS verso di esso, reindirizzando gli utenti verso un'area geografica integra.

# 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

Probe di integrità di Application Gateway

Azure Application Gateway offre funzionalità di probe di integrità più avanzate rispetto al Load Balancer standard. Supporta probe personalizzate che specificano l'host header, l'intervallo di codici di stato previsto (ad esempio, 200-399) e una stringa da confrontare nel corpo della risposta. Application Gateway supporta anche il routing per percorso, consentendo a diversi pool backend di avere configurazioni di probe di integrità differenti per percorsi URL diversi.

# 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

Che cos'è la degradazione controllata

La degradazione controllata è la capacità di un'applicazione di continuare a fornire funzionalità parziali quando una o più dipendenze hanno un problema. Invece di arrestarsi completamente, l'applicazione rileva l'indisponibilità di un servizio non critico e passa a uno stato degradato, ma ancora utile. Ad esempio, se un servizio di raccomandazione non è disponibile, un sito di e-commerce potrebbe mostrare suggerimenti generici invece di interrompere l'intera pagina del prodotto.

Il pattern Circuit Breaker

Il pattern circuit breaker impedisce a un'applicazione di chiamare ripetutamente un servizio downstream che presenta errori. Quando un servizio inizia a non funzionare, il circuit breaker si apre e restituisce immediatamente un errore o una risposta di fallback senza effettuare la chiamata di rete. Dopo un periodo di attesa, passa allo stato half-open e consente una richiesta di prova. Se la richiesta ha esito positivo, il circuito si chiude e riprende il normale funzionamento.

# 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)

Nuovo tentativo con exponential backoff

Per i guasti transitori (brevi interruzioni della rete, sovraccarico temporaneo del servizio), è appropriata una strategia di retry con exponential backoff. L'applicazione ripete la chiamata non riuscita dopo un intervallo, raddoppiando il ritardo a ogni tentativo fino a un massimo. L'aggiunta di un jitter (una variazione casuale) al ritardo impedisce che tutti i tentativi di nuovo invio si sincronizzino e sovraccarichino un servizio in fase di ripristino.

# 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

Pattern Bulkhead

Il pattern bulkhead isola le diverse parti di un'applicazione in pool di risorse separati, in modo che un guasto in un'area non consumi tutte le risorse e non arresti l'intero sistema. Il nome deriva dalle paratie delle navi, che impediscono a un compartimento allagato di far affondare l'intera imbarcazione. In Azure, ciò può significare usare pool di thread separati o piani App Service separati per servizi diversi, così da contenere i guasti.

Risposte di fallback e dati memorizzati nella cache

Una tecnica comune di riduzione graduale delle funzionalità consiste nel fornire dati memorizzati nella cache o obsoleti quando un'origine dati in tempo reale non è disponibile. Ad esempio, una pagina del catalogo prodotti potrebbe fornire i prezzi memorizzati il giorno precedente in Azure Cache for Redis, invece di visualizzare un errore se il database è temporaneamente irraggiungibile. Gli utenti riscontrano un inconveniente limitato (prezzi leggermente obsoleti) anziché un'interruzione completa.

Monitoraggio e avvisi sul degrado

La riduzione graduale delle funzionalità deve essere visibile e misurata. Usi Application Insights per monitorare, come metriche personalizzate, la frequenza delle aperture del circuit breaker, delle risposte di fallback e dei tentativi di nuovo invio. Configuri alert quando queste metriche superano determinate soglie, così il team reperibile viene informato che l'applicazione è in uno stato degradato, anche se l'esperienza dell'utente appare accettabile.

Verifica rapida

Verifichi la Sua comprensione dei concetti di Microsoft Azure Fundamentals (AZ-900) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha appreso che le health probe consentono ai bilanciatori del carico di rilevare i backend non funzionanti e reindirizzare automaticamente il traffico; la riduzione graduale delle funzionalità mantiene le applicazioni parzialmente operative quando le dipendenze non funzionano; e pattern come circuit breaker, retry con backoff e bulkhead implementano la resilienza a livello applicativo. Prossimamente esamineremo i concetti di disaster recovery, definendo RTO, RPO e livelli di ripristino.

Domande Frequenti

La lezione «Probe di integrità e degradazione controllata» è gratuita?

Sì — il testo completo di «Probe di integrità e degradazione controllata» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Probe di integrità e degradazione controllata»?

Configurare le probe di integrità del bilanciatore del carico e di Traffic Manager per rilevare rapidamente i guasti e progettare modelli di circuit breaker e degradazione controllata per il livello… Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Probe di integrità e degradazione controllata»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. SLA di Azure e SLA compositi
  2. Set di disponibilità e zone di disponibilità
  3. Architettura active-active multi-area
  4. Probe di integrità e degradazione controllata
← Torna a Cloud & IT Cert Prep