Hostování s vysokou hustotou na Azure App Service s využitím škálování pro jednotlivé aplikace

Poznámka

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Při používání App Service můžete škálovat aplikace škálováním plánu App Service, na kterých běží. Pokud je ve stejném plánu App Service spuštěno více aplikací, každá instance se škálováním na více instancí spustí všechny aplikace v plánu.

Škálování jednotlivých aplikací je možné povolit na úrovni App Service plánu, aby bylo možné škálovat aplikaci nezávisle na plánu App Service, který ji hostuje. Tímto způsobem lze plán App Service škálovat na 10 instancí, ale aplikace může být nastavená tak, aby používala jenom pět.

Poznámka

Škálování jednotlivých aplikací je dostupné jenom pro cenové úrovně Standard, Premium, Premium V2, Premium V3 a Isolated .

Aplikace se přidělují dostupným App Service plánu s využitím nejlepšího úsilí pro rovnoměrnou distribuci mezi instancemi. I když není zaručená rovnoměrná distribuce, platforma zajistí, že dvě instance stejné aplikace nebudou hostovány ve stejné instanci plánu App Service.

Platforma při rozhodování o přidělení pracovního procesu nespoléhá na metriky. Aplikace se znovu vyrovnávají jenom v případě, že jsou instance přidány nebo odebrány z plánu App Service.

Škálování podle aplikace pomocí PowerShellu

Vytvořte plán se škálováním pro jednotlivé aplikace předáním parametru -PerSiteScaling $true do rutiny New-AzAppServicePlan .

New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
                            -Location $Location `
                            -Tier Premium -WorkerSize Small `
                            -NumberofWorkers 5 -PerSiteScaling $true

Povolte škálování jednotlivých aplikací s existujícím plánem App Service předáním parametru -PerSiteScaling $true do rutinySet-AzAppServicePlan.

# Enable per-app scaling for the App Service Plan using the "PerSiteScaling" parameter.
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
   -Name $AppServicePlan -PerSiteScaling $true

Na úrovni aplikace nakonfigurujte počet instancí, které může aplikace používat v plánu App Service.

V následujícím příkladu je aplikace omezená na dvě instance bez ohledu na to, na kolik instancí se základní plán služby App Service škáluje.

# 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

Důležité

$newapp.SiteConfig.NumberOfWorkers se liší od $newapp.MaxNumberOfWorkers. Škálování podle aplikace se používá $newapp.SiteConfig.NumberOfWorkers k určení charakteristik škálování aplikace.

Škálování podle aplikace pomocí Azure Resource Manager

Vytvoří se následující šablona Azure Resource Manager:

  • Plán App Service s horizontálním navýšením kapacity na 10 instancí
  • aplikace, která je nakonfigurovaná tak, aby se škálovala na maximálně pět instancí.

Plán App Service nastavuje vlastnost PerSiteScaling na hodnotu true "perSiteScaling": true. Aplikace nastavuje počet pracovních procesů , které se mají použít, na 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" }
            } ]
        }]
}

Škálování podle aplikace je funkce, která je povolená jak v globálních oblastech Azure, tak v prostředích App Service. Doporučenou strategií je však použít prostředí App Service, abyste mohli využívat své pokročilé funkce a větší kapacitu App Service plánu.

Při konfiguraci hostování s vysokou hustotou pro vaše aplikace postupujte následovně:

  1. Určete plán App Service jako plán s vysokou hustotou a škálujte ho na požadovanou kapacitu.
  2. PerSiteScaling Nastavte příznak na true v plánu App Service.
  3. Vytvoří se nové aplikace a přiřadí se k ho App Service plánu s vlastností numberOfWorkers nastavenou na 1.
    • Použití této konfigurace poskytuje nejvyšší možnou hustotu.
  4. Počet pracovních procesů je možné nakonfigurovat nezávisle na aplikaci tak, aby se podle potřeby udělovaly další prostředky. Příklad:
    • Aplikace s vysokým využitím může nastavit numberOfWorkers na 3 , aby měla větší kapacitu zpracování pro danou aplikaci.
    • Aplikace s nízkým využitím by nastavily hodnotu numberOfWorkers na 1.

Další kroky