Microsoft’s cloud wows with great price-performance, Windows toolchain integration, and plenty of open source options
A long time ago in a century slipping further and further away, Bill Gates compared MSN with the exploding World Wide Web, saw the future, and pivoted nicely to embrace the Internet. A few decades later, someone at Microsoft looked at the cloud and recognized that the old days of selling Windows Server OS licenses were fading. Today we have Windows Azure, Microsoft’s offering for the cloud.
Azure is a cloud filled with racks and racks of machines like other clouds, but it also offers a wider collection of the building blocks enterprise managers need to assemble modern, flexible websites. There are common offerings such as virtual machines, databases, and storage blocks, along with not-so-common additions such as service buses, networks, and connections to data farms address verifiers, location data, and Microsoft’s own Bing search engine. There are also tools for debugging your code, sending emails, and installing databases like MongoDB and ClearDB’s version of MySQL.
All of these show that Microsoft is actively trying to build a system that lets developers easily produce a working website using the tools of their choice. Azure is not just delivering commodity Microsoft machines and leaving the rest up to you — it’s starting to make it simpler to bolt together all of the parts. The process still isn’t simple, but it’s dramatically more convenient than the old paradigm.
The Azure service is a godsend for those who are heavily invested in Microsoft’s operating systems. Many of the big clouds offer only Linux or BSD machines. Rackspace charges 33 percent more to build out a Microsoft Windows server, but Azure rents a Windows machine at the same bargain rate as Linux.
Did I say the same as Linux? Yes, because Microsoft is fully embracing many open source technologies with Azure. You can boot up a virtual machine and install a few of the popular Linux distros like Ubuntu Server 12.04 or OpenSuse 12.1. There aren’t many choices of open source distros, but Microsoft has chosen a few of the more popular ones. They cost the same as the standard Windows Server 2008 R2 and Windows Server 2012 offerings.
Microsoft’s embrace of open source is on full display with Azure. The company is pushing PHP, Node.js, Python, Java (if you consider Java open source), and even MySQL. Well, that’s not exactly true. You can create running versions of Drupal or WordPress, and Azure will set up MySQL back ends for you. If you go to the SQL tab to start up your own SQL database, you can provision an instance of Microsoft SQL Server, but there’s no mention of MySQL. That’s because Microsoft is letting a third party, ClearDB, deliver MySQL. It’s one of a dozen or so extras you can buy.
The websites with Drupal or WordPress are among many options available. Microsoft will let you have up to 10 free ones with your account. Then you push your HTML or PHP to them with Git, and the server does the rest. (Notice the embrace of Git too.)
These free options are come-ons. If your website takes off and you start getting traffic, you can upgrade to shared services or full, managed machines that can be load balanced. The documentation is a bit cagey about what happens as you start fiddling with the Scale control panel, but you get better guarantees of service and less throttling. If you move over to the Reserved setting, you get dedicated virtual machines with resource guarantees. This is a pretty simple way to build and test a website before deploying it for production.
Your list of Azure virtual machines and services can grow pretty quickly.
Tapping the Microsoft toolchain
Building a simple website tests only a small part of what’s available. Microsoft offers the largest smorgasbord of treats for enterprise programmers of any of the clouds I’ve seen — no doubt because the company is also one of the dominant programming tool creators. Microsoft has connected the services with tools in the Azure platform so that you can create, for instance, a “mobile service” just like you’re booting up a virtual server. While the other clouds are selling a commodity machine, Microsoft is trying to take it a bit further.
The integration isn’t as seamless as it could be. But while it leaves much of the work up to you, it’s neat to click a few buttons and download a Visual Studio project with the scaffolding for storing data in Azure. You must still use Visual Studio to create the app, but Microsoft is trying to make it simpler to create a Windows 8 smartphone app that stores its data with Azure.
What’s even more surprising is the iOS tab next to the Windows 8 tab. If you click there, you can download an Apple Xcode project file for your Mac. Your Windows back-end service can also support an iOS app. Microsoft is not just embracing open source code, but the new Borg, the iPhone.
Despite this detour, most of the options and much of the fun are reserved for Windows and Microsoft SQL programmers. You can create a cloud service wrapped around a database with Microsoft’s SDK. Then you can deploy it first to the staging server, then push it into production. It’s a pretty nice infrastructure. There’s quite a bit of depth to the SDK too. It’s not possible to cover all of it here, a feeling I often had while experimenting with Azure.
When you create your own Microsoft SQL databases with Azure, you pay by the gigabyte. The databases start at $5 per month per 100MB, but the cost per byte drops quickly. A 10GB database is only $45.96.
It’s worth mentioning that you don’t need to work with MIcrosoft’s pay-as-you-go plan. Microsoft gives fairly substantial discounts (20 to 32 percent) if you make a commitment and pay in advance. Should you go over what you promised to buy, Microsoft bills you for the rest at the standard rates. The monthly commitment deals kick in only when you promise to use $500 worth of services per month.
SQL isn’t the only option — Microsoft remains current here too. If you like, you can house your info in blobs, tables, or queues in a data store that can either be locally redundant or “geo redundant.” In other words, it can be replicated in one data center or across the country. The sizes can be pretty big. As an example, 1,025GB of geo-redundant storage costs $128.12 per month. Microsoft will also charge you for each “storage transaction,” but these seem fairly cheap. The price calculator quoted me 90 cents for 9 million. Does anyone else offer pricing in cents any longer?
Azure provides an easy way to track the load on your server.