A framework for categorizing and comparing cloud platforms - OpenStack, AWS, Heroku, CloudFoundry!

aws Feb 19, 2014

Thanks to Alex Popsecu’s NoSql blog, found a well articulated thesis by Johan den Haan, CTO at Mendix. Johan proposes a framework that describes the various layers of cloud platform services starting from virtualized hardware up to end-user software applications. This framework can also be used to categorize various cloud platforms such as OpenStack, Amazon Web Services, Heroku and CloudFoundry.

He defines a 3 column, 6 layer framework that outlines the various components required to run an application in “the cloud” as below:

A framework to categorize and compare cloud platforms

This is such a neat framework! For my reference, have expanded the table with salient points from Johan’s article here:

Layer, UsersComputeCommunicateStore
**1: Software Defined Datacenter** *Users*: Infrastructure Engineers**Virtual Machines**: *pool resources of many different servers, thereby creating a virtual layer that offers automatic load balancing and higher levels of availability than the underlying hardware can offer* **Examples**: [Amazon EC2](http://aws.amazon.com/ec2/), [OpenStack Nova](http://docs.openstack.org/developer/nova/), [MS Windows Azure](http://www.windowsazure.com/en-us/services/virtual-machines/), [Google Compute Engine](https://cloud.google.com/products/compute-engine), [IBM SmartCloud](http://www.ibm.com/cloud-computing/us/en/iaas.html?lnk=iaas-body)**Software Defined Networking (SDN)**: *decouples and isolates virtual networks from the underlying network hardware and provides higher utilization of the hardware, more flexibility, and easier management* **Examples**: [Nicira](http://nicira.com/), [OpenStack Neutron](https://wiki.openstack.org/wiki/Neutron)**Software Defined Storage (SDS)**: *decouples storage volumes from the underlying physical hardware with features like caching, snapshotting, high availability, etc. and also minimizes performance degradation due to server virtualization* **Examples**: [Virsto](http://virsto.com/), [OpenStack Cinder](https://wiki.openstack.org/wiki/Cinder)
**2: Foundational PaaS** *Users*: DevOps**Application Containers**: *an isolated, self-described, infrastructure-agnostic container for running apps*. **Examples**: [Docker](https://www.docker.io), [Dyno](https://devcenter.heroku.com/articles/dynos), [CloudFoundry Warden](http://docs.cloudfoundry.com/docs/running/architecture/warden.html), [Imctfy](https://github.com/google/lmctfy)**Routing, Messaging**: *routing messages among app containers, storage systems, and external systems as well as load balancing incoming requests to application instances* **Examples**: [CloudFoundry Messaging/NATS](http://docs.cloudfoundry.com/docs/running/architecture/), [Heroku Routing Layer](https://devcenter.heroku.com/articles/http-routing), [CloudFoundry Router](http://docs.cloudfoundry.com/docs/running/architecture/)**Object Storage**: *storage and retrieval of objects via an HTTP API without requiring mounting, partitioning or formatting* **Examples**: [Amazon S3](http://aws.amazon.com/s3/), [OpenStack Swift](https://wiki.openstack.org/wiki/Swift), [Ceph Storage](http://ceph.com/ceph-storage/object-storage/)
**3: PaaS** *Users*: Professional Developers**Application PaaS (aPaas)**: *language runtimes such as JVM and others that allows deployment of code written in different languages such as Java, Python, Go, Node.js, Grails, Scala, PHP etc. into Application Containers* **Examples**:[Google App Engine](https://developers.google.com/appengine/), [Heroku Buildpacks](https://devcenter.heroku.com/articles/buildpacks), [CloudFoundry Buildpacks](http://docs.cloudfoundry.com/docs/using/deploying-apps/buildpacks.html)**Integration PaaS (iPaas)**: *provides the communication among applications whether it is in the cloud or on-premise with features like routing, transformations, queuing in the form of an Enterprise Service Bus (ESB) in the cloud* **Examples**: [TIBCO Cloud Bus](https://cloudbus.tibco.com/), [WSO2 StratosLive](http://wso2.com/products/enterprise-service-bus/), [Windows Azure BizTalk Services](http://www.windowsazure.com/en-us/services/biztalk-services/)**Database PaaS (dbPaas)**: *relational, key-value or column-oriented database delivered as a service, including things like availability and scalability, in most cases in a multi-tenant setup* **Examples**: [SimpleDB](http://aws.amazon.com/simpledb/), [DynamoDB](http://aws.amazon.com/dynamodb/), [Amazon Relational Database Service](http://aws.amazon.com/rds/), [Redshift](http://aws.amazon.com/redshift/), [Heroku Postgres](https://postgres.heroku.com/), [Windows Azure SQL Database](http://www.windowsazure.com/en-us/services/data-management/), [Salesforce Database.com](http://www.database.com/)
**4: Model-Driven PaaS** *Users*: Business Engineers**Business Process Management PaaS (bpmPaaS), Model-Driven aPaaS**: *higher level [domain-specific languages (DSLs)](http://www.theenterprisearchitect.eu/archive/2009/05/06/dsl-development-7-recommendations-for-domain-specific-language-design-based-on-domain-driven-design) runtimes as a service enabling [Model-Driven Development (MDD)](http://www.theenterprisearchitect.eu/archive/2009/08/05/a-metaphor-for-model-driven-engineering)* **Examples**: [Effekit](http://www.infoq.com/news/2013/03/baeyens-activiti), [Mendix App Platform](http://www.mendix.com/application-platform-as-a-service/)**Model-Driven iPaas**: *higher level DSLs in the integration domain runtimes as a service often including [graphical design environments](http://www.mulesoft.com/mule-studio)* **Examples**: [MuleSoft CloudHub](http://www.mulesoft.com/cloudhub/ipaas-cloud-based-integration-demand), [IFTTT](https://ifttt.com/wtf)**Business Analytics PaaS (baPaaS)**: *tools that focus on making data storage, data retrieval, and data processing accessible for business engineers including support for big data* **Examples**: [TIBCO Spotfire](http://spotfire.tibco.com/en/discover-spotfire/why-spotfire/self-service-data-discovery.aspx), [QlikView](http://www.qlikview.com/us/explore/products/big-data), [SAP BusinessObjects BI OnDemand](http://www.biondemand.com/businessintelligence), [Platfora](http://www.platfora.com/how/)
**5: App Services** *Users*: Citizen Developers**Compute App Services**: *pre-built computing services that can be configured and composed to extend existing applications or build completely new ones* **Examples**: [Google Prediction API](https://developers.google.com/prediction/), [force.com](http://www.force.com/why-force.jsp), [AppXpress](http://developer.tradecard.com/), [GT Nexus](http://www.gtnexus.com/), [Mendix App Services](http://www.mendix.com/application-platform-as-a-service/#modelDrivenDevelopment), [MuleSoft Anypoint connectors](http://www.mulesoft.com/cloud-connectors-full)**Communicate App Services**: *pre-built communication services that can be configured and composed to extend existing applications or build completely new ones* **Examples**: [Amazon Simple Email Service](http://aws.amazon.com/ses/), [force.com](http://www.force.com/why-force.jsp), [AppXpress](http://developer.tradecard.com/), [GT Nexus](http://www.gtnexus.com/), [Mendix App Services](http://www.mendix.com/application-platform-as-a-service/#modelDrivenDevelopment), [MuleSoft Anypoint connectors](http://www.mulesoft.com/cloud-connectors-full)**Store App Services**: *pre-built storage services that can be configured and composed to extend existing applications or build completely new ones* **Examples**: [Dropbox API](https://www.dropbox.com/developers/core), [force.com](http://www.force.com/why-force.jsp), [AppXpress](http://developer.tradecard.com/), [GT Nexus](http://www.gtnexus.com/), [Mendix App Services](http://www.mendix.com/application-platform-as-a-service/#modelDrivenDevelopment), [MuleSoft Anypoint connectors](http://www.mulesoft.com/cloud-connectors-full)
**6: Software as a Service (SaaS)** *Users*: End-users**Applications**: *end-user applications that could be built on top of previous layers (or on dedicated hardware)* Examples: [salesforce.com](http://salesforce.com), [Google Apps](http://www.google.com/enterprise/apps/business/), [Flickr](http://flickr.com), [GoToMeeting](http://www.gotomeeting.com/), [Workday](http://www.workday.com/), [Constant Contact](http://www.constantcontact.com/), [Basecamp](https://basecamp.com/)
Do read the original [full article by Johan here](http://www.theenterprisearchitect.eu/blog/2013/10/12/the-cloud-landscape-described-categorized-and-compared/) for a more detailed explanation of the above framework. And see how this framework can be used to compare the different cloud platforms such as OpenStack, Amazon Web Services, Heroku and CloudFoundry.

Tags

Ashutosh Bijoor

Adventurer, cyclist, musician, mathematician, data architect

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.