Today we’re going to do a head to head comparison of two public clouds: Amazon Web Services and Microsoft Azure. The comparison is driven by a personal motivation to see more competitive information on public clouds, and a desire to build a framework to allow future cloud comparisons. To keep things simple, I’ve summarized the results in a Consumer Reports-like style.
Disclaimer: my experiences with Azure have been limited to a few proof of concepts over the last 18 months. But having spent about a decade of my career delivering products for Windows, I don’t think I missed the much.
What Makes a Cloud
For the purposes of this review, I am defining a cloud as on-demand compute, storage and application resources, available in multiple regions, charged based on consumption, and able to be provisioned and managed remotely. I recognize clouds delivering Infrastructure as a Service (IaaS) are very different from those offering Platform as a Service (PaaS). This comparison will take an IaaS-centric view, since complex business applications require more sophisticated building blocks, including the ability to integrate with the rich variety of third party tools and open source.
We have selected five areas upon which to compare our clouds:
- Compute - Ability to offer on-demand compute resources to meet different application performance needs.
- Storage - Ability to offer different types of storage, including storage attached to compute (medium durability, high performance), and long term storage (high durability, low performance).
- Application - Ability to offer on-demand application building blocks, such as relational databases, load balancers and queues.
- Data center - Ability to offer on-demand infrastructure in multiple regions around the globe.
- Integration - Ability to offer flexible integration, including access through a web-based console, command line and API.
Amazon AWS is the clear winner in our head-to-head comparison. It provides a highly flexible compute service in EC2, offering the widest arrange of configurations, support for a broad set of operating systems, integrating rich image management, and providing full access to the provisioned instances. Amazon also scores well on storage, offering the two essential types of storage for building cloud applications: attached storage (EBS) and long-term storage (S3). AWS also provide a wide array of data centers in all regions, with an open API that supports rich integration.
Microsoft scores a distant second in our comparison, in a large part due to its confusing mix of IaaS and PaaS services. One one hand, Microsoft offers traditional and pretty strong IaaS services in Windows Azure Storage and SQL Azure Database. But its compute service is all PaaS, but yet with support for a Virtual Machine role that ofers a limited form of IaaS (which still restricts the third party applications you can install; no wonder Microsoft SaaS applications do not run on Azure). While you could in theory write an application for Azure using Java or Ruby, it is clearly a Microsoft Developer Studio and .NET-centric solution. I’ll confess to really liking one innovation though: the ability to run your application on a personal cloud on your development environment, and then push it to the public cloud. But at its core, it seems Microsoft is attempting to straddle IaaS and PaaS, and unfortunately for at least compute, delivers neither very well.
With its head start, it is not a surprise that Amazon would beat Microsoft in a head to head cloud comparison. But it is a personal surprise to me at the size of the gap. Over the years, I have seen Microsoft roll like a Sherman tank through numerous markets, from office suites to databases to the Internet. But it appears as though Microsoft is working from a different playbook with Azure, driven by what appears to be a defensive focus on maintaining the hegemony of Windows. Who would have thought that an online bookseller would be beating the most significant software company of our time at its own game? But there is clearly something happening inside Amazon that is driving a pace of innovation, willingness to take risks, and market aggressiveness that is leaving companies like Microsoft in a cloud of dust.
Related Posts: Ten Commandments of the Cloud
Note: I started Windows programming in 1987 on Windows 1.01, and have delivered six desktop and two web-based Windows products to market in my career. I'll confess to having become awed by what has been coming out of Amazon in the last few years - but would be hard to accuse of being a Microsoft hater. ;)