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 query verso tipi non mappati in Entity Framework Core
Utilizzare Model as a Service su Microsoft Azure
Eseguire attività basate su eventi con Azure Container Jobs
Sfruttare lo streaming di una chiamata Http da Blazor
Cache policy su route groups di Minimal API in ASP.NET Core 7
Inizializzare i container in Azure Container Apps
Determinare lo stato di un pod in Kubernetes
Potenziare Azure AI Search con la ricerca vettoriale
Usare un KeyedService di default in ASP.NET Core 8
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Utilizzare i primary constructor di C# per inizializzare le proprietà
Criptare la comunicazione con mTLS in Azure Container Apps