Le Azure Web App sono un servizio che permette di ospitare le proprie applicazioni web in un ambiente completamento gestito, scalabile e altamente affidabile. Per raggiungere questo obiettivo, facciamo uso di più istanze, cioè di più server per rispondere con la medesima applicazione. Il balancer di Azure si occupa di instradare le richieste mediante round robin alle rispettive macchine, bilanciando le richieste e quindi presumibilmente i carichi di lavoro.
Fin dalla sua nascita, questo servizio ha sfruttato la tecnica dell'Affinity Cookie per impostare sull'utente un'informazione che indicasse quale server avesse per primo soddisfatto una richiesta. In questo modo, alle successive richieste, l'utente viene sempre instradato allo stesso server, facilitando noi sviluppatori, perché ci consente di memorizzare informazioni in memoria senza doverci preoccupare di replicarle sulle altre macchine.
Questa tecnica, sebbene comoda, non garantisce il massimo di performance. Oltre al payload del cookie che transita da client e server, non permette all'algoritmo di round robin di bilanciare correttamente i carichi. Possiamo però disabilitare questa funzionalità se siamo sicuri di aver sviluppato il nostro applicativo in maniera totalmente state less: è sufficiente andare nella sezione Application Settings e spegnere la voce ARR Affinity, come nell'immagine seguente.
La modifica è immediata e consentirà ai nuovi utenti di non ricevere più quel cookie.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare Tailwind CSS all'interno di React: primi componenti
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Utilizzare la libreria Benchmark.NET per misurare le performance
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Elencare le container images installate in un cluster di Kubernetes
Controllare gli accessi IP alle app con Azure Container Apps
Ottenere il contenuto di una cartella FTP con la libreria FluentFTP
Disabilitare automaticamente un workflow di GitHub (parte 2)
Creare gruppi di client per Event Grid MQTT
Eseguire una GroupBy per entity in Entity Framework