In this post, I am going to cover how beneficial it can be for you to leverage Azure in order to facilitate rapid development. The best part is that it’s at no additional cost via your MSDN benefits. There are many reasons why utilizing Azure in your enterprise can be cost effective and save you both time and money. However, I will not be focused on that aspect and hope to show you today that Azure also helps us develop both faster and smarter.
If you currently have a MSDN subscription, you may be qualified for up to $150 in Azure credits every month! That’s $150 to spend on VM’s, database, web sites, storage, and anything else you can dream up in the cloud.
As of the time of writing this article, here are the Azure credits provided by MSDN:
|VISUAL STUDIO PROFESSIONAL WITH MSDN||VISUAL STUDIO TEST PROFESSIONAL WITH MSDN||MSDN PLATFORMS||VISUAL STUDIO PREMIUM WITH MSDN||VISUAL STUDIO ULTIMATE WITH MSDN|
I cannot stress how awesome this is! If you have MSDN and you’re not taking advantage of these credits, you definitely should start using the credits TODAY! Let’s look next at what you can actually do with these credits.
Using Your Credits to Host Services
I am currently hosting a MVC4 web site in Azure that leverages a SQL Azure database and Azure storage. These dedicated and highly available resources consume a minuscule $9 of my total $50 credit allotment for the month.
So that leaves me with $41 leftover. What in the world will I use that for???!! Let’s explore…
Maybe the organization you are in currently leverages Azure for hosting enterprise assets. If that is the case, then you may want to consider using your MSDN subscription to take advantage of the Azure credits during your development phases. Or even better yet, maybe your current organization is considering Azure, but would like to see a POC before investing resources, time, and money. You can also use your Azure credits within your own Azure subscription to explore those options prior to making the big move.
The Azure SDK provides most everything you need to start work on building cloud-hosted assets, which limits the need to develop in the Azure environment itself. However, when it comes to fully functional Proof of Concepts (POC’s), I find it extremely useful to utilize my MSDN benefits for Azure. I can easily setup and tear down Azure resources for my POC and present to the business the tradeoffs of using newer stacks in Azure.
To give an example, at the time I am writing this post, I am working on a POC for the recently released Azure App Service.
I could easily leverage our enterprise Azure subscription to build out these POC’s, but why burn the dollars against our billed subscription when I can leverage some of my spare credits?
The probability is high that creating these types of POC’s will still not put you over your limit. This brings me to what I feel is one of the best use cases for your remaining Azure credits: Virtual Machines!
Azure Virtual Machines
This is hands down, the best use case I’ve found for my Azure credits. To some degree it has changed the way I develop. There are several benefits you can get from using Azure hosted Virtual Machines:
Explore New Software, Beta Software, and RC’s
A perfect example of this is my recent testing of Windows 10 and Azure Service Fabric. I wanted test Windows 10, but also wanted to start working on some Service Fabric tutorials. I really didn’t want to clutter my already overloaded laptop with a new VM and preferred to not have to go through the whole Windows 10 install process. That is where Azure Virtual Machines stepped in.
Earlier this month, I spun up a Windows 10 virtual machine in Azure. How long did that take? About 8 minutes. The VM came preinstalled with VisualStudio 2015, but I just as easily could have leveraged another template to create a Windows 8.1 VM with VisualStudio 2010 or 2012.
After waiting the whopping 8 minutes for my brand new hardware to get created and pre-loaded with software that would take me hours to install, I rummaged around for an hour or so to see the new features in Windows 10. Thereafter, I hooked up VS to my VS Online source code repository and started working on a demo of Azure Service Fabric. After about five hours of dev, I decided that I had answered many of the questions I had on Service Fabric through my hands on experience.
So what do I do now with this VM? The answer is simple: dispose of it. Everything in Azure is as durable or disposable as you define it to be. With the setup time for the VM being less than 8 minutes and the fact that all the source was stored in VS Online, there was no real need to keep the VM active in Azure.
So what did all of this cost me for the month?
- Cost of VM: Less than $2
- Cost of storage: Less than $1
- Pleasure of not having to acquire hardware resources and install Windows 10 + VS 2015: Priceless
Disposable Dev Machine
We’ve all been through the dilemma when working off of a development machine where eventually the VM or laptop starts to crawl and disk space creeps over the 100GB mark despite all fruitless attempts to cleanup files and space. What would be great is to have the ability to rebuild our laptops from a clean slate as frequently as we need to without losing any work. And if you’re like me then I’m sure that you really don’t want to devote a day to installing the OS and all required VisualStudio components.
“What’s the solution?”, you ask. It’s simple. Azure VirtualMachines allow you to quickly stand up a number of different environments using predefined templates. This cuts out all the necessary time to stand up a new development environment. And if you leverage source control systems effectively, then that should be all you need. Here are a couple VM options just within the Windows 8.1 space:
This is just a small portion of the VM’s you can create in under 10 minutes. There are also templates for Oracle, Linux environments, and many other types of setups.
Slim Dev Machine
As developers, we often times wear different technology hats. Sometimes a single developer may work within 3 or more of the following environments / technologies in a single week: Android, iOS, .NET, Java EE, Perl, Python, C++, Linux, and Windows.
One aspect of this that is difficult to manage is performance vs. ease of switching development environments. I want to be able to quickly switch from working on a VS project to a mobile environment that is setup with all the simulators I might need. If I keep everything running, I may end up with something like the following:
- 3 instances of VS running in a VM
- Don’t forget SQL Management Studio open and eating up RAM
- Numerous developer services (such as MSSQL, MSMQ, Virus scanning) drinking all the CPU cycles like it’s no one’s business. Save some for the fishes guys.
- Meanwhile, Xamarin and XCode are running on the host machine
- All the while, Email, Word, Excel, and PowerPoint are battling it out for precious resources
Managing your development environments should not turn into an economic aggregate welfare dilemma that would leave even John Maynard Keynes speechless. There is a better way my friends. As a result of the disposable nature of VM’s in Azure and the ease of setup for new VM’s, this all becomes a non-issue.
One strategy that I’ve adopted is to create very niche Azure VM’s. I have a VM specific for VS 2010 development, one for VS 2013 Azure development, another for Xamarin + VS work. I even have a Linux VM for testing Docker and having a walk down bash scripting lane. These are all disposable, so if I determine I don’t need them or if a project ends up getting cut short, the solution is simple: yup… you guessed it… just delete the VM. Or if I think I might need it later, then I can freeze the VM until I need it again.
Portable Dev Machine
One thing I’ve found in my career is that us developers love devices almost as much as we do coffee and evening hours watching Office Space. It’s not uncommon for a single developer to have 3 or more devices that they use for development along the way of their travels from the office, to the library, to the comfort of their home. Here is a list of the devices that I use on a day-to-day basis:
- My personal OSX laptop
- Company issued Dell
- Client issued Lenovo
- My Surface Pro for travel
- Intel Compute Stick hooked up to my HD TV
As I’m working on presentations and other things, the common dilemma I come across is that I cannot work on the demos or code unless I’m on the device that I originally setup with all the required software and SDK’s. This results in frequent switching between devices, a.k.a. swivel chair shenanigans.
With Azure VM’s that is no longer an issue. As long as your device supports the Remote Desktop Protocol, you can get into the VM where you’re doing your development work for a particular technology with ease.
What if I Run Out of Credits?
This is definitely something you should be cognizant of, but if you manage things well, you probably won’t ever run into this scenario. I am currently utilizing the lowest level of MSDN, which only yields me $50 a month opposed to the $150 provided by MSDN ultimate. That being said, this is what I’m pretty accustomed to seeing near month end:
Mind you that I only utilized $18.74, but here is what I leveraged throughout this month:
- One full-time Azure web site
- One full-time Shared Azure SQL instance
- One full-time Azure web site via the Free shared resources
- Windows 10 VM for testing (ran for approximately 16-20 hours)
Now let’s say that I did happen to go over the cap… what would happen then? Well, the default setting is that Azure will cut me off. I will not get charged for overage unless I configure the billing to start charging me after I go over the credit amount.
My Recommendations and Suggestions
Here is my list of suggestions for getting the most out of your Azure MSDN credit:
Turn off the Lights When Nobody’s Home
Make sure you shut your VM down when you are not using it. Keeping a 4 core, 7GB (A-Series A3) VM on for an entire month will cost you $220.23. However, if you shut off that very same VM after using it every day and use it 20 days of the month for four hours each time, you’re more in the range of $23.68. Beyond the cost savings, this is probably a greener approach to operating than leaving a VM online to just consume compute cycles refreshing it’s system clock and checking for updates.
Use Free Assets
When you can, use the free or shared hosting models. These come with limitations, so they may not be very useful in your enterprise environment. But for POC work, these should typically get the job done.
The free hosting model is supported by a number of different PaaS offerings in Azure, such as Azure Web Sites, Logic Apps, and Cloud Services.
Be a Minimalist
The message here is, “Use the least amount of resources required”. Hopefully you followed my explanation of a slim development machine (VM). If you did, then you probably understand that there are not many use cases for your development VM requiring things like 16 processor cores, a gazillion GB of RAM, and geo-redundant storage. Keep your VM’s small. You can always upgrade them later if you need more resources. Start small and scale based on your development needs.
Remove Services When You’re Done with Them
Things can add up over time if you’re sitting on a lot of unused resources. Here are a couple of examples:
- Storage: Even if your virtual machines are off, you will still get charged for storage. Why keep a VHD file that hasn’t been used in months?
- Cloud Services that are not running, but occupy a deployment slot
- SQL Azure Instances that are not used
- Other unused storage
Because it is very simple to spin up resources in azure, there are not many reasons why you should feel the need to park things. If you’re done developing against a cloud service, then delete all the associated instances. If you haven’t used a VM in a while, delete it. The storage is inexpensive, but 50 cent storage costs can add up over time.
Note for Non-MSDN Developers
As you can see, this is a major benefit for MSDN subscribers. However, it doesn’t necessarily end or start there. Someone who does not have MSDN could just as easily leverage Azure VM’s to save money. If you purchase your own development rig, you could easily be looking at $2000 plus for all the bells and whistles (laptop, docking station, OS, software, monitors). And the worst part is that you’ll most likely then need to upgrade everything just about every 2 – 4 years.
Why not instead create a highly performant VM in Azure for less than $40 a month, pick yourself up an Intel compute stick for $150, and then start developing in the comfort of your own family room today! At that rate, it would take you 50 months (> 4 years) to rack up $2000 in charges. What’s the best part? When a better operating system or more performant hardware is released to market, you can just switch over with little to no impact to your monthly cost.
Hope that you enjoyed this blog post and picked up a few tricks while reading.
For more information on the MSDN benefits in regard to Azure, you can refer to here: http://azure.microsoft.com/en-us/pricing/member-offers/msdn-benefits-details/
If you found this information helpful, please use the social buttons below to share this with your friends and colleagues.
I you have comments or questions, please use the comments section below.