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
Code scanning e advanced security con Azure DevOps
Change tracking e composition in Entity Framework
Proteggere le risorse Azure con private link e private endpoints
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Aggiungere interattività lato server in Blazor 8
Gestire i dati con Azure Cosmos DB Data Explorer
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Gestire domini wildcard in Azure Container Apps
Utilizzare un service principal per accedere a Azure Container Registry
Supportare lo HierarchyID di Sql Server in Entity Framework 8