Sdílet prostřednictvím


Hostování s vysokou hustotou s využitím škálování jednotlivých aplikací

Poznámka:

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Pokud chcete začít, přečtěte si 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.

Aplikace Azure App Service můžete škálovat škálováním plánu služby App Service , na který běží. Když ve stejném plánu App Service běží více aplikací, každá rozšířená instance spustí všechny aplikace v plánu.

Naproti tomu škálování jednotlivých aplikací je možné povolit na úrovni plánu služby App Service, aby se aplikace škálovat nezávisle na plánu služby App Service, který ji hostuje. Tímto způsobem je možné škálovat plán služby App Service na 10 instancí, ale aplikaci je možné nastavit 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 Izolované .

Aplikace se přidělují dostupnému plánu služby App Service pomocí přístupu s nejlepším úsilím pro rovnoměrnou distribuci napříč instancemi. I když není zaručená rovnoměrná distribuce, platforma zajišťuje, že dvě instance stejné aplikace nejsou hostované ve stejné instanci plánu služby App Service.

Platforma nespoléhá na metriky při rozhodování o přidělování pracovníků. Aplikace jsou znovu vyváženy pouze v případě, že se instance přidají nebo odeberou z plánu služby App Service.

Škálování pro jednotlivé aplikace pomocí PowerShellu

Vytvořte plán se škálováním jednotlivých aplikací předáním -PerSiteScaling $true parametru rutině 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í pomocí existujícího plánu služby App Service předáním -PerSiteScaling $true parametru do rutiny Set-AzAppServicePlan .

Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
   -Name $AppServicePlan -PerSiteScaling $true

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

V následujícím příkladu je aplikace omezena na dvě instance bez ohledu na počet instancí, na které 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í jednotlivých aplikací používá $newapp.SiteConfig.NumberOfWorkers k určení charakteristik škálování aplikace.

Škálování jednotlivých aplikací pomocí Azure Resource Manageru

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

  • Plán služby App Service, který se škáluje na 10 instancí.
  • Aplikace, která je nakonfigurovaná tak, aby se škálovala na maximálně pět instancí.

Plán služby App Service nastavuje PerSiteScaling vlastnost na hodnotu true "perSiteScaling": true. Aplikace nastavuje number of workers pro použití 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í jednotlivých aplikací je funkce, která je povolená v globálních oblastech Azure i v prostředích App Service Environment. Doporučená strategie je ale použít službu App Service Environment k využití pokročilých funkcí a větší kapacity plánu služby App Service.

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

  1. Označte plán služby App Service jako plán s vysokou hustotou a škálujte ho na požadovanou kapacitu.

  2. Nastavte příznak PerSiteScaling na hodnotu „true“ v plánu služby App Service.

  3. Nové aplikace se vytvoří a přiřadí k danému plánu služby App Service s vlastností nastavenou numberOfWorkers na 1.

    • Použití této konfigurace přináší nejvyšší možnou hustotu.
  4. Počet pracovníků lze konfigurovat nezávisle pro každou aplikaci, aby podle potřeby bylo možné přidělovat další prostředky. Například:

    • Aplikace s vysokým využitím může nastavit numberOfWorkers na hodnotu 3 , aby měla větší kapacitu zpracování pro danou aplikaci.
    • Aplikace s nízkým využitím by nastavily numberOfWorkers na 1.