Leveraging Azure's Pay for What You Use Billing System

Developers are by in large the best types of people who are used to change. They have to accept that what they learn now is most likely to be redundant in 2 years time. It is what makes the technology space exciting. However I found it rather hard to sell developers on Azure's "Pay for what you use" billing system.

This concept is not exclusive to Azure and there are many other cloud services that bill the same way. The premise is quite self explanatory, if you use a service for 15 minutes you will only be charged for 15 minutes.

My company has, like most companies, slowed down over the festive season and many people had taken leave. This usually brings up the dreaded support question. The unfortunate person who draws the short straw is allowed to take leave but has to be on call in the unlikely event that something goes wrong. This is a great policy and if something does go wrong you can solve it from home.

The support queries are never simple. They often are bugs that happen on Production but not in any other environment. It can sometimes require a database dump or a replication of the problem. This is simple if you are in the office but it's leave time and you are restricted to the hotel's horrific excuse for internet. It takes a good half a day to download and diagnose a problem that is a 15 minute fix. If only you had access to a faster machine and a faster internet connection. We have all been here

A critical support ticket came through to a support staff member on day 2 of his leave. The logs turned up nothing and there was no way he could troubleshoot it without getting a local copy of the data.
He had to come into the office and pull the 30 gigabytes of data and then wait another 1 hour for the database to restore. We did run a data anonymous function to scramble the data.

It turned out to be a 30 second fix. However it meant he had lost out on a whole day of leave because he had a slow internet connection at home and a slow development computer. It was inconvenient and very annoying.

After hearing this story I immediately thought that this is a problem that is easily solvable. The answer is to have development server which is very powerful and have him remote into the server and solve the problem there. This , in traditional hosting, is very expensive for a machine that gets used once in a blue moon.

Traditional hosting is expensive as you need to pay upfront for what you need even if you don't use it most of the month. You need to have a licence for everything you install on the server and you traditionally pay for data which ever way it goes, in or out.

This makes little financial sense and you would have a hard time getting funding for this past the executives. All that is needed is a fast machine that you only pay for what you use. Azure and other Cloud Providers are filling this space.

Azure has Virtual machines that solves the problem quite nicely. Azure Virtual Machines can be scaled up and down with a few clicks and you only get charged for the processing power you use and need. Azure has another great policy of not charging for any data coming into the data center. This means downloading anything to the Virtual Machine does not cost you a thing. They have a varied amount of options for scale from a Shared core with 768mb of RAM right up to 16 Cores with 112 GB of RAM.

Azure have Virtual Machine Images versions that are pre-installed with a variety of things have the licence built into the price per minute.

My solution would be to create Visual Studio Community Virtual machine. I would go for the Dv2 instances as these are the quickest, time is money.

You would need to set it up to be the same as your developer machine and get your IT infrastructure team to approve the various security implications of it . Once it is set up you can shut it down and you won't be charged for having it off. It is prudent to note you will be charged for the storage data you are using but this is only charged at USD0.024 per GB/M. This works out to a few cups of cappuccinos.

The minute you are out of the office and a support query comes in it is a matter of logging into the portal and selecting a size you want to spin up and starting it up.

It would take only 20 min to get to the bottom of the problem opposed to a whole day of leave. All for less than the cost of the coffee you bought to get you through query. I would recommend attaching a disk to the virtual machine and dumping data onto the new disk. Once you have finished the support query just delete the drive. This will ensure you don't accidentally leave data lying around.

This machine could not just be limited to support queries while outside of the office. You could use it develop and fine tune the processing-heavy intensive methods that take forever to run on your own machine. You would just scale up the virtual machine to whatever you need and then turn it off once you have finished.

The total cost/benefit of the idea is virtually a no-brainer for any developer. It is cheap, effective and flexible. It should be easy to get past the pesky accountants.

Azure Virtual Machines are an easy way to save you time and money and ensuring clients are not chomping at the bit for too long.

Richard Pilkington

I am a .NET Developer who is always seeking out new things and loves trying anything new. There has to be a quicker way tends to be the way I approach things

Cape Town, South Africa