Udostępnij za pośrednictwem


Hosting o wysokiej gęstości przy użyciu skalowania dla każdej aplikacji

Uwaga / Notatka

Zalecamy użycie modułu Azure Az PowerShell do interakcji z Azure. 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.

Aplikacje usługi Azure App Service można skalować, skalując plan usługi App Service , na którym działają. Gdy wiele aplikacji działa w tym samym planie usługi App Service, każde skalowane w poziomie wystąpienie uruchamia wszystkie aplikacje w planie.

Z kolei skalowanie dla aplikacji można włączyć na poziomie planu usługi App Service, aby skalować aplikację 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 / Notatka

Skalowanie dla aplikacji jest dostępne tylko dla poziomów cenowych Standardowy, Premium, Premium V2, Premium V3 i Izolowany.

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 równomierna dystrybucja nie jest gwarantowana, platforma zapewnia, że dwa wystąpienia tej samej aplikacji nie są hostowane w tym samym wystąpieniu planu usługi App Service.

Platforma nie polega na metrykach, aby decydować o alokacji pracowników. Aplikacje są ponownie równoważone tylko wtedy, gdy wystąpienia są dodawane lub usuwane z planu usługi App Service.

Skalowanie dla 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 za pomocą istniejącego planu usługi App Service, przekazując parametr -PerSiteScaling $true do polecenia Set-AzAppServicePlan cmdlet.

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 skalowany jest 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 zdefiniowania cech 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 rozbudowany do 10 instancji.
  • Aplikacja skonfigurowana do skalowania do maksymalnie pięciu wystąpień.

Plan usługi App Service ustawia PerSiteScaling właściwość na true "perSiteScaling": true. Aplikacja ustawia wartość number of workers na wartość 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 poszczególnych aplikacji 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:

  1. Wyznacz plan usługi App Service planem o wysokiej gęstości i skaluj go do poziomu żądanej pojemności.

  2. Ustaw flagę PerSiteScaling na true w planie usługi App Service.

  3. Nowe aplikacje są tworzone i przypisywane do tego planu usługi App Service z właściwością ustawioną numberOfWorkers na 1.

    • Użycie tej konfiguracji daje największą gęstość.
  4. Liczbę pracowników można skonfigurować niezależnie dla każdej aplikacji, aby zapewnić dodatkowe zasoby zgodnie z potrzebami. Przykład:

    • Aplikacja o wysokim obciążeniu może ustawić numberOfWorkers na 3, aby mieć większą zdolność przetwarzania dla tej aplikacji.
    • Aplikacje o niskim użyciu ustawiłyby numberOfWorkers na 1.