Högdensitetsvärd i Azure App Service med skalning per app
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Information om hur du kommer igång finns i Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
När du använder App Service kan du skala dina appar genom att skala den App Service-plan som de körs på. När flera appar körs i samma App Service-plan kör varje utskalad instans alla appar i planen.
Skalning per app kan aktiveras på App Service-plannivå för att tillåta skalning av en app oberoende av App Service-planen som är värd för den. På så sätt kan en App Service-plan skalas till 10 instanser, men en app kan bara användas med fem.
Kommentar
Skalning per app är endast tillgängligt för prisnivåer för Standard, Premium, Premium V2, Premium V3 och Isolerad .
Appar allokeras till tillgänglig App Service-plan med en metod för bästa förmåga för en jämn distribution mellan instanser. Även om en jämn distribution inte garanteras ser plattformen till att två instanser av samma app inte finns på samma App Service-planinstans.
Plattformen förlitar sig inte på mått för att besluta om arbetsallokering. Program balanseras bara om när instanser läggs till eller tas bort från App Service-planen.
Skalning per app med PowerShell
Skapa en plan med skalning per app genom att skicka in parametern -PerSiteScaling $true
till cmdleten New-AzAppServicePlan
.
New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
-Location $Location `
-Tier Premium -WorkerSize Small `
-NumberofWorkers 5 -PerSiteScaling $true
Aktivera skalning per app med en befintlig App Service-plan genom att skicka in parametern -PerSiteScaling $true
till cmdleten Set-AzAppServicePlan
.
# Enable per-app scaling for the App Service Plan using the "PerSiteScaling" parameter.
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
-Name $AppServicePlan -PerSiteScaling $true
På appnivå konfigurerar du antalet instanser som appen kan använda i App Service-planen.
I exemplet nedan är appen begränsad till två instanser oavsett hur många instanser den underliggande App Service-planen skalar ut till.
# Get the app we want to configure to use "PerSiteScaling"
$newapp = Get-AzWebApp -ResourceGroupName $ResourceGroup -Name $webapp
# Modify the NumberOfWorkers setting to the desired value.
$newapp.SiteConfig.NumberOfWorkers = 2
# Post updated app back to azure
Set-AzWebApp $newapp
Viktigt!
$newapp.SiteConfig.NumberOfWorkers
skiljer sig från $newapp.MaxNumberOfWorkers
. Skalning per app används $newapp.SiteConfig.NumberOfWorkers
för att fastställa appens skalningsegenskaper.
Skalning per app med Hjälp av Azure Resource Manager
Följande Azure Resource Manager-mall skapar:
- En App Service-plan som skalas ut till 10 instanser
- en app som är konfigurerad för att skalas till högst fem instanser.
App Service-planen anger egenskapen PerSiteScaling till true "perSiteScaling": true
. Appen anger antalet arbetare som ska användas till 5 "properties": { "numberOfWorkers": "5" }
.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters":{
"appServicePlanName": { "type": "string" },
"appName": { "type": "string" }
},
"resources": [
{
"comments": "App Service Plan with per site perSiteScaling = true",
"type": "Microsoft.Web/serverFarms",
"sku": {
"name": "P1",
"tier": "Premium",
"size": "P1",
"family": "P",
"capacity": 10
},
"name": "[parameters('appServicePlanName')]",
"apiVersion": "2015-08-01",
"location": "West US",
"properties": {
"name": "[parameters('appServicePlanName')]",
"perSiteScaling": true
}
},
{
"type": "Microsoft.Web/sites",
"name": "[parameters('appName')]",
"apiVersion": "2015-08-01-preview",
"location": "West US",
"dependsOn": [ "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" ],
"properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" },
"resources": [ {
"comments": "",
"type": "config",
"name": "web",
"apiVersion": "2015-08-01",
"location": "West US",
"dependsOn": [ "[resourceId('Microsoft.Web/Sites', parameters('appName'))]" ],
"properties": { "numberOfWorkers": "5" }
} ]
}]
}
Rekommenderad konfiguration för högdensitetsvärd
Per appskalning är en funktion som är aktiverad i både globala Azure-regioner och App Service-miljön. Den rekommenderade strategin är dock att använda App Service-miljön för att dra nytta av deras avancerade funktioner och den större App Service-plankapaciteten.
Följ de här stegen för att konfigurera högdensitetsvärd för dina appar:
- Ange en App Service-plan som högdensitetsplan och skala ut den till önskad kapacitet.
PerSiteScaling
Ange flaggan till true i App Service-planen.- Nya appar skapas och tilldelas till apptjänstplanen med egenskapen numberOfWorkers inställd på 1.
- Om du använder den här konfigurationen får du högsta möjliga densitet.
- Antalet arbetare kan konfigureras oberoende per app för att bevilja ytterligare resurser efter behov. Till exempel:
- En app med hög användning kan ange numberOfWorkers till 3 för att ha mer bearbetningskapacitet för den appen.
- Appar med låg användning skulle ange numberOfWorkers till 1.