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.MaxNumberOfWorkerselementu . 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" }
            } ]
        }]
}

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:

  1. Wyznaczanie planu App Service jako planu o wysokiej gęstości i skalowanie go w poziomie do żądanej pojemności.
  2. Ustaw flagę PerSiteScaling na true w planie App Service.
  3. 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ść.
  4. 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.

Następne kroki