What Makes a Cloud
For the purposes of this review, I am defining a public 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. While 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, based on the premise IaaS has become the defacto standard for public clouds.
We have selected six areas upon which to compare our clouds:
- Compute - Ability to offer on-demand compute resources to meet different application performance needs.
- Storage - Ability to attach performant storage to compute (e.g. block storage).
- Platform - Ability to offer on-demand application building blocks, such as an object storage, databases, load balancers and queues.
- Data center - Ability to offer on-demand infrastructure in multiple regions around the globe, ideally with multiple availability zones per region.
- Integration - Ability to offer flexible integration, including access through a web-based console, command line and API.
While IBM’s public cloud has had a relatively low profile until recently, it is a surprisingly robust offering, with support for a wide range of compute and storage. SmartCloud offers 32 and 64-bit instances, with up to 16 virtual cores and 16GB of memory per instance, and support for heterogeneous operating systems including Windows, Red Hat and SUSE, and the ability for customers to provide their own Linux images. In addition, they offer very flexible attached storage, with ability to attach up to 10TB volumes to compute (note: no support for volume striping). They also have six data centers spanning three continents, and integration support through a web-based console, command line and API. Two downsides to note in the current offer include the lack of availability zones and an object storage.
Microsoft's Azure suffers from what I call the Azure funnel: which is a feature set whose appeal is limited to a small target market. While Microsoft has continued to broaden its offer over the last few years (e.g. support for non-.NET languages and VM roles), it’s target market remains limited to organizations developing new web-based Windows applications using .NET, with a willingness to develop to Microsoft’s proprietary platform services, and no dependency on open source or third party software that requires more than a VM role. However, if you can work within the constraints of Azure, you have the ability to build a hyperscale application with minimal overhead. In addition, some of Microsoft’s standalone services - such as SQL Azure and BLOB storage - offer strong standalone building blocks that could be used effectively without embracing the overall Azure PaaS model.
When Force.com launched in 2007, the future of PaaS versus IaaS was still very unclear. But as we enter 2012, IaaS is the undisputed foundation and frame of the cloud computing house. The future of PaaS will not be in horizontal platforms, such as Force.com and Azure, but in vertical services that can be used for targeted application needs. As a result, IBM is the clear winner in our head to head comparison, with a very flexible compute and storage offering targeting enterprise customers. Azure continues to struggle to find its market, with an innovative approach that is too narrow and Windows-centric in its appeal. As one Microsoft employee told me: Azure is “unfortunately 5 to 7 years ahead of the market.”
The rumors in the cloudosphere are that Microsoft will be launching Linux VM roles in the near future. If true, it would be a positive sign that Microsoft is recognizing its defensive focus on maintaining the hegemony of Windows needs to change. But in the meantime, if you have to choose between Microsoft and IBM as your public cloud provider, the choice is clear: no one was was ever fired for buying IBM.
1/30/2012 Update: I've had several readers comment that my statement that SmartCloud lacks an object store is not true. IBM has partnered with Nirvanix to bring to market a SmartCloud object store.