Before I present my first impressions of Microsoft Azure, let me begin with a disclaimer: I don’t like Microsoft. With the exception of Excel, I think its products have generally been inferior to and provided less value than its competitors. Although its has released better versions of its operating system of the years (XP and 7 in particular come to mind), it continues to regress on other versions (witness the fiascoes of Vista and 8). Compared with other worthy Unix-style competitors like Linux and Apple’s OS X, Windows is a substandard product. Moreover, Microsoft’s recent shenanigans in trying to force users to upgrade to Windows 10 are the antics of a wounded gangster. I think the company itself is a bully, using its considerable resources to silence its critics and competitors through unfair or unethical business practices.
But today Microsoft is fighting for its life. The desktop computer is disappearing (at least for consumers), Windows Phone has failed and Windows 10, despite being free, has not gained its planned market share. So why even consider Azure when Microsoft’s flagship product is a dying entity? Because Azure is a very different beast for the company, created to compete head-to-head with the best in the online world. Azure is Microsoft’s answer to Amazon AWS, Google Compute, IBM Softlayer and a host of smaller Cloud competitors like Digital Ocean, Vultr, and Linode. So when I saw that Microsoft was offering a free one month trial, I figured I should give it a try. And I was determined to do so without preconceptions.
My Points of Reference
I currently use Digital Ocean, Vultr, and Google Compute. Although I prefer Digital Ocean and Vultr, Google Compute offers a closer comparison Azure. (For a summary of Digital Ocean and Vultr, see my qualitative comparison on LowEndTalk. For more information on Google Compute, see my blog review here.)
I will therefore be comparing Microsoft Azure to Google Compute. In the near future I will also consider evaluating IBM Softlayer and Amazon AWS, both of which seem to have offerings similar to Azure.
The Azure Portal
At the time my trial began, Azure had already rolled out a new portal, though its “Classic” portal still existed. I found the new portal to provide a very slick interface, set up with tiles à la Windows 10. Customization of the main portal page was very easy using a drag-and-drop process. Compared with Google Compute, the interface itself was very nice (and pretty). Unfortunately, that was about the only thing going for it.
Everything on the portal seemed slow compared to Google. In particular, creating instances (ie. Virtual Machines) seemed to take forever. There were a zillion options to configure (although that was true with Google as well), but the process to create an instance seemed unnecessarily awkward. Since I was only interested in Linux instances, perhaps some of my complaints wouldn’t have been issues with Windows machines. Yet, if this turned out to be true, then it would contradict Azure’s claims to fully support Linux.
I typically run Centos 6.7 instances, a popular server option. Yet even the creation of these instances wasn’t straightforward. I couldn’t even find it on the Microsoft list of supported servers. I then tried to find it using a search, but eventually discovered I had used the wrong search box. I did eventually find the image but, by this point, nothing in the portal seemed easy to do. Google Compute’s interface was also complex, but somehow I had an easier time finding what I needed there. Yet, these sorts of issues are teething pains; eventually, once I got used to creating my instances, everything did seem more straightforward. But it was a more difficult adaptation than at Google.
Is this Beta? Or Alpha? Or Development?
I had such fundamental issues with Azure that I had to conclude that it was not yet a production system. Take the creation of a Linux instance. The portal advises that an instance can be created in two flavors: Classic or Resource Manager based. Even though neither of these versions are defined during the creation process, the portal recommends creating Resource Manager based instances. Fine. I followed the advice of the portal. But there’s a catch. After my instances were up and running, I then wanted to create a backup of my newly minted servers. So I followed the instructions on how to create a Backup Vault and how to discover my existing instances (which involved a rather convoluted process). But, no matter how carefully I followed the instructions, I could not create a backup. And the error messages were not at all helpful; they simply said that (1) I needed to discover my instances first and then, (2) that my instances could not be found. After much searching deep in the bowels of the Azure documentation, I found the following statement:
Backing up Azure Resource Manager-based (aka IaaS V2) virtual machines is not supported
Nice! So one of the key benefits of a cloud-based Virtual Machine, access to an integrated backup system, isn’t even supported using the recommended deployment method. Furthermore, even for Classic instances, the backup functionality isn’t available at all in the new portal. I was always switched back to the Classic Portal to deal with backups. It was a frustrating and irritating experience. Honestly, Azure just doesn’t seem ready for prime time.
There are also other limitations. The Centos 6.7 image that I selected was 30GB in size but the disk on my server was 50GB. As a result, I ended up with only a 30GB disk. I had had a similar problem on Google Compute, but Google’s documentation clearly explained how to recover the lost space. I could not find a similar document on Azure so I needlessly lost 20GB. Not good.
A Handy Estimate
I was, however, very excited to see a tile called “Estimated Spend”, which would presumably have helped me keep my costs in check. Except for one thing: it doesn’t work. After several days of letting my instances run, these tiles still said “Loading…”
Very slow. Very expensive.
This quick review is a capture of my first impressions of Azure and isn’t meant to be an exhaustive analysis of Azure’s offering. In fact, it’s not meant to be a numerical analysis at all. But, even without crunching the numbers, I can tell you that instances with similar specifications at Google Compute and at Azure run very differently. In a nutshell, Azure is significantly slower. And machines than ran satisfactorily at Google kept running into difficulties on Azure.
Because I was running with a $250 free trial, I decided to increase the Azure specifications to the point that my instances ran in a satisfactory way and I discovered that Azure would then cost over three times what Google Compute cost. (If you read my Google Compute review you will know that it is not particularly cheap compared to other alternatives.)
A few specifics might help. I use two different kinds of Virtual Machines, a single core machine and an eight core machine, but I only was testing the single core machine on Azure. My machine ran fine on Google Compute using a g1-small instance (1.7GB and about half a computing core). Google’s price for this machine was about $15/month. I figured the equivalent machine on Azure would be the Basic A1 machine (1.75GB and one core, although I don’t know what cpu percentage was guaranteed). Azure’s price for this machine was about $27/month. But, even at this price, the Azure machine had problems; in particular, it couldn’t keep up with the load. So I tried what seemed to be the next tier in terms of cost, which was the Standard D1 machine (2.7GB and one core). This machine cost about $50/month, over three times the price of the Google Compute machine. It was a better machine than the Google Compute machine but it was overkill for what I needed and it was certainly not worth three times the price.
Now, I’m not saying at all that Microsoft’s cloud really costs three times what Google’s cloud does. But, given the coarsely bundled nature of the instances, in order to get my particular servers to run properly I had to spend three times what I had previously been spending at Google. Pricing aside, were Microsoft’s instances at this price better? Yes, I believe they were. But I didn’t need the extra performance and I certainly didn’t need the extra cost.
No Support, Just like Google
Like Google, Microsoft offers no free technical support for Azure. If they had, I could have asked some very probing questions and perhaps gotten some answers. Smaller competitors, like Digital Ocean and Vultr, do offer technical support, which is one reason I like them better. Personally, I think the no-technical-support paradigm doesn’t work. It’s certainly bad for the customer but I think it’s also bad for the provider since it destroys customer feedback. If something doesn’t work as advertised, do Microsoft and Google not want to know about it? And do they not want the opportunity to keep a confused and frustrated customer?
One Extra Feature
In the interest of fairness, I did discover one extra feature that Azure offered on its instances without charge that Google Compute did not: a Resource Disk. After reboots or crashes it’s not guaranteed to preserve data, but it’s very handy for big downloads or for temporary storage.
In the end I got my instances to work well on Azure (except for backups), but this success came with a very steep learning curve and at a very high cost. So, in that sense, Azure works. It also gives a no-charge scratch disk, which is nice. And a nice looking portal (that doesn’t really work properly). It’s the kind of the offering I would have expected from an undergraduate-led startup. From my experience, I can’t image anyone using Azure who doesn’t have some sort of vested interest in working with Microsoft, or with Windows (as some companies do).
So I have two separate recommendations. If you have to use Azure or have to work with Microsoft and you don’t mind a steep learning curve and overpaying for your resources, then Azure may well work for you. However, if you are not particularly tied to that ecosystem and, in particular, if you want to use Linux, I highly recommend you seek another provider. There are many good providers out there. And, from my experience, most of them are a whole lot better than Azure. And, in many cases, much, much, cheaper.