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
Modificare globalmente la modalità di esecuzione delle query con Include in Entity Framework Core 5
Combinare pagine Blazor e ASP.NET Core MVC nello stesso sito
A lap around Azure Cognitive Services
Azure Kubernetes Service con .NET 5
Creare un templated component per Blazor
Utilizzare il CSS Grid Model per creare il layout di un sito
.NET Core <3 Azure Apps
Aggiungere una GIF in un'applicazione Xamarin Forms
Tracciabilità dei work item nel ciclo di vita del software con Azure DevOps
Testare una pagina web con Puppeteer e Puppeteer recorder
Ottimizzare la compilazione di applicazioni Angular con il Fast and Loose Incremental Checking di TypeScript
Scale your (AKS) cluster, Luke!