Microsoft has been pouring resources into its Microsoft Azure public cloud architecture for several years now and it shows—especially in the Infrastructure-as-a-Service (IaaS) arena. Where Microsoft Azure (which begins at $14,300 per year for an eight-server Web app package, as described below) was once an also-ran, it’s now one of the top contenders in the public cloud space, going head-to-head with IaaS behemoths such as Editors’ Choice winner Amazon Web Services (AWS) and Google Cloud Platform (GCP) across price, capability, and performance. And that’s evident for more than just businesses who have standardized on Windows. Linux users are finding a very welcome home on Microsoft Azure, and it’s worth a look no matter what distro you like. Only its high price and middle-of-the-road performance kept it out of winning the Editors’ Choice award this time around.
Still, its Linux-friendliness is one of the most surprising elements of the modern Microsoft Azure, especially since it extends not only to virtual infrastructure guest operating systems (OSes) but also the Linux-based container architecture Docker as well. While Microsoft Azure is built on top of a Windows Hyper-V framework, you can run many different Linux distributions (such as Ubuntu, SUSE, OpenSUSE, and CentOS, as well as Windows Server 2008 and 2012).
Microsoft Azure comes ready to run in a variety of roles, too. Besides supporting both Linux and Windows, it comes with a wide selection of ready-to-run server applications and languages. For example, you can easily set up a website with .NET, Java, PHP, Node.js, and/or Python support using prefab images and configurations. In July of 2017, Microsoft announced the Microsoft Azure Stack, which acts as an extension of Azure to make building a truly hybrid cloud architecture easier and more manageable.
On the Windows side, using Azure Resource Manager, you can quickly set up most Windows server applications. For example, you can set up a high availability SharePoint deployment. This will include nine Azure virtual machines (VMs), a group load balancer, primary and backup Active Directory (AD) Domain Controllers for a new Forest and Domain, two SQL Servers, and four SharePoint VMs with a SharePoint farm. Total setup time during my test was about one hour for what would likely be a week-long job for most IT teams working in a bare-metal, in-house environment.
Via the VM Depot, you can also easily set up a wide variety of Linux server configurations with little trouble. Ready-to-run servers include the Drupal content management system (CMS), JBoss middleware, and SugarCRM. You’ll find by far the most of these prepackaged server stacks on Ubuntu 14.04.
Setup and Configuration
Microsoft Azure is one of the easiest clouds to get up and running. Once in place, it’s also among the easiest to manage. That’s in no small part because Microsoft, unlike the Linux Foundation upon which most other clouds are based, has long spent time on user-friendly sysadmin tools. They’ve also devoted considerable energy to providing tutorial and support information, both at cost for full certifications provided via Microsoft Learning as well as for free via blogs, how-to videos, whitepapers, and informal talk videos delivered via the main Azure site as well as Microsoft TechNet.
That’s not to say you can do everything from a cute and friendly graphical user interface (GUI). You can’t. You’re still going to be finding yourself using Microsoft PowerShell a lot and, as that scripting environment has become more complex over the years (in addition to more powerful), it can significantly increase the Microsoft Azure learning curve for complex infrastructure and app deployments. Still, an experienced Windows sysadmin will find himself or herself perfectly comfortable with Microsoft Azure most of the time.
Generally speaking, I found that Microsoft Azure works well, though there were some glitches along the way. For example, when I tried to use the new Microsoft Modern-style Azure portal, my running VMs were hidden. Since I know Linux far better than I do Windows Server 2012, I created an Ubuntu 14.04 VM. As it happens, Ubuntu is the most popular Linux distribution on Microsoft Azure according to John Zannos, Vice President of Cloud Alliances and Ecosystem at Canonical.
The total time spent—from picking Ubuntu to being able to test the running VM—was less than five minutes. For this, I created a D1series VM. According to Microsoft, this new series features solid state disk (SSD) storage and up to 60 percent faster processors than the older A-series. My VM had a single-core CPU, 3.5GB of RAM, and a 50GB SSD. For Ubuntu, that’s more than enough to run well.
Besides fooling around with this VM just to get a feeling for Ubuntu on Microsoft Azure, I used it successfully to run a VM Depot WordPress image. If I hadn’t known it was Microsoft Azure and Hyper-V rather than Linux, underneath my Ubuntu VM I never would have known the stack wasn’t Linux all the way down.
I also found it surprisingly easy to set up Docker containers on Microsoft Azure. Microsoft has decided to embrace Docker containers At this time, Docker only runs smoothly on Ubuntu VMs, but it shouldn’t be too long before you’re able to run Docker containers on Windows Server 2012 as well.
Average Cloud Performance
Microsoft Azure is currently powered by 17 data centers around the world, with more rumored to be coming online in the future. No matter where you are, chances are there’s a Microsoft Azure data center close by—which is a boon for both performance and steady reliability. Another nice plus is that Microsoft is using InfiniBand as the inter-server networking platform in those data centers. For some jobs, 40Gbps does a lot better than the more typical 10Gbps Ethernet.
That said, I still saw only average overall performance on Microsoft Azure when compared to other competitors such as top-performing Google Cloud Platform and Rackspace Managed Cloud. Using cross-platform processor benchmark Geekbench 3 by Primatelabs (which measures integer, floating point and memory), Microsoft Azure’s average score of 2,290 came in third place behind Google Cloud Platform and Rackspace—which is good but not great.
This benchmark was run on a small A1 Azure VM running 64-bit Ubuntu Linux 14.04 Long Term Support (LTS) for 24 hours with Python 2.7. This came with a single-core CPU, 1.75GB of RAM, and a 40GB virtual hard drive. As for storage speeds, Cloudlook reports that a Windows Azure Small image had only a mere 13MBps data throughput. Again, while this is fine for most general app workloads, those looking for truly high performance may need to look to other IaaS solutions.
Pricing and Contract
For the most part, the Microsoft Azure service level agreement (SLA) is no better or worse than most SLAs. There is, however, one serious concern. In 2014, Microsoft Azure had not quite 40 hours of downtime. In addition, Microsoft Azure’s storage service was also down for not quite 11 hours. This put Microsoft Azure way ahead of the other services in the unfortunate category of most downtime. Still, I’m inclined to think that Microsoft Azure just had a rough time rather than this indicating any kind of fundamental flaw in its software or data center architectures. It does serve as a warning, however, that even the biggest cloud companies can have serious problems.
Microsoft Azure prices start at $13 a month. But, like all of the services tested, it gets complicated after that. My benchmark, for example, would have run me about $65 per month. That’s as pricy as any of these services in this roundup. On the other hand, Microsoft Azure does offer per-minute pricing, too. Look closely at the Microsoft Azure Price Calculator and other pricing documents. While working out the real costs of a cloud is never easy, Microsoft does do a better job than the others of spelling out the costs.
My test VM, the aforementioned D1 instance upon which I tinkered and ran WordPress, cost 17.1 cents per hour or about $127 per month. That’s fine but let’s look at what a small business might have to pay for a simple three-level Web application. Using RightScale’s Plan for Cloud Calculator to set up a three-tier Ubuntu Linux Web application, I found Microsoft Azure to be decidedly on the pricy side.
My application was made up of two on-demand small instances: the Web server and the load balancer. The hosting Web server resided on an extra-small instance. These were supported by two on-demand, extra-small Web server instances to meet peak demand and a small on-demand disaster recovery (DR) server.
For the database storage, I used a 300GB Block Blob Storage Read-Access drive and a 4GB Page Blob Storage Read-Access drive. The 150GB DBMS and its 150GB DR backup both lived on SQL Azure Business Edition instance. The total monthly data transfer allowance, source to destination, was 440GB, with a destination to source allowance of 1,140GB. For
Microsoft Azure is tied with Google Compute Platform for the highest costs but its performance put it into the second tier. Still, Microsoft Azure has worldwide cloud centers and, if you already know your way around Windows Server and Hyper-V, you’ll feel right at home. I recommend Microsoft Azure for companies that have already bought into the Windows-centric world. I’d also keep a close eye on them as they continue to integrate opensource and Linux into their offerings. Microsoft Azure, with its new embrace of open-source software, could end up surprising all of us.