Quando creiamo una web app sulla piattaforma Microsoft Azure, dobbiamo sempre creare o indicare un server plan dove ospitarla. Il server plan è un server logico sulla quale possiamo aumentare la densità del suo utilizzo inserendo più web app. Su di esso possiamo effettuare due tipologie di scaling: orizzontale e verticale. Nel primo aumentiamo il numero di istanze, nel secondo la capacità in termini di CPU e memoria.
Quando aumentiamo il numero delle istanze, tutti gli applicativi vengono replicati e vivono in più processi, in base al service plan che tramite un load balancer spartisce il traffico su di essi. Questo semplifica notevolmente la gestione, poiché andiamo a riempire le istanze nello stesso modo, ma non ci permette di essere più granulari, per esempio usando una sola istanza per un applicativo a basso utilizzo.
E' possibile ovviare a questo limite abilitando il per-app scaling. Questa proprietà, disponibile sul service plan, ci permette poi di indicare ad ogni web app, il numero di worker da utilizzare. Prima di tutto quindi va impostato il flag, tramite PowerShell o ARM:
Set-AzAppServicePlan -ResourceGroupName mioResourceGroup -Name mioPlan -PerSiteScaling $true
Possiamo a questo punto indicare il numero di workers da utilizzare su ogni web app:
$app = Get-AzWebApp -ResourceGroupName mioResourceGroup -Name mioSite $app.SiteConfig.NumberOfWorkers = 2 Set-AzWebApp $app
Possiamo in qualsiasi momento cambiare il numero dei workers che assumerà valore uno per eventuali nuove web app inserite nello stesso plan.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Creare moduli CSS in React
Migliora la resilienza delle applicazioni con .NET e Azure Container Apps
Ottimizzazione dei block template in Angular 17
Usare un KeyedService di default in ASP.NET Core 8
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Evitare la command injection in un workflow di GitHub
Creare gruppi di client per Event Grid MQTT
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Usare lo spread operator con i collection initializer in C#
Utilizzare politiche di resiliency con Azure Container App