Hosting o wysokiej gęstości w Azure App Service przy użyciu skalowania dla aplikacji
Uwaga
Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
W przypadku korzystania z App Service możesz skalować aplikacje, skalując App Service plan, na którym działają. Gdy wiele aplikacji jest uruchomionych w tym samym planie App Service, każde wystąpienie skalowane w poziomie uruchamia wszystkie aplikacje w planie.
Skalowanie dla aplikacji można włączyć na poziomie planu App Service, aby umożliwić skalowanie aplikacji niezależnie od planu App Service, który go hostuje. W ten sposób plan App Service można skalować do 10 wystąpień, ale można ustawić aplikację na użycie tylko pięciu.
Uwaga
Skalowanie dla aplikacji jest dostępne tylko w warstwach cenowych w warstwach Standardowa, Premium, Premium V2, Premium V3 i Izolowanych .
Aplikacje są przydzielane do dostępnego planu App Service przy użyciu najlepszego podejścia do równomiernej dystrybucji między wystąpieniami. Chociaż równomierna dystrybucja nie jest gwarantowana, platforma zapewni, że dwa wystąpienia tej samej aplikacji nie będą hostowane w tym samym wystąpieniu planu App Service.
Platforma nie polega na metrykach do decydowania o alokacji procesów roboczych. Aplikacje są ponownie zrównoważone tylko wtedy, gdy wystąpienia są dodawane lub usuwane z planu App Service.
Skalowanie na aplikację przy użyciu programu PowerShell
Utwórz plan ze skalowaniem poszczególnych aplikacji, przekazując -PerSiteScaling $true
parametr do New-AzAppServicePlan
polecenia cmdlet.
New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
-Location $Location `
-Tier Premium -WorkerSize Small `
-NumberofWorkers 5 -PerSiteScaling $true
Włącz skalowanie dla aplikacji przy użyciu istniejącego planu App Service, przekazując -PerSiteScaling $true
parametr do Set-AzAppServicePlan
polecenia cmdlet.
# Enable per-app scaling for the App Service Plan using the "PerSiteScaling" parameter.
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
-Name $AppServicePlan -PerSiteScaling $true
Na poziomie aplikacji skonfiguruj liczbę wystąpień, których aplikacja może używać w planie App Service.
W poniższym przykładzie aplikacja jest ograniczona do dwóch wystąpień niezależnie od liczby wystąpień, do których jest skalowany bazowy plan usługi App Service.
# 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
Ważne
$newapp.SiteConfig.NumberOfWorkers
różni się od $newapp.MaxNumberOfWorkers
elementu . Skalowanie dla aplikacji jest używane $newapp.SiteConfig.NumberOfWorkers
do określania cech skalowania aplikacji.
Skalowanie dla aplikacji przy użyciu usługi Azure Resource Manager
Poniższy szablon usługi Azure Resource Manager tworzy:
- Plan App Service skalowany w poziomie do 10 wystąpień
- aplikacja skonfigurowana do skalowania do maksymalnie pięciu wystąpień.
Plan App Service ustawia właściwość PerSiteScaling na wartość true "perSiteScaling": true
. Aplikacja ustawia liczbę procesów roboczych do użycia do 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" }
} ]
}]
}
Zalecana konfiguracja hostingu o wysokiej gęstości
Skalowanie na aplikację to funkcja włączona zarówno w regionach globalnych platformy Azure, jak i w środowiskach App Service. Zalecaną strategią jest jednak użycie App Service Environments w celu skorzystania z ich zaawansowanych funkcji i większej pojemności planu App Service.
Wykonaj następujące kroki, aby skonfigurować hosting o wysokiej gęstości dla aplikacji:
- Wyznaczanie planu App Service jako planu o wysokiej gęstości i skalowanie go w poziomie do żądanej pojemności.
- Ustaw flagę
PerSiteScaling
na true w planie App Service. - Nowe aplikacje są tworzone i przypisywane do tego planu App Service z właściwością numberOfWorkers ustawioną na 1.
- Użycie tej konfiguracji daje największą możliwą gęstość.
- Liczbę procesów roboczych można skonfigurować niezależnie na aplikację w celu udzielenia dodatkowych zasobów zgodnie z potrzebami. Na przykład:
- Aplikacja o wysokim użyciu może ustawić wartość numberOfWorkers na 3 , aby mieć większą pojemność przetwarzania dla tej aplikacji.
- Aplikacje o niskim użyciu ustawiłyby wartość numberOfWorkers na 1.