Freigeben über


Hosting mit hoher Dichte mithilfe der Skalierung pro App

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Sie können Ihre Azure App Service-Apps skalieren, indem Sie den App Service-Plan skalieren, auf dem sie ausgeführt werden. Wenn mehrere Apps im selben App Service-Plan ausgeführt werden, führt jede skalierte Instanz alle Apps im Plan aus.

Im Gegensatz dazu kann die Skalierung pro App auf App Service-Planebene aktiviert werden, um eine App unabhängig vom App Service-Plan zu skalieren, der sie hosten soll. Auf diese Weise kann ein App Service-Plan auf 10 Instanzen skaliert werden, eine App kann jedoch nur fünf verwenden.

Hinweis

Die Skalierung pro App ist nur für Standard-, Premium-, Premium V2-, Premium V3- und Isolierte Preisstufen verfügbar.

Apps werden dem verfügbaren App Service-Plan zugewiesen, indem sie einen Best-Effort-Ansatz für eine gleichmäßige Verteilung über Instanzen hinweg verwenden. Während eine gleichmäßige Verteilung nicht garantiert ist, stellt die Plattform sicher, dass zwei Instanzen derselben App nicht in derselben App-Planinstanz gehostet werden.

Die Plattform basiert nicht auf Metriken, um die Arbeitszuweisung zu entscheiden. Anwendungen werden nur dann neu ausgeglichen, wenn Instanzen aus dem App Service-Plan hinzugefügt oder entfernt werden.

Skalierung pro App mithilfe von PowerShell

Erstellen Sie einen Plan mit App-Skalierung, indem Sie den -PerSiteScaling $true Parameter an das New-AzAppServicePlan Cmdlet übergeben.

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

Aktivieren Sie die Skalierung pro App mit einem vorhandenen App-Serviceplan, indem Sie den -PerSiteScaling $true Parameter an das Set-AzAppServicePlan Cmdlet übergeben.

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

Konfigurieren Sie auf App-Ebene die Anzahl der Instanzen, die die App im App Service-Plan verwenden kann.

Im folgenden Beispiel ist die App auf zwei Instanzen beschränkt, und zwar unabhängig davon, auf wie viele Instanzen der zugrunde liegenden App Service-Plan horizontal hochskaliert wird.

# 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

Von Bedeutung

$newapp.SiteConfig.NumberOfWorkers unterscheidet sich von $newapp.MaxNumberOfWorkers. Die Skalierung pro App verwendet $newapp.SiteConfig.NumberOfWorkers, um die Skalierungsmerkmale der App zu bestimmen.

Skalierung pro App mit Azure Resource Manager

Diese Azure Resource Manager-Vorlage erstellt Folgendes:

  • Ein App Service-Plan, der auf 10 Instanzen skaliert wird.
  • Eine App, die so konfiguriert ist, dass sie auf maximal fünf Instanzen skaliert wird.

Der App Service-Plan legt die PerSiteScaling Eigenschaft auf "true" fest "perSiteScaling": true. Die App legt die number of workers fest, um auf 5 "properties": { "numberOfWorkers": "5" } zu verwenden.

{
    "$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" }
            } ]
        }]
}

Die Skalierung pro App ist ein Feature, das sowohl in globalen Azure-Regionen als auch in App-Dienstumgebungen aktiviert ist. Die empfohlene Strategie besteht jedoch darin, App-Dienstumgebungen zu verwenden, um ihre erweiterten Features und die größere Kapazität des App Service-Plans zu nutzen.

Führen Sie die folgenden Schritte aus, um das Hosting mit hoher Dichte für Ihre Apps zu konfigurieren:

  1. Legen Sie einen App Service-Plan als Hochdichteplan fest, und skalieren Sie ihn auf die gewünschte Kapazität.

  2. Legen Sie die PerSiteScaling Kennzeichnung im App Service-Plan auf "true" fest.

  3. Neue Apps werden erstellt und diesem App Service-Plan zugewiesen, wobei die numberOfWorkers Eigenschaft auf 1 festgelegt ist.

    • Die Verwendung dieser Konfiguration ermöglicht die höchste Dichte.
  4. Die Anzahl der Mitarbeiter kann unabhängig pro App konfiguriert werden, um bei Bedarf zusätzliche Ressourcen zu gewähren. Beispiel:

    • Eine vielgenutzte App kann numberOfWorkers auf 3 festlegen, um mehr Verarbeitungskapazität für diese App zu haben.
    • Apps mit niedriger Verwendung würden numberOfWorkers auf 1 setzen.