Which framework to choose - OpenStack, AWS, Heroku, CloudFoundry!

Ashutosh Bijoor

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:

Cloud_Platform_Framework_By_Mendix.png

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

1: Software Defined Datacenter Users: Infrastructure Engineers

Compute

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, OpenStack Nova, MS Windows Azure, Google Compute Engine, IBM SmartCloud

Communicate

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, OpenStack Neutron

Store

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, OpenStack Cinder

2: Foundational PaaS Users: DevOps

Compute

Application Containers: an isolated, self-described, infrastructure-agnostic container for running apps. Examples: Docker, Dyno, CloudFoundry Warden, Imctfy

Communicate

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, Heroku Routing Layer, CloudFoundry Router

Store

Object Storage: storage and retrieval of objects via an HTTP API without requiring mounting, partitioning or formatting Examples: Amazon S3, OpenStack Swift, Ceph Storage

3: PaaS Users: Professional Developers

Compute

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, Heroku Buildpacks, CloudFoundry Buildpacks

Communicate

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, WSO2 StratosLive, Windows Azure BizTalk Services

Store

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, DynamoDB, Amazon Relational Database Service, Redshift, Heroku Postgres, Windows Azure SQL Database, Salesforce Database.com

4: Model-Driven PaaS Users

Compute

Business Engineers Business Process Management PaaS (bpmPaaS), Model-Driven aPaaS: higher level domain-specific languages (DSLs) runtimes as a service enabling Model-Driven Development (MDD) Examples: Effekit, Mendix App Platform

Communicate

Model-Driven iPaas:higher level DSLs in the integration domain runtimes as a service often including graphical design environments Examples: MuleSoft CloudHub,IFTTT

Store

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,QlikView, SAP BusinessObjects BI OnDemand, Platfora

5: App Services Users: Citizen Developers

Compute

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, force.com, AppXpress, GT Nexus, Mendix App Services, MuleSoft Anypoint connectors

Communicate

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, force.com, AppXpress, GT Nexus, Mendix App Services, MuleSoft Anypoint connectors

Store

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, force.com, AppXpress, GT Nexus, Mendix App Services, MuleSoft Anypoint connectors

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, Google Apps, Flickr, GoToMeeting, Workday, Constant Contact, Basecamp

By clicking “Accept all cookies,” you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. Privacy policy

Contact Us