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/ Microsoft Amazon Google VMware Availability Private CTP beta General availability Public beta Announced Supported Cloud Models Hosted Services, Hosted Services, Hosted Services Hosted Services, Computing Architecture Open PaaS + Open IaaS: Closed SaaS + Closed Paas: Open IaaS: Load balancing Yes Yes Yes Not announced Storage App and file storage; 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, 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. 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.
Charateristics
Attached Services and Rich Internet Services, through the PaaS layer.
Attached Services and Rich Internet Services, through the VMs.
Attached Services and Rich Internet Services, through the VMs.
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).
Elastic Compute Cloud (EC2) supports uploads XEN virtual
machine images to the infrastructure and provides services to instantiate and
manage them.
Develop web applications in Python or Django within specific
parameters, deploy to AppEngine.
Enables one to easily move virtual machines between environments and
run them onpremise or at any partner data centre.
SQL services
contacts, documents, pictures, spreadsheets, YouTube.
Language selection limited to Python and Django.
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".

Comments