Hosting o wysokiej gęstości w usłudze aplikacja systemu Azure przy użyciu skalowania dla aplikacji
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. 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 usługi App Service możesz skalować aplikacje, skalując plan usługi App Service, na którym działają. Jeśli wiele aplikacji jest uruchomionych w tym samym planie usługi App Service, każde wystąpienie skalowane w poziomie uruchamia wszystkie aplikacje w planie.
Skalowanie dla aplikacji można włączyć na poziomie planu usługi App Service, aby umożliwić skalowanie aplikacji niezależnie od planu usługi App Service, który go hostuje. W ten sposób plan usługi 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 dla warstw cenowych w warstwach Standardowa, Premium, Premium V2, Premium V3 i Izolowanych .
Aplikacje są przydzielane do dostępnego planu usługi App Service przy użyciu najlepszego podejścia do równomiernej dystrybucji między wystąpieniami. Mimo że dystrybucja parzysta nie jest gwarantowana, platforma zapewni, że dwa wystąpienia tej samej aplikacji nie będą hostowane w tym samym wystąpieniu planu usługi App Service.
Platforma nie polega na metrykach do decydowania o alokacji procesów roboczych. Aplikacje są ponownie równoważone tylko wtedy, gdy wystąpienia są dodawane lub usuwane z planu usługi App Service.
Skalowanie poszczególnych aplikacji 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 poszczególnych aplikacji przy użyciu istniejącego planu usługi 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 usługi 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
. Skalowanie poszczególnych aplikacji używa $newapp.SiteConfig.NumberOfWorkers
do określania właściwości skalowania aplikacji.
Skalowanie poszczególnych aplikacji przy użyciu usługi Azure Resource Manager
Poniższy szablon usługi Azure Resource Manager tworzy:
- Plan usługi App Service skalowany w poziomie do 10 wystąpień
- aplikacja skonfigurowana do skalowania do maksymalnie pięciu wystąpień.
Plan usługi App Service ustawia właściwość PerSiteScaling na true "perSiteScaling": true
. Aplikacja ustawia liczbę procesów roboczych , których należy użyć 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 środowiskach App Service Environment. Zalecaną strategią jest jednak użycie środowisk App Service Environment do korzystania z zaawansowanych funkcji i większej pojemności planu usługi App Service.
Wykonaj następujące kroki, aby skonfigurować hosting o wysokiej gęstości dla aplikacji:
- Wyznaczanie planu usługi 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 usługi App Service. - Nowe aplikacje są tworzone i przypisywane do tego planu usługi App Service z właściwością numberOfWorkers ustawioną na 1.
- Użycie tej konfiguracji daje największą 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.