-->
Azure Cloud Service Deployment Slots Free
One great feature of Azure Web Apps is deployment slots. I recently had an excellent use case for them as a small startup I'm working with is trying out ASP.NET MVC. In the process, we learned how effectively deployment slots allowed their team to work on the project commit code, test it against a test DB as if in production, then quickly. Also, Service Fabric only provides the capability to run applications. It doesn't provide features like authentication and deployment slots, like Azure App Services does. You can run the Service Fabric framework anywhere. On-premises, on your own computer, in Azure or in another cloud. It is not Azure specific. Virtual Machines. You can directly deploy to the production slot of a Azure Cloud Service. If you have more than one role instance (you are running multiple role instances to get the stated SLA right?), Azure will automatically upgrade each role instance independently of one another.
This article includes frequently asked questions about deployment issues for Microsoft Azure Cloud Services. You can also consult the Cloud Services VM Size page for size information.
If your Azure issue is not addressed in this article, visit the Azure forums on MSDN and Stack Overflow. You can post your issue in these forums, or post to @AzureSupport on Twitter. You also can submit an Azure support request. To submit a support request, on the Azure support page, select Get support.
Why does deploying a cloud service to the staging slot sometimes fail with a resource allocation error if there is already an existing deployment in the production slot?
If a cloud service has a deployment in either slot, the entire cloud service is pinned to a specific cluster. This means that if a deployment already exists in the production slot, a new staging deployment can only be allocated in the same cluster as the production slot.
Allocation failures occur when the cluster where your cloud service is located does not have enough physical compute resources to satisfy your deployment request.
For help with mitigating such allocation failures, see Cloud Service allocation failure: Solutions.
Why does scaling up or scaling out a cloud service deployment sometimes result in allocation failure?
When a cloud service is deployed, it usually gets pinned to a specific cluster. This means scaling up/out an existing cloud service must allocate new instances in the same cluster. If the cluster is nearing capacity or the desired VM size/type is not available, the request may fail.
For help with mitigating such allocation failures, see Cloud Service allocation failure: Solutions.
Why does deploying a cloud service into an affinity group sometimes result in allocation failure?
A new deployment to an empty cloud service can be allocated by the fabric in any cluster in that region, unless the cloud service is pinned to an affinity group. Deployments to the same affinity group will be attempted on the same cluster. If the cluster is nearing capacity, the request may fail.
For help with mitigating such allocation failures, see Cloud Service allocation failure: Solutions.
Why does changing VM size or adding a new VM to an existing cloud service sometimes result in allocation failure?
The clusters in a datacenter may have different configurations of machine types (for example, A series, Av2 series, D series, Dv2 series, G series, H series, etc.). But not all the clusters would necessarily have all the kinds of VMs. For example, if you try to add a D series VM to a cloud service that is already deployed in an A series-only cluster, you will experience an allocation failure. This will also happen if you try to change VM SKU sizes (for example, switching from an A series to a D series).
For help with mitigating such allocation failures, see Cloud Service allocation failure: Solutions.
To check the sizes available in your region, see Microsoft Azure: Products available by region.
Why does deploying a cloud service sometime fail due to limits/quotas/constraints on my subscription or service?
Deployment of a cloud service may fail if the resources that are required to be allocated exceed the default or maximum quota allowed for your service at the region/datacenter level. For more information, see Cloud Services limits.
You could also track the current usage/quota for your subscription at the portal: Azure portal => Subscriptions => => 'Usage + quota'.
Resource usage/consumption-related information can also be retrieved via the Azure Billing APIs. See Azure Resource Usage API (Preview).
How can I change the size of a deployed cloud service VM without redeploying it?
You cannot change the VM size of a deployed cloud service without redeploying it. The VM size is built into the CSDEF, which can only be updated with a redeploy.
For more information, see How to update a cloud service.
Azure Cloud Service Deployment Slots Download
Why am I not able to deploy Cloud Services through Service Management APIs or PowerShell when using Azure Resource Manager Storage account?
Since the Cloud Service is a Classic resource that is not directly compatible with the Azure Resource Manager model, you can't associate it with the Azure Resource Manager Storage accounts. Here are few options:
Azure Cloud Service Deployment Slots Online
Deploying through REST API.
When you deploy through Service Management REST API, you could get around the limitation by specifying a SAS URL to the blob storage, which will work with both Classic and Azure Resource Manager Storage account. Read more about the 'PackageUrl' property here.
Deploying through Azure portal.
This will work from the Azure portal as the call goes through a proxy/shim that allows communication between Azure Resource Manager and Classic resources.
Why does Azure portal require me to provide a storage account for deployment?
In the classic portal, the package was uploaded to the management API layer directly, and then the API layer would temporarily put the package into an internal storage account. This process causes performance and scalability problems because the API layer was not designed to be a file upload service. In the Azure portal (Resource Manager deployment model), we have bypassed the interim step of first uploading to the API layer, resulting in faster and more reliable deployments.
For help with mitigating such allocation failures, see Cloud Service allocation failure: Solutions.
To check the sizes available in your region, see Microsoft Azure: Products available by region.
Why does deploying a cloud service sometime fail due to limits/quotas/constraints on my subscription or service?
Deployment of a cloud service may fail if the resources that are required to be allocated exceed the default or maximum quota allowed for your service at the region/datacenter level. For more information, see Cloud Services limits.
You could also track the current usage/quota for your subscription at the portal: Azure portal => Subscriptions => => 'Usage + quota'.
Resource usage/consumption-related information can also be retrieved via the Azure Billing APIs. See Azure Resource Usage API (Preview).
How can I change the size of a deployed cloud service VM without redeploying it?
You cannot change the VM size of a deployed cloud service without redeploying it. The VM size is built into the CSDEF, which can only be updated with a redeploy.
For more information, see How to update a cloud service.
Azure Cloud Service Deployment Slots Download
Why am I not able to deploy Cloud Services through Service Management APIs or PowerShell when using Azure Resource Manager Storage account?
Since the Cloud Service is a Classic resource that is not directly compatible with the Azure Resource Manager model, you can't associate it with the Azure Resource Manager Storage accounts. Here are few options:
Azure Cloud Service Deployment Slots Online
Deploying through REST API.
When you deploy through Service Management REST API, you could get around the limitation by specifying a SAS URL to the blob storage, which will work with both Classic and Azure Resource Manager Storage account. Read more about the 'PackageUrl' property here.
Deploying through Azure portal.
This will work from the Azure portal as the call goes through a proxy/shim that allows communication between Azure Resource Manager and Classic resources.
Why does Azure portal require me to provide a storage account for deployment?
In the classic portal, the package was uploaded to the management API layer directly, and then the API layer would temporarily put the package into an internal storage account. This process causes performance and scalability problems because the API layer was not designed to be a file upload service. In the Azure portal (Resource Manager deployment model), we have bypassed the interim step of first uploading to the API layer, resulting in faster and more reliable deployments.
Azure Cloud Service Deployment Slots Software
As for the cost, it is very small and you can reuse the same storage account across all deployments. You can use the storage cost calculator to determine the cost to upload the service package (CSPKG), download the CSPKG, then delete the CSPKG.