Test Labs in Microsoft Azure – Six Disadvantages

Although we’re all being encouraged to utilize the cloud for the most flexible and cost-effective means of deploying production servers, there are some important disadvantages when it comes to running test environments in the cloud. In this article I’ll take a look at six disadvantages of running test labs in Microsoft Azure.

About a year ago, I almost completely abandoned my office test servers in favor of the cloud. I’d always found that maintaining on-site physical servers for testing purposes is a time-consuming activity. Not only does the hardware need to be replaced every few years to stay relevant, but test labs have expanding storage needs and should be updated on a regular basis and often need reconfiguring for specific projects.

First I switched to CloudShare, which is geared towards developers, but I found server performance a major weakness. So then I decided to try Microsoft Azure, which provides a more flexible system, even if it’s intended for production systems.

Disadvantages of Microsoft Azure Cloud Test Labs

Despite all the benefits of running a test lab on Azure, there are some Hyper-V features that are not supported on Azure, along with disadvantages that are associated with running test labs in a remote datacenter.

1. Lack of Hyper-V Snapshot Support

For those that have used Hyper-V, VMware or similar virtualization solutions, it’s likely that you’re used to taking snapshots of VMs and having the ability to roll back to a previous state. Despite being based on Windows Server and Hyper-V technology, Azure doesn’t support snapshots.

2. Inability to Upload Custom Images

It’s easy to transfer images and files around a local area network (LAN) or use portable disks for the same purpose. Once your lab is in the cloud, while Azure provides the option to upload images, transferring large files is likely to be much slower than the speeds you could expect on your LAN. Moreover, custom images must be prepared to run in VMs on Azure. You can’t attach the product .ISO file to a VM and install an OS like in Hyper-V.

3. Provisioning Virtual Machines in the Cloud Takes Longer than On-Premise

De-allocating VMs from the Azure fabric overnight or when they’re not being used is a good idea to reduce costs. The downside is that provisioning VMs the next time you need them is more time-consuming than starting an on-premise Hyper-V VM. So expect longer wait times to get labs up and running each morning.

4. Lack of Integrated Backup

Azure Backup is intended for backing up and restoring data located on your on-premises servers to the cloud. That’s a great feature, but it’s not really useful for doing bare-metal restores of servers in a remote datacenter. While there are various ways to back up servers using blob storage, the process is somewhat convoluted and not supported by Microsoft as a backup solution for production servers.

5. Poor Management GUI and Tools

In short, the current iteration of the Microsoft Azure Management Console is frustrating to work with. It is slow to respond and update, and requires far too many clicks to achieve simple tasks, sometimes needing you to click the back button to re-access features.

The new Microsoft Azure portal in preview form

The new Microsoft Azure portal in preview form. (Image: Russell Smith)

Microsoft currently has a new Azure portal in preview, but at the time of writing, it doesn’t support the creation or management of virtual machines. I’ve tried several third-party tools, along with Microsoft’s own Visual Studio IDE, but all provide just basic functionality and can’t replace the web-based management portal.

6. No Access to Windows Client Images

One last peeve is that 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 images, but they are unsupported and requires you to maintain them as you would in your own on-site lab.

Benefits of Test Labs in Microsoft Azure

I’ve written about CloudShare and Azure in detail before, so here I want to briefly discuss the benefits of testing in the cloud, specifically with Azure as my solution of choice.

Microsoft provides images, which get updated on a regular basis and can be used to provision virtual machines (VMs). If you manage the status of VMs carefully, costs can be kept to a minimum. As long as servers are specified correctly for the task, VMs run significantly faster than anything I could provision in my own office lab.

Naturally the expandability of the cloud allows organizations to provision test labs quickly, without having to worry about costs or logistics of providing staff with physical hardware, and the ability to manage and provision VMs using PowerShell is a plus.

Do the Positives Outweigh the Disadvantages?

In most scenarios, yes. The ability to quickly provision new VMs in some way makes up for the lack of snapshots. If you’ve got an MSDN subscription, then the absence of Windows client OS images isn’t a problem. Although I would like to see Microsoft make available images for legacy and unsupported operating systems, such as Windows XP.

There are still test scenarios where an onsite physical server is necessary. There’s also other scenarios where using an onsite server might just be easier, especially considering how easy it is to lose remote access to a server in the cloud with the slightest configuration mistake. And there’s no way back in without contacting Microsoft Support.