Alojamento de alta densidade em Serviço de Aplicações do Azure através do dimensionamento por aplicação

Nota

Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Ao utilizar Serviço de Aplicações, pode dimensionar as suas aplicações ao dimensionar a Serviço de Aplicações plano em que são executadas. Quando várias aplicações estão em execução no mesmo plano de Serviço de Aplicações, cada instância de escalamento horizontal executa todas as aplicações no plano.

O dimensionamento por aplicação pode ser ativado ao nível do plano Serviço de Aplicações para permitir o dimensionamento de uma aplicação de forma independente do plano de Serviço de Aplicações que aloja. Desta forma, um plano de Serviço de Aplicações pode ser dimensionado para 10 instâncias, mas uma aplicação pode ser definida para utilizar apenas cinco.

Nota

O dimensionamento por aplicação está disponível apenas para os escalões de preço Standard, Premium, Premium V2, Premium V3 e Isolado .

As aplicações são alocadas ao plano de Serviço de Aplicações disponível através de uma abordagem de melhor esforço para uma distribuição uniforme entre instâncias. Embora não seja garantida uma distribuição uniforme, a plataforma irá certificar-se de que duas instâncias da mesma aplicação não serão alojadas na mesma Serviço de Aplicações instância do plano.

A plataforma não depende de métricas para decidir sobre a alocação de trabalho. As aplicações são reequilibradas apenas quando as instâncias são adicionadas ou removidas do plano de Serviço de Aplicações.

Dimensionamento por aplicação com o PowerShell

Crie um plano com o dimensionamento por aplicação ao transmitir o -PerSiteScaling $true parâmetro para o New-AzAppServicePlan cmdlet .

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

Ative o dimensionamento por aplicação com um Plano de Serviço de Aplicações existente ao transmitir o -PerSiteScaling $true parâmetro para o Set-AzAppServicePlan cmdlet .

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

Ao nível da aplicação, configure o número de instâncias que a aplicação pode utilizar no plano de Serviço de Aplicações.

No exemplo abaixo, a aplicação está limitada a duas instâncias, independentemente do número de instâncias para as quais o plano do serviço de aplicações subjacente é aumentado horizontalmente.

# 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

Importante

$newapp.SiteConfig.NumberOfWorkers é diferente de $newapp.MaxNumberOfWorkers. O dimensionamento por aplicação utiliza $newapp.SiteConfig.NumberOfWorkers para determinar as características de dimensionamento da aplicação.

Dimensionamento por aplicação com o Azure Resource Manager

O seguinte modelo de Resource Manager do Azure cria:

  • Um plano de Serviço de Aplicações aumentado horizontalmente para 10 instâncias
  • uma aplicação configurada para dimensionar para um máximo de cinco instâncias.

O plano Serviço de Aplicações está a definir a propriedade PerSiteScaling como true "perSiteScaling": true. A aplicação está a definir o número de trabalhadores a utilizar como 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" }
            } ]
        }]
}

O dimensionamento por aplicação é uma funcionalidade que está ativada tanto nas regiões globais do Azure como nos Ambientes de Serviço de Aplicações. No entanto, a estratégia recomendada é utilizar ambientes de Serviço de Aplicações para tirar partido das suas funcionalidades avançadas e da capacidade de plano de Serviço de Aplicações maior.

Siga estes passos para configurar o alojamento de alta densidade para as suas aplicações:

  1. Designe um plano de Serviço de Aplicações como o plano de alta densidade e aumente horizontalmente para a capacidade pretendida.
  2. Defina o PerSiteScaling sinalizador como verdadeiro no plano de Serviço de Aplicações.
  3. São criadas e atribuídas novas aplicações a esse plano de Serviço de Aplicações com a propriedade numberOfWorkers definida como 1.
    • A utilização desta configuração gera a maior densidade possível.
  4. O número de trabalhadores pode ser configurado de forma independente por aplicação para conceder recursos adicionais conforme necessário. Por exemplo:
    • Uma aplicação de utilização elevada pode definir numberOfWorkers como 3 para ter mais capacidade de processamento para essa aplicação.
    • As aplicações de baixa utilização definiriam numberOfWorkers como 1.

Passos seguintes