Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Puede escalar las aplicaciones de Azure App Service mediante el escalado del plan de App Service en el que se ejecutan. Cuando varias aplicaciones se ejecutan en el mismo plan de App Service, cada instancia escalada ejecuta todas las aplicaciones del plan.
En cambio, el escalado por aplicación se puede habilitar en el nivel de plan de App Service para escalar una aplicación independientemente del plan de App Service que lo hospeda. De este modo, un plan de App Service se puede escalar a 10 instancias, pero una aplicación se puede establecer para usar solo cinco.
Nota:
El escalado por aplicación solo está disponible para los planes de tarifa Estándar, Premium, Premium V2, Premium V3 y Aislado .
Las aplicaciones se asignan al plan de App Service disponible mediante un enfoque de mejor esfuerzo para una distribución uniforme entre instancias. Aunque no se garantiza una distribución uniforme, la plataforma garantiza que dos instancias de la misma aplicación no estén hospedadas en la misma instancia del plan de App Service.
La plataforma no depende de las métricas para decidir la asignación de trabajo. Las aplicaciones solo se reequilibran cuando se agregan o quitan instancias del plan de App Service.
Escalado por aplicación mediante PowerShell
Cree un plan con escalado por aplicación pasando el -PerSiteScaling $true parámetro al New-AzAppServicePlan cmdlet .
New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
-Location $Location `
-Tier Premium -WorkerSize Small `
-NumberofWorkers 5 -PerSiteScaling $true
Habilitar el escalado por aplicación con un plan de App Service existente pasando el parámetro -PerSiteScaling $true al cmdlet Set-AzAppServicePlan.
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
-Name $AppServicePlan -PerSiteScaling $true
En el nivel de aplicación, configure el número de instancias que la aplicación puede usar en el plan de App Service.
En el ejemplo siguiente, la aplicación se limita a dos instancias, independientemente de la cantidad de instancias a las que se escala horizontalmente el plan de App Service subyacente.
# 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 es diferente de $newapp.MaxNumberOfWorkers. El escalado por aplicación usa $newapp.SiteConfig.NumberOfWorkers para determinar las características de escala de la aplicación.
Escalado por aplicación mediante Azure Resource Manager
La siguiente plantilla de Azure Resource Manager crea:
- Un plan de App Service que se escala horizontalmente a 10 instancias.
- Una aplicación configurada para escalar a un máximo de cinco instancias.
El plan de App Service establece la propiedad PerSiteScaling en true "perSiteScaling": true. La aplicación establece el valor de number of workers que se va a usar en 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" }
} ]
}]
}
Configuración recomendada para hospedaje de alta densidad
El escalado por aplicación es una característica que está habilitada tanto en regiones globales de Azure como en Entornos de App Service. Sin embargo, la estrategia recomendada es usar App Service Environments para aprovechar sus características avanzadas y la mayor capacidad del plan de App Service.
Siga estos pasos para configurar el hospedaje de alta densidad para las aplicaciones:
Designe un plan de App Service como plan de alta densidad y escálelo horizontalmente a la capacidad deseada.
Establezca la marca
PerSiteScalingen true en el plan de App Service.Las nuevas aplicaciones se crean y se asignan a ese App Service plan con la
numberOfWorkerspropiedad configurada en 1.- El uso de esta configuración produce la mayor densidad posible.
El número de trabajadores se puede configurar de forma independiente para cada aplicación para conceder recursos adicionales según sea necesario. Por ejemplo:
- Una aplicación de uso elevado puede establecer
numberOfWorkersen 3 para tener más capacidad de procesamiento para esa aplicación. - Las aplicaciones de bajo uso se establecerían
numberOfWorkersen 1.
- Una aplicación de uso elevado puede establecer