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
Miglioramenti nelle performance di Angular 16
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Sostituire la GitHub Action di login su private registry
Gestire gli accessi con Token su Azure Container Registry
Effettuare il refresh dei dati di una QuickGrid di Blazor
Gestione dei nomi con le regole @layer in CSS
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Utilizzare Copilot con Azure Cosmos DB
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Proteggere le risorse Azure con private link e private endpoints
Path addizionali per gli asset in ASP.NET Core MVC