Download the authoritative guide: Cloud Computing 2019: Using the Cloud for Competitive Advantage
Understanding Azure pricing offers numerous challenges – but it’s well worth understanding it. Microsoft has built up its Azure cloud service with remarkable expedience and rocketed to the number two position as a cloud provider behind Amazon Web Services. It has taken two of its cash cow on-premises applications, SQL Server and Office, and made them readily available on-demand, something unthinkable a decade ago.
Azure is growing in popularity. In its most recent quarter, Microsoft reported 116% year-over-year revenue growth in Azure, far and away the best performance of any group in the company. Azure usage has more than doubled in the past year.
With that explosion in options comes pricing complexity, and the potential for gotchas. There are potential pitfalls that have to be kept in mind before making a partial or whole-scale move to Azure that you should keep in mind. None of them are traps laid by Microsoft, of course, just potential complications that can make your work difficult and/or expensive. The good news is that thanks to fierce competition with Amazon, prices for Azure (and AWS) continue to go down, not up. But there are still potentials for problems that can lead to sticker shock when the bill comes due.
Azure Pricing: Key Price Considerations
1) Don't leave unused VMs running
This is a problem bedeviling all of the cloud providers, not just Microsoft. It's the modern day equivalent of leaving the lights on in the house when no one is in the room. Companies spin up a virtual machine with a click, then forget to shut it down when they are done. You are charged by uptime, whether the VM is in use or not. So remind your programmers to shut down the VMs they spin up.
2) Limited downtime protection
Microsoft doesn't promise the best downtime protection. For cloud services and virtual machines, its service level agreement (SLA) for two or more instances deployed is guaranteed to have connectivity to at least one instance at least 99.95% of the time. That's good but not the traditional "five 9s" of on-premises mission-critical systems from the big iron makers.
Also, the responsibility to monitor service levels and report outages remains on the customer. You have to document downtime in order to get a credit for it in your bill.
3) Limited OSA protections
Microsoft offers an Online Service Activation (OSA) key, which is a pre-paid credit in $100 increments that lasts for 12 months that can be used on any Azure service SKU. The OSA agreement severely limits recovery on claims arising from any legal action, including breach-of-contract and negligence claims. Legalities are what keep a lot of companies out of the cloud, since they want to limit their liabilities and potential exposure. Just keep in mind that Microsoft might not bail you out, either.
4) It adds up fast
Many companies have looked at migrating old server scenarios from on-premises to the cloud, but doing it on Azure, especially if you try to replicate the hardware environment you had in terms of cores, memory, and storage, can add up fast.
A single-core, 0.75GB memory and 20GB of storage space virtual machine will run you $0.018 per hour. But what can you do with that? Upgrade to an 8-core, 14GB of memory and 240GB of storage space and its $0.60 an hour. That's an increase of 33-fold. At that point, for a small business, Azure is more expensive than buying a $1,000 tower from Dell with Windows Server 2016, Office, and SQL Server, and sticking it in the closet.
5) MSDN subscription required
Unless you have an MSDN subscription, there is no access to Windows 7 or 8 images in the gallery. You can upload your own custom OS images, but they are unsupported. So it would be no different than maintaining them on-premises.
6) Real support will cost you
Like pricing for basic compute, support will get very expensive very fast and there is a big gap between the basic and top level of support. Developer support is a flat rate of $29 per month per developer, while the high end Premier, which varies from customer to customer, can run up to $1,000 a month.
And you get what you pay for. Developer support is only during business hours, and initial response time can be eight hours or more and you can only interact with Microsoft electronically. Premier promises support response within 15 minutes and offers help 24/7 and you can get phone support. Premier customers also get direct assistance with a virtual machine or app, as opposed to basic Azure support for Developer.
7) Storage space confusion
Azure's storage options are actually virtual hard disks (VHDs), something a novice to Hyper-V will not understand. So first thing, don't let someone unfamiliar with Hyper-V choose your storage options.
Secondly, you pay a few cents for every 100,000 transactions, but Microsoft doesn't define transactions very well. Also, the storage design of Azure is associated with capacity, but billing for that is separate from the cost of capacity.
8) IoT creep
Microsoft has added Internet of Things (IoT) support to Azure for remote monitoring and predictive maintenance, among other things. However, the Internet of Things is all about endpoints, lots of endpoints, and the IoT piece could run up your bill in a hurry if you're not watching the number of transactions and endpoints. You will be paying for connections and data going out, which can add up fast.
9) Internal networking
One area where Amazon and Google have Microsoft beat is they have clearly published internal and external network performance promises and guarantees on which you can plan your scaling. With Azure, it's not so clearly defined and you have to do a good amount of testing as you plan out your deployment to ensure that you get the performance you need.
You may end up paying for higher-tiered servers simply because you need better network performance across your own servers. The leap up from one level server to the next might be a bit much.
10) Licensing mobility
Microsoft offer license mobility, meaning your on-premises license would transfer to Azure, for qualifying application servers, so you need to determine ahead of time if your application is going be eligible for license mobility. Windows Server itself is not available, only the apps. SQL Server, for example, qualifies, so you could run the same stack on-premises and only pay for one SQL license. But you are paying for two Server licenses. So find out what is supported before you commit.