Explanation
Why the waste happens and who it affects.
There they are billed at full rates, including the Windows Server and SQL Server license portion of every VM hour and full pay-as-you-go rates for Azure SQL Database and App Service. The subscription offer, not the resource, determines these rates, so the waste is invisible in resource-level reviews.
Azure Dev/Test pricing, available through Enterprise Dev/Test (EA), Azure Plan for Dev/Test (MCA) and Pay-As-You-Go Dev/Test subscriptions, gives discounted rates on selected services for non-production use by active Visual Studio subscribers. Organizations that already own Visual Studio subscriptions but never set up Dev/Test subscriptions, or that let teams create non-production environments wherever they like, keep paying production rates for workloads that qualify for the discount.
Billing model
The pricing dimensions that drive this cost.
Dev/Test rates are applied by subscription offer, and only to selected services.
- Windows and SQL Server VMs
- Windows VMs, BizTalk VMs and SQL Server Enterprise, Standard and Web VMs in a Dev/Test subscription are billed at CentOS/Ubuntu Linux VM rates
- PaaS discounts
- Azure SQL Database (savings up to 55 percent), App Service Basic, Standard, Premium v2 and Premium v3, Logic Apps Enterprise Connector, Cloud Services and HDInsight have discounted Dev/Test rates
- Eligibility
- Requires active Visual Studio Standard subscriptions (not monthly cloud subscriptions); Visual Studio subscriptions bought through the CSP channel don't qualify
- Usage restriction
- Resources in Dev/Test subscriptions may be used only for development and testing, and they carry no SLA except for Azure DevOps and Azure Monitor
How to detect
4 checks to find it in your estate.
- List subscriptions with their offer or quotaId (properties.subscriptionPolicies.quotaId in Azure Resource Graph resourcecontainers); Microsoft's FinOps compute queries treat quotaId MSDNDevTest_2014-09-01 as a Dev/Test subscription that already has discounted licensing
- Find non-production workloads (by tag, naming, management group or resource group) that run in subscriptions on production offers rather than a Dev/Test offer
- Quantify the Windows Server and SQL Server license portion of those VMs by comparing their rates with the Linux rate for the same size, and total Azure SQL Database and App Service spend in the same subscriptions
- Confirm that the developers and testers who use those environments hold active Visual Studio Standard subscriptions that were not purchased through the CSP channel, and that the billing agreement supports a Dev/Test offer (Enterprise Dev/Test, Azure Plan for Dev/Test or Pay-As-You-Go Dev/Test)
How to fix
5 ways to remove the waste.
- Create Enterprise Dev/Test subscriptions (EA account owners) or Azure Plan for Dev/Test subscriptions (MCA) for non-production environments
- Move eligible non-production resources into the Dev/Test subscriptions with the Azure Resource Manager move operation where the resource type supports it, or redeploy them from infrastructure as code
- Place Dev/Test subscriptions under a dedicated management group and use Azure Policy or subscription vending so new non-production environments land there by default
- Keep production and anything needing an SLA out of Dev/Test subscriptions, and keep Azure Hybrid Benefit for production workloads, which Microsoft says can be combined with Dev/Test pricing across the estate
- Re-check eligibility when Visual Studio subscriptions are reassigned or lapse, since the discounted rates continue only while the subscription is maintained
Documentation
Vendor references for pricing and configuration.