Per ospitare un'applicazione web, qualsiasi linguaggio o framework noi usiamo, sulla piattaforma Microsoft Azure possiamo sfruttare gli App Service. Hanno molteplici funzionalità e automatismi che ci fanno dimenticare della loro gestione, ma è importante assicurarci che le app funzionino sempre.
Quando disponiamo di più istanze il load balancer distribuisce le chiamate su di esse a meno che IIS, il web server che sta dietro le quinte, non risponda con un 503. Per avere un errore di questo genere deve verificarsi qualcosa di molto grave, ma non sempre è così: sebbene il nostro applicativo risponda, potrebbe non essere tutto funzionante.
Di recente è stata aggiunta la possibilità di indicare al servizio di monitorare un endpoint HTTP. Con esso il nostro compito è di rispondere e dare uno status code 200 (o nel range dei 200-299) quando esso viene interpellato. In caso contrario il balancer non inoltrerà più le richieste all'istanza fino a quando non torneremo di nuovo healthy. Per sfruttare questa funzionalità è sufficiente aprire la pagina Health check della sotto sezione Monitoring, sempre attraverso il portale, e indicare il percorso relativo.
Fatto questo ogni due minuti il percorso verrà interrogato. Abbiamo due minuti per rispondere positivamente, ma se per cinque volte consecutive l'esito è negativo, l'istanza verrà rimossa. I ping, nel frattempo, proseguono fino a quando l'istanza torna di nuovo healty. Se questa situazione invece dovesse protrarsi per più di un'ora allora l'istanza verrà ricreata su un altro server virtuale. Da notare che se abbiamo abilitato l'autenticazione integrata degli App Service, questa viene saltata per interrogare direttamente il nostro endpoint.
In questo endpoint è importante quindi effettuare dei controlli di raggiungibilità su eventuali sotto sistemi, come database o code, al fine di dare un'indicazione veritiera dello stato di salute.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Verificare la provenienza di un commit tramite le GitHub Actions
Creare form tipizzati con Angular
Evitare la command injection in un workflow di GitHub
Migrare una service connection a workload identity federation in Azure DevOps
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Eseguire attività basate su eventi con Azure Container Jobs
Copiare automaticamente le secret tra più repository di GitHub
Supportare il sorting di dati tabellari in Blazor con QuickGrid
Creare gruppi di client per Event Grid MQTT
Generare file per il download da Blazor WebAssembly
Utilizzare Model as a Service su Microsoft Azure
Sostituire la GitHub Action di login su private registry
I più letti di oggi
- Utilizzare WebAssembly con .NET, ovunque
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
- Utilizzare il trigger SQL con le Azure Function
- Ottimizzazione dei block template in Angular 17
- Disabilitare automaticamente un workflow di GitHub (parte 2)