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
Migliorare l'organizzazione delle risorse con Azure Policy
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Utilizzare gRPC su App Service di Azure
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Usare una container image come runner di GitHub Actions
C# 12: Cosa c'è di nuovo e interessante
Usare le collection expression per inizializzare una lista di oggetti in C#
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Migliora la resilienza delle applicazioni con .NET e Azure Container Apps
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Creare una libreria CSS universale: i bottoni
Le novità di Angular: i miglioramenti alla CLI