Hostování s vysokou hustotou ve službě Aplikace Azure Service s využitím škálování jednotlivých aplikací
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. 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.
Při použití služby App Service můžete škálovat aplikace škálováním plánu služby App Service, na který běží. Pokud je ve stejném plánu služby App Service spuštěno více aplikací, každá instance horizontálního navýšení kapacity spustí všechny aplikace v plánu.
Škálování jednotlivých aplikací je možné povolit na úrovni plánu služby App Service, aby bylo možné aplikaci š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 s využitím přístupu s nejlepším úsilím pro rovnoměrnou distribuci napříč instancemi. I když není zaručená rovnoměrná distribuce, platforma zajistí, že dvě instance stejné aplikace nebudou hostovány ve stejné instanci plánu služby App Service.
Platforma nespoléhá na metriky při rozhodování o přidělování pracovních procesů. 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í jednotlivých aplikací 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
.
# Enable per-app scaling for the App Service Plan using the "PerSiteScaling" parameter.
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 vlastnost PerSiteScaling na hodnotu true "perSiteScaling": true
. Aplikace nastavuje počet pracovních procesů na hodnotu 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" }
} ]
}]
}
Doporučená konfigurace pro hostování s vysokou hustotou
Škálování jednotlivých aplikací je funkce, která je povolená v globálních oblastech Azure i ve službě 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:
- Označte plán služby App Service jako plán s vysokou hustotou a škálujte ho na požadovanou kapacitu.
PerSiteScaling
Nastavte příznak na true v plánu služby App Service.- Nové aplikace se vytvoří a přiřadí k ho plánu služby App Service s vlastností numberOfWorkers nastavenou na hodnotu 1.
- Použití této konfigurace přináší nejvyšší možnou hustotu.
- Počet pracovních procesů je možné nakonfigurovat nezávisle na aplikaci tak, aby podle potřeby uděloval další prostředky. Příklad:
- Aplikace s vysokým využitím může nastavit početOfWorkers na 3 , aby měla větší kapacitu zpracování pro danou aplikaci.
- Aplikace s nízkým využitím by nastavily početOfWorkers na 1.