Chances are, if I asked you why you wanted to “go to the cloud”… one of your answers would be “to save money”. True, at first glance this would seem counter intuitive because the price to rent cloud-hardware is far more expensive than buying it yourself. This argument is presented to me by IT Ops folks quite often. But the beauty of the cloud – and in particular I’m talking about Windows Azure here – is that you pay “for what you use”. Here in lies the ability to save tons of money. I’m not going to go in depth in the whole rent-vs-buy argument in general… but instead what I’m going to tell you is a key on how to save even more money once you decide to go Azure.
Quick Overview of How Azure Saves Money in General
I mentioned that I don’t want to get into this too much, but I feel that if you are relatively new to the idea of going to a hosted (or “public”) cloud environment – you may have done some bad math and decided that it would cost you too much money. So I feel compelled to give this brief explanation on a couple of scenarios that actually cost you far less.
Scenario 1: Daily Report Generator
Suppose you need to run a process every morning that takes 2 hours and chews up all of your massive business data to provide some excellent reports to your customers. As your company grows, you need to now buy new hardware just to run this very important task.
This scenario is very fitting for the Azure “burst-up” model. Because your process only runs for 2 hours – you can “rent” a VM (or 1,000 VMs) for just 2 hours and then you only pay 1/12th of the monthly cost. Don’t forget you are also not paying for hardware upgrades, electricity, etc.
Scenario 2: Seasonal Business
Suppose your business does the vast majority of your business in just a few months. This makes sense if you are, let’s say the Honey Baked Ham company, or a tax preparation company such as Jackson Hewitt (where I work). In this case, the cost of purchasing hardware that sits idle for many months out of the year is clearly a waste.
Now, How To Save Even More Money (with Licensing)
As is often the case, technology advances faster than legal entities can keep up with them. In this example, public clouds (Amazon EC2, Windows Azure, etc) allow you to quickly burst up 1,000 virtual machines just for a day if you need. But then, what if you needed to run licenses software such as Microsoft SQL Server? Are you going to buy 1,000 licenses just to use SQL for that short time? No way! Well, in this case the legal team at Microsoft has thought of that. So… you will be able to “rent” SQL Server licenses by the hour just like you can rent the actual virtual machine.
By the way – I’ve not posted this until now because I’ve been under NDA… also, there is a whole lot more I’d like to say, but can’t yet. Here is the publicly available Microsoft site where I’m quoting from: https://www.windowsazure.com/en-us/pricing/details/#header-3. And here is a screenshot in case the link above changes in the future :)
OK, so now that my paranoid “I’m not spilling any beans” has taken place, I’ll continue.
You might be asking, “What is the point here?” No, I’m not simply restating the fact that you can rent SQL licenses by hour in Azure. The point I’m about to make can save you thousands of dollars a month. And here it is…
Test your payload before choosing a VM size! The reason why I’m stressing this is as follows. If you notice in the chart above, the SQL licensing for an XL VM is twice that of a Large VM. This may seem normal to you, because an XL VM gives you twice as much horse-power in terms of CPUs and RAM. And typically, you pay for CPUs when it comes to SQL licensing.
The “gotcha” here is that an XL VM may not necessarily give you 2x the performance of a Large. The reason for this (in the case of Windows Azure) is because while you get 2x the CPU, RAM and bandwidth… you do not get any more performance in your most likely bottleneck – disk speed. I’ve brought this out several times in the last few blog posts, particularly this one: “Windows Azure IaaS Performance – SQL and IOps”
In my most recent testing, I’ve proven out that a write-heavy workload on an Extra Large VM has the same throughput of a Large VM in Azure. For my test, the CPU usage was less than 5%, the RAM usuage was less than 5% and the network usage was nearly 0%. So cutting back to a Large VM cuts the price in half, but didn’t hinder the throughput at all.
Take these savings and multiply it by the number of machines in your workload and you can save lots of money. In the case of the real-world reason why I’m running this test, we’re saving tens-of-thousands-of-dollars every month.