Since the announcement of Cloud Computing platforms such as Amazon Web Services, Microsoft Windows Azure, Google AppEngine and VMware vCloud, there has been a swell of interest in what they provide, how they compare to one another, and which should those developing and deploying Cloud applications should consider.
In order to do this, it is important to understand the principal Cloud models, since these map to the various scenarios which apply to both consumer and enterprise applications. Here is a summary of the models:
Hosted Services: Thin client, centralised architecture, data and capabilities exclusively in the cloud
Attached Services: Traditional desktop client, client-server architecture, data and extended capabilities in the cloud
Rich Internet Services: Rich internet client, p2p architecture, data and capabilities distributed, clients part of the cloud
Here is a summary of the four platfoms:
Microsoft Windows Azure: Currently in private beta; boasts an impressive development platform, integrated set of capabilities, an strong Cloud architecture (supporting Hosted Services, Attached Services and Rich Internet Services) and the promise of robust enterprise support and integration. Presently the beta provides public Cloud capabilities through both PaaS and IaaS and operates on the principle of a Cloud OS rather than virtualised environments, but the IaaS capabilities are entirely opaque to the user, being managed by Microsoft. The private Cloud version still in development would enable IT to host their own Windows Azure Cloud. All development, deployment, administration, management and monitoring are provided at the PaaS level.
Amazon Web Services: The first solution to exit beta, AWS provides the most mature public Cloud solution on the market. AWS offers IaaS, - the compute resources for virtual machines, storage, messaging, persistence - operating on the principle of virtualised environments, affording the user full control over virtual machines and to deploy and operate LAMP- or Microsoft-stack applications to their requirements and preferences. For PaaS, the user has to use a third party platform or assemble their own. As of this date there are no plans to provide a private Cloud version of AWS.
Google App Engine: In beta, Google AppEngine claims that one can "drop your code and we’ll figure out the rest”. AppEngine provides SaaS with carefully constrained PaaS, enabling users to build their apps and deploy them to the Google's environment, where they manage all of IaaS and most of PaaS. Google's architecture supports only public Cloud,, and as of this date there are no plans to provide a private Cloud version or analogue. AppEngine, like Google Apps, only supports the Hosted Services model.
VMware vCloud: Announced in late 2008, vCloud is solution promising to enable taking standard VMware virtual appliances and runing them anywhere: on-premise or in a data centre of any provider supporting VMware’s infrastructure. Similar to AWS, vCloud provides IaaS, the thrust of VMware's proposition being that it is to support both public and private Cloud on release. This differs from the other four in this comparison; only Microsoft has indicated upcoming support for private Cloud, and this trails its public Cloud beta.
A breakdown of these four platforms by features and characteristics is as follows:
|
Features/ Charateristics |
Microsoft |
Amazon |
Google |
VMware |
|
Availability |
Private CTP beta |
General availability |
Public beta |
Announced |
|
Supported Cloud Models |
Hosted Services, Attached Services and Rich Internet Services, through the PaaS layer. |
Hosted Services, Attached Services and Rich Internet Services, through the VMs. |
Hosted Services |
Hosted Services, Attached Services and Rich Internet Services, through the VMs. |
|
Computing Architecture |
Open PaaS + Closed IaaS: Develop apps (.NET) for clients and servers, the latter which Microsoft runs on Windows 2008 VMs according to environment specifications (number of machines and types needed, etcetera). |
Open IaaS: Elastic Compute Cloud (EC2) supports uploads XEN virtual machine images to the infrastructure and provides services to instantiate and manage them. |
Closed SaaS + Closed Paas: Develop web applications in Python or Django within specific parameters, deploy to AppEngine. |
Open IaaS: Enables one to easily move virtual machines between environments and run them onpremise or at any partner data centre. |
|
Load balancing |
Yes |
Yes |
Yes |
Not announced |
|
Storage |
App and file storage; SQL services |
Simple Storage Service (S3) and SimpleDB |
Datastore APIs |
Not announced |
|
Message queuing for machine communcations |
Message queue in Windows Azure storage |
Simple Queue Service (SQS) |
None |
Not announced |
|
Integration with other services |
.NET services as BPM integration(i.e. BizTalk in the cloud):
Identity management, access control , and workflow services, as well as a service bus.
Live services (contacts, mail, maps, etcetera) |
None |
Integration supported with existing Google services: authentication, mail, base, calendar, contacts, documents, pictures, spreadsheets, YouTube. |
None |
|
Public or Private Cloud |
Public, private expected in late 2009 |
Public |
Public |
Public and private |
|
Development tools |
Integration into Visual Studio, support for any .NET languages, support for third party IDEs (starting with Eclipse). Support for other languages (Python, Java)planned for late 2009.
Strong story for development as this is supported by the PaaS layer. |
Not applicable. Amazon runs VMs, and as such does not provide any development platforms. One develops apps as one otherwise would for the base OS running on VMs. No PaaS support for development. |
Basic editing, local simulation, and deployment tools. Language selection limited to Python and Django.
Application-level tools such as Google Web Toolkit (GWT) do not have any integration with Google AppEngine.
Limited PaaS support for development. |
Not applicable. VMware runs VMs, and as such does not provide any development platforms. One develops apps as one otherwise would for the base OS running on VMs. No PaaS support for development. |
Which is best for the user and IT? This depends on the type of applications one plans to deploy to the Cloud, a rich topic in itself, which I leave to my presentation "There's Cloud, then there's Cloud".