For an MSP building a cloud practice in Azure, one of the most important considerations is to understand how to transact in Azure. This includes becoming familiar with the various types of Azure resources and how they work, how each type of resource is billed, how to architect an Azure IT environment, and most importantly how to make money.
Azure is a public cloud with publicly listed prices. Any customer can go to azure.com and look up the price of VMs, storage, and networking. It will not be as easy or straightforward as you may think because of the complexity and vast number of options--but the prices are public. It is important to keep this in mind when creating an Azure offer, customer proposals, and quotes.
Two common approaches to creating an Azure offer are bundling and resale. Some MSPs prefer to provide their customers with an all-in IT solution that includes infrastructure running in Azure, software licensing, and managed services – all for a predictable monthly price on a per-user, per-device basis--or some other unit of value. Other MSPs bundle their managed services and resell Azure infrastructure separately from the managed services agreement.
Why would a customer choose to buy Azure through an MSP rather than directly from Microsoft if the price is the same? First, the MSP is an Azure expert and can guide the customer towards the most efficient use of the cloud. By purchasing Azure through the CSP program, the MSP maintains management capabilities on the Azure subscription to quickly resolve issues for the customer. Most importantly, MSPs have access to Microsoft support resources, which can be instrumental in quickly addressing issues; a benefit the customer cannot receive without paying extra. For these reasons, most customers will choose to purchase Azure through their MSP.
In terms of the MSP’s offer of cloud services to their end customer, optimizing the cost of Azure infrastructure will have significant impact on the MSP’s gross margins and it is therefore important to spend some time understanding the levers that are available to optimize Azure costs and increase your margins.
There are many levers available to reduce Azure costs drastically relative to list prices. We’re not talking here about 5%-10% points but high double-digit numbers, in some cases. Here, we will review the top five levers that can make the most difference in driving MSP profitability. These five will take you most of the way towards really making money offering and reselling Azure as a core part of your cloud practice.
In this article, we will focus on levers that reduce Azure infrastructure costs—but there is another important contributor to optimizing cost and MSP needs to keep in mind: the human capital costs of quoting, deploying, managing, and optimizing each customer’s Azure environment which can be quite significant and, in some cases, exceed the costs of the infrastructure. We will focus on strategies to drastically reduce these labor costs in future articles.
Margin impact: Increase of 10%-20% margin of total Azure consumption
This one is somewhat of a no-brainer. Not only will it be easier to transact Azure (i.e., create customer subscriptions), it will also allow you to increase your margin by receiving a discount off Azure list prices via your CSP Provider. You will also be eligible for various incentives that Microsoft makes available to their CSPs based on their growth objectives. These incentives are incremental to the discount you’ll receive on Azure consumption and can be in the 10% range, or more, when added up.
There are two types of CSPs: Direct CSPs and CSP Resellers. Direct CSPs purchase Azure directly from Microsoft but are required to maintain high consumption volume and need to overcome many qualification hurdles. CSP Resellers purchase Azure through an Indirect CSP Provider.
These CSP providers are large distributors that help CSP Resellers understand Azure, its pricing, and billing. Any MSP can become a CSP Reseller without any volume commitments or hurdles.
Reach out to your favorite IT distributor and ask them to become a CSP Reseller or visit Microsoft's website for more detailed information.
Direct CSPs and CSP Resellers are eligible for the following benefits:
- Azure consumption discounts: 7%-15%
- Azure Reserved Instances (more on this below) discounts: 1%-5%
- CSP Software Subscriptions (more on this below) discounts: 5%-15%
- Office 365, Dynamics 365, and Microsoft 365 discounts: 10% - 20%
- Local, regional, and other accelerators (i.e. rebates): these vary by year and Microsoft priorities. Some are available to Direct CSPs only.
There are many more reasons to take advantage of the CSP program and increase your margins by 10% to 20% on Azure consumption.
This Nerdio webinar contains a section that delves into details of Microsoft’s incentives, rebates and discounts: Everything Azure for MSP’s
Margin impact: increase of 20%-57% margin on Azure Compute consumption
The cost of Virtual Machines (VMs) in Azure is the single biggest component of a typical MSP’s IT environment. Therefore, focusing on reducing this large consumption component is where we’ll start. The savings are significant but carry a bit of complexity and need for up-front planning to take advantage of them.
Microsoft’s hyper-scale data center strategy has allowed the company to deploy many global regions (54 as of this writing) at a great cost to the company. As Azure adoption continues to rapidly grow, Microsoft needs to forecast demand in the various regions, which is far from trivial since public cloud is primarily advertised as a pay-as-you-go utility where you could run a VM one day and turn it off the next. To help with this forecasting challenge and to reward customers who are willing to commit to a certain amount of compute capacity in a specific region for an extended period, Microsoft introduced Reserved Instances (RIs). These RIs can save you from 20% to 57% relative to the list Pay-As-You-Go (PAYG) price.
RIs are reservations of a specific type of compute capacity (i.e., VM family/series) in a specific geographic location (i.e., Azure region) for a predefined period (12 or 36 months). Depending on the VM family, duration of the reservation, and region, these RIs can save you from 20% to 57% relative to the list Pay-As-You-Go (PAYG) price. The trade-off is that you have to commit to the reservation in advance for an extended period of time -- 12 or 36 months. This is great news for MSPs because typical IT workloads they deploy in Azure on behalf of their customers are persistent and customers are generally open to making one or three-year commitments. No customer wants to move an IT environment from one cloud to another every month!
Let’s explore how these RIs work.
When you provision a VM in Azure, two billing meters start running: base compute and Windows Server license. The published PAYG rate includes both of these components and every plain, vanilla VM you power on will bill you for both. RIs stop the base compute meter.
RIs are purchased with a lump sum payment via the CSP program or via a monthly payment via the Azure portal and are applied to your tenant or subscription. Any VM running inside of that subscription that “matches” the RI will have its base compute rate zeroed out on the next invoice.Remember that RIs are purchased on a per-VM-family, per-region basis. This means that it will only match to a VM or set of VMs if they are of the same family and in the same region as the RI.
With Instance Size Flexibility, Microsoft will automatically apply any reservations in the most advantageous way to reduce the bill – if the VMs are running in the same region and have the same family as the RI. For instance, a reservation for a D4sv3 VM will be applied to a D4sv3 VM or two D2sv3 VMs. Examples of VM families include Ds, B, Es, NV and others. Keep in mind that RIs are a billing concept. There is nothing that needs to be done on the VM itself to stop its base compute meter and utilize the reservation. Azure does that automatically upon issuance of the invoice.
What if you need to change your reservation from one VM family to another or move your VMs to another Azure region?
No problem! RIs can be exchanged without any fees or penalties. Any unused portion of an RI will be applied as a credit towards the purchase of a new RI for a different family, in a different region, or both. For instance, imagine you bought a reservation for D4sv3 for 12 months, paid upfront, and used it for three months and now need to upgrade this VM to E4sv3 to get more RAM. You’ll get a credit for 75% of your purchase price of the D3sv3 VM towards the purchase of a new E4sv3 VM. Keep in mind that you can only buy RIs in 12- or 36-month increments so you’re effectively extending your reservation by three months (15 months instead of the original 12).
What if you need to cancel a reservation?
This is also possible, but there is a cancellation fee. The cancellation fee is 12% of your purchase price. The unused portion of your reservation will be refunded to you minus the 12% cancellation fee. There are some limitations to this on an annual basis. For example, your cancellations cannot exceed $50,000 in a year. Cancellation fees apply to both upfront paid reservations and those that are paid for on a monthly basis. This is because a reservation is a contractual commitment to Microsoft to pay for the entire reservation erm even id you're paying for it monthly.
Let’s stop and think about this for a minute from the perspective of an MSP. The worst-case scenario is a 12% cancellation fee on a reserved instance of a VM they may no longer need in the future. However, the savings are anywhere from 20% to 57%. Therefore, cash flow considerations aside (more on that later), it makes sense to reserve all VMs even if they may need to be exchanged (no fee) or cancelled later (12% fee).
What about an MSP who wants to re-assign a reservation from one customer to another?
Imagine you sign up a new customer who wants to be migrated to Azure. They sign up for a three-year managed service agreement and you purchase three-year RIs for their VMs to really maximize your margin. After six months, the customer gets acquired and the new parent company has a large IT department with their own Azure deployment, and they decide to terminate your managed services agreement. You’re now stuck holding a bunch of three-year (30 months now) reservations that you already paid for or that you're committed to continue paying for monthly until the end of the term. What should you do?
The good news is that even if you will end up having to cancel a customer’s subscription, you will only pay 12% on the remaining balance as a penalty. In almost all circumstances, this is still significantly less than you would have paid had you not reserved the compute capacity and instead relied on pay-as-you-go pricing. Let’s look at an example:
You sign a three-year contract with a new customer and provide them with a B2ms VM. Six months into the contract the customer goes out of business.
- Pay-as-you-go option: You spin up the B2ms VM and run it for six months at $79/month. Your total cost is $474.
- Three-year reservation: You buy a three-year reservation and pay for it monthly. Your monthly cost is now $33 (58% savings) and you spend a total of $198 for the six months. Now you have to cancel the remainder of the reservation (30 out of 36 months) and pay a cancellation fee of $119 (12% of the remainder). Your total cost is $317, which is 33% cheaper than the pay-as-you-go option even when cancellation fee is taken into account.
- One-year reservation: You buy a one-year reservation for pay for it monthly. Your monthly cost is now $49 (38% savings relative to PAYG) and you spend a total of $294 for the six months. Now you have to cancel the remainder of the reservation (6 out of 12 months) and pay a cancellation fee of $35 (12% of the remainder). Your total cost is $329, which is 31% cheaper than the pay-as-you-go option even when the cancellation fee is taken into account.
As you can see, it’s hard to not be on top no matter which reservation option you choose when comparing to pay-as-you-go pricing options.
What about cashflow?
You may be concerned that having to come up with 36 or even 12 months' worth of Azure VM fees is a burden on your company. Microsoft recently introduced the ability to pay for reservations monthly without any finance charges. This way you’ll get the benefit of the RI discount but keep the cash outlay monthly.
In summary, RIs or reservations are a significant lever to save up to 57% of compute costs, which is the single biggest cost component of an Azure IT environment, and dramatically increase your margins. On top of the inherent savings you get with reservations, you may also get anywhere from a 2%-5% discount as a CSP Direct or CSP Reseller. As you can see, discounts start to stack up and free up margin to be used in better ways.
This Nerdio webinar on the topic delves into details of RIs: Demystifying Azure costs...
Margin impact: Increase of 10% to 49% margin on Azure Compute consumption
People often look at the monthly cost of an Azure VM, multiply it by 36 to get its three-year cost and conclude that it is much more expensive than buying a server. What most don’t realize is that the pay-as-you-you-go list price of a VM includes in it the “premium of optionality” (i.e., you can turn it off at any time and stop paying) and a subscription to the Windows Server operating system. By reserving the base compute and bringing your own license for the operating system, the cost of the VM drops by 80%!
Microsoft has created a special entitlement called Azure Hybrid Usage (AHU) that allows MSPs to pay for Windows Server via another licensing program and not through Azure. AHU is a benefit unique to Azure. You can’t bring your own Windows server license to AWS or GCP, for example. The cost of a VM in other public cloud will include the cost of the license, even if you already own Windows.
AHU can be enabled on a per-VM basis (or on all VMs using an automation platform like Nerdio) in the Azure portal. Turning it on stops the Windows OS billing meter and the cost of the VM becomes lower. How much lower? That depends on the VM family but can be up to half of the VM’s cost.
Let’s explore this in detail.
Remember, the two billing meters that start running whenever a VM is powered on are base compute and Windows OS. Reservations stop the base compute meter and AHU stops the Windows OS meter. So, if you have both an RI for a VM and AHU turned on, the monthly cost of this VM is $0. This doesn’t mean that it’s “free” since you paid for the reservation and Windows license up front. But with the monthly cost being $0, the upfront cost of the reservation and Windows license can be as little as 20% of the total PAYG cost of that VM when spread out over 36 months.
To be entitled to turn AHU on for a VM you need to have the right kind of Windows Server license that has this benefit built-in. The first option is Windows Server licensed via EA or another volume license agreement with active Software Assurance. This is an uncommon scenario for MSPs so we won’t discuss it here.
The second, and more relevant option, is purchasing the Windows Server license via the CSP program. This is known as CSP Software Subscriptions. You can also buy SQL Server and RDS licenses through this program. Let’s see how it works.
A CSP Software Subscription can be purchased via the Microsoft Partner Center (for Direct CSPs) or via a CSP Provider.
Since each license “pack” is for eight CPU cores, you need a single license to cover any VM with up to eight CPU cores (e.g. DS1v2, D2sv3, D8sv3). If a VM has more than eight CPU cores, then you need two or more license packs. So, a 16 core VM will need two license packs and a 20 core VM will need three license packs. Always round up to the closest multiple of eight. Pricing automation tools, like Nerdio’s Cost Estimator, do the math for you so you know exactly how many cores you need to license. When should you use AHU licensed with CSP Software subscriptions? This depends on the VM family and what percentage of the time the VM is running.
Here are some important characteristics of CSP Software Subscriptions:
- License: Windows Server Standard Core (this covers every VM in Azure even if the VM is running Windows Server Datacenter)
- Term: One year or three years (no month-to-month option)
- # of CPU cores per license: Eight (this is important, we’ll see how it applies shortly)
- List price (USD)
- 1-year subscription: $291 ($24.25/month)
- 3-year subscription: $582 ($16.17/month)
- CSP Discounts: up to 15% depending on your CSP Provider and volume
- Cancellation: Full refund within 60 days—no refund after that
As an example, if you run a D8sv3 VM for 790 hours (just over a month) then it’s cheaper to buy a one-year Subscription and use AHU rather than paying for Windows Server via Azure billing meter. If you run the VM for 12 months on a one-year subscription, you’ll save $2,937 as compared to not using Software Subscriptions. Here are some more specific examples:
As you can see, it doesn’t always save you money to use AHU. Specifically, in the case of B-series VMs. However, the savings are quite significant with other VMs types like Dsv3 and Esv3.
In summary, combining RIs with AHU and CSP Software subscriptions can reduce the cost of your VMs up to 5X (80%). It goes without saying that the margin impact to an MSP from such significant cost reductions cannot be overlooked. As with RIs, some planning, budgeting, and cash flow considerations must be evaluated. However, if building a scalable Azure practice is your goal then it is worthwhile to check out AHU and Software Subscriptions.
This Nerdio partner webinar for MSPs delves into details of AHU and Software Subscriptions: Discussing Azure Hybrid Usage...
Margin impact: Increase of up to 72% margin on Azure Compute and OS storage consumption
The value proposition of the public cloud is its utility-like consumption billing model. “Pay only for what you use”. This is great in concept but taking advantage of this aspect of Azure is not as easy as it sounds. To pay for only what you use, you need a mechanism to know what you need when and a system that automatically resizes your Azure workloads to fit the demand at any given time. This means that if a VM doesn’t need to be on, a system needs to be in place to know it and act on it by shutting down the VM at the appropriate time and then turn it back on when it’s needed again.
Newly designed cloud-native applications build in special logic to optimize the consumption of Azure and leverage things like Azure VM Scale Sets that can dynamically grow (scale out) and shrink (scale in) based on demand. Unfortunately, most applications that MSPs deal with for their customers (i.e., Active Directory, database servers, Remote Desktops, etc.) are not natively equipped to be automatically scaled.
Imagine you have an application server that requires eight CPU cores to support the user load. You select an E8sv3 VM to run the application since it has eight CPU cores and 64GB of RAM. The cost of this VM is $0.872/hour or $636.56/month. However, the application is only used during regular business hours of Monday-Friday 9am to 5pm. That’s 40 hours out of a total of 168 hours in a week - only 23.8% of the time. If you had a mechanism to automatically shut the VM down outside of business hours and turn it back on before business hours, you’d save up to 76.2% of the VM cost! Not at all insignificant.
Now, what if you can’t have the application be completely unavailable outside of business hours and on the weekend but need it to be available to a smaller number of users who may need to perform a task or have access to it at night or on the weekend? Wouldn’t it be great if the VM could automatically be resized from its baseline size of E8sv3 at 5pm to D2sv3, which is 21.6% of the cost? Unfortunately, there is no native Azure functionality that can do this for you.
Azure automation platforms – like Nerdio for Azure – can help. You can set business hours for each VM and tell the system what to do with the VM outside of those hours: leave it alone, shut it down, or change it to something smaller. The system will then automatically execute these instructions—resizing the VM after the end of business hours and prior to the start of business hours. This leads to significant savings that may even exceed the savings provided by RIs and AHU. The advantage of Auto-Scaling as compared to Reserved Instances and AHU lies in the fact that there are no commitments and upfront purchases to be made. You use Azure in a pay-as-you-go manner and the auto-scaling keeps things efficient.
What about Remote Desktop Services (RDS)?
Imagine you have an RDS Collection that is supporting 1,000 users. During peak hours, when everyone is on their desktop, there are 10 E32sv3 VMs being utilized. Outside of peak hours there may be up to 100 users accessing their remote desktop at any one time. Wouldn’t it be great if there could be just one VM running all the time and up to 10 VMs would get automatically built and powered up when they are needed?
Nerdio can help here as well. Instead of resizing or shutting down individual VMs, Nerdio’s RDS Collection auto-scaling is integrated with Azure VM Scale Sets. This allows the RDS collection to grow as CPU utilization grows and shrink after business hours as CPU utilization declines as users log off. Here is an example:
Margin impact: Increase of up to 50% margin on Azure Compute
B-series VMs are known as “burstable” VMs. They are very useful but the way they work is a bit complicated. They are used for non-CPU intensive workloads (e.g. domain controllers, file servers) and cost about 50% of an equivalently sized Ds-series VM. The reason they are cheaper is because Azure imposes a quota on how much of the total CPU cores can be used. This quota is usually a fraction of the total available CPU.
For instance, the B2ms quota is 60% of a single CPU, which is 30% of the 2 CPUs visible in the VM. Every second that the VM is using less than its quota (less than 60% of a single CPU, in our example) it is “banking credits”. These banked credits can be used to burst up to the total available CPUs (100% of 2 CPUs, in this example) when needed. While bursting, the VM is consuming its banked credits. Once credits run out, the VM’s CPU utilization is throttled down to its 60% quota.
Why should an MSP use B-series VMs?
They are cheaper. For approximately the same price you would pay for a Ds-series VM, you can get a B-series with double the CPUs and double the RAM. However, they should only be used for workloads that are either not CPU intensive or “bursty”—meaning they only occasionally need all the CPU but most of the time the CPU is idle. For instance, an Active Directory Domain Controller is not utilizing its CPU very heavily on a regular basis. However, when Windows Updates run, the VM will use all its available CPU horsepower. B-series VMs are perfect for Domain Controllers since they bank credits while idle and then consume them when needed to update or do some other CPU intensive task.
Here are some important characteristics of Burstable or B-Series VMs:
- Purpose: General, non-CPU intensive workloads (e.g. AD domain controllers, File servers)
- CPU clock speed: Varies
- vCPU-to-RAM ratio: Varies from 1:1 to 1:4 for VMs larger than B2s
- Storage supported: Standard and Premium
- Approximate average list price per CPU: Ranges from $13/month to $40/month
Here's some Nerdio pro tips for using B-series VMs:
Don’t use B-series VMs for CPU intensive workloads.
When a B-series VM is first provisioned it doesn’t have any banked credits and is subject to its quota limit on the CPU, which means it’s slow. Once the VM is running idle for some time credits get banked and the VM performance improves when it needs to burst.
Don’t shut down B-series VMs overnight when they are not in use. This will not allow the VMs to bank credits for the following day of usage.
As you can see, there are multiple levers that can help MSPs optimize their Azure consumption and make IT environments running in Azure be more affordable than any other alternative. Not to mention the advantage of hyper-scalability, high security, flexibility, and Microsoft’s solid reputation. Understanding these levers will help MSPs start to model what their Azure offers could look like, how much margin they can achieve, and how to build a successful and profitable cloud practice in Azure.
Tools like Nerdio for Azure can help automate much of this complex manual work with its pricing and packaging automation, automated deployment engine, single-pane-of-glass management portal, and cost optimizing auto-scale technology.
Nerdio empowers MSPs to build successful cloud practices in Azure. We’ll continue to keep this document updated in real time so you can use it to your benefit.
If you'd like to make even more money selling Azure, consider becoming a Nerdio partner. We have so many tips and resources that could help you out.