The Azure Stack have several Resource Providers that can be utilized to bring value to the stack.
We have an Azure Stack in the company and have had an early adopter experience. To make the most of our testing and offering we added App Service, MySQL, SQL RP´s after deployment.
In our multi-tenant usage registered Stack we noticed on our own bill that it was a bit high $$ and realized that it was the shared workers that was behind this, during a couple of Azure Stack work shops we had scaled it to 12 instances for labs. The shared workers are billed to the registration CSP-subscription, the dedicated are billed to the customers subscriptions when they are in use in an app plan but you as a stack provider can have several of them running and prepared without any extra cost.
If you want to add or remove worker instances this can be mitigated with PowerShell or through the portal:
Login-AzureRmAccount -EnvironmentName AzureStackAdmin
$AppServiceResourceGroupName = "AppService-infra"
$ScaleSetName = "SharedWorkerTierScaleSet"
$TotalCapacity = 2
$vmss = Get-AzureRmVmss -ResourceGroupName $AppServiceResourceGroupName -VMScaleSetName $ScaleSetName
$vmss.sku.capacity = $TotalCapacity
Update-AzureRmVmss -ResourceGroupName $AppServiceResourceGroupName -Name $ScaleSetName -VirtualMachineScaleSet $vmss
There are some caviats about this and that can be read in the app service documentation, if you want to give the user subscriptions access to serverless functions on a consumption plan you have to have enough shared workers available…. read more here
Carefully monitor the capacity and usage of your add-on RP´s so the experience for the customer always is great!