Share via


High-densityhosting op Azure-app Service met behulp van schalen per app

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Wanneer u App Service gebruikt, kunt u uw apps schalen door het App Service-plan te schalen waarop ze worden uitgevoerd. Wanneer meerdere apps worden uitgevoerd in hetzelfde App Service-plan, worden in elk uitgeschaald exemplaar alle apps in het plan uitgevoerd.

Schaalaanpassing per app kan worden ingeschakeld op het niveau van het App Service-plan, zodat een app onafhankelijk van het App Service-plan dat als host fungeert voor een app kan worden geschaald. Op deze manier kan een App Service-plan worden geschaald naar 10 exemplaren, maar een app kan worden ingesteld op slechts vijf.

Notitie

Schaalaanpassing per app is alleen beschikbaar voor de prijscategorieën Standard, Premium, Premium V2, Premium V3 en Isolated .

Apps worden toegewezen aan het beschikbare App Service-plan met behulp van een best effort-benadering voor een gelijkmatige distributie tussen exemplaren. Hoewel een gelijkmatige distributie niet gegarandeerd is, zorgt het platform ervoor dat twee exemplaren van dezelfde app niet worden gehost op hetzelfde App Service-planexemplaren.

Het platform is niet afhankelijk van metrische gegevens om te beslissen over werkroltoewijzing. Toepassingen worden alleen opnieuw in evenwicht gebracht wanneer exemplaren worden toegevoegd aan of verwijderd uit het App Service-plan.

Schalen per app met behulp van PowerShell

Maak een plan met schaalaanpassing per app door de -PerSiteScaling $true parameter door te geven aan de New-AzAppServicePlan cmdlet.

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

Schakel schalen per app in met een bestaand App Service-plan door de -PerSiteScaling $true parameter door te geven aan de Set-AzAppServicePlan cmdlet.

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

Configureer op app-niveau het aantal exemplaren dat de app kan gebruiken in het App Service-plan.

In het onderstaande voorbeeld is de app beperkt tot twee exemplaren, ongeacht het aantal exemplaren dat het onderliggende App Service-plan uitschaalt.

# 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

Belangrijk

$newapp.SiteConfig.NumberOfWorkers verschilt van $newapp.MaxNumberOfWorkers. Schaalaanpassing per app gebruikt $newapp.SiteConfig.NumberOfWorkers om de schaalkenmerken van de app te bepalen.

Schalen per app met behulp van Azure Resource Manager

Met de volgende Azure Resource Manager-sjabloon maakt u het volgende:

  • Een App Service-plan dat is uitgeschaald naar 10 exemplaren
  • een app die is geconfigureerd om te schalen naar maximaal vijf exemplaren.

Het App Service-plan stelt de eigenschap PerSiteScaling in op true "perSiteScaling": true. De app stelt het aantal werkrollen in op 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" }
            } ]
        }]
}

Schalen per app is een functie die is ingeschakeld in zowel globale Azure-regio's als App Service-omgevingen. De aanbevolen strategie is echter om App Service Environments te gebruiken om te profiteren van hun geavanceerde functies en de grotere Capaciteit van het App Service-plan.

Volg deze stappen om high-densityhosting voor uw apps te configureren:

  1. Wijs een App Service-plan aan als het high-densityplan en schaal het uit naar de gewenste capaciteit.
  2. Stel de PerSiteScaling vlag in op true in het App Service-plan.
  3. Er worden nieuwe apps gemaakt en toegewezen aan dat App Service-plan, waarbij de eigenschap numberOfWorkers is ingesteld op 1.
    • Het gebruik van deze configuratie levert de hoogst mogelijke dichtheid op.
  4. Het aantal werkrollen kan onafhankelijk per app worden geconfigureerd om zo nodig extra resources te verlenen. Bijvoorbeeld:
    • Een app met hoog gebruik kan numberOfWorkers instellen op 3 om meer verwerkingscapaciteit voor die app te hebben.
    • Apps met weinig gebruik stellen numberOfWorkers in op 1.

Volgende stappen