PaaS : Cloud Application Platforms


Cloud is having a thunderstorm these days. All the buzzbowrds related to cloud are raining everywhere and Cloud in itself is sweeping IT in all facets. I have no intentions of creating further confusion by "Cloud Application Platform". The sole intension is to put my perspective ( with comments and deviations most welcomed ).

Slight flashback
When we start reading about cloud, everyone comes accross 3 "is-a-Service". Iaas (Infrasructure as a Service), PaaS (Platform as a Service) and SaaS (Software as a Service).
IaaS - Model in which hardware infrastucture is rented out by the Infrastructure provider and charged as per usage. In this case the user would not want to maintain the physical infrastructure itself.
SaaS - Model in which applications are hosted by a provider or a vendor and made available over a network. It can be considered as the next level of IaaS
PaaS - It can be considered as the middle path of IaaS and PaaS. It is not a finished produc as PaaS and not as raw as IaaS. Here providers give you hook to develop to laverage the platform.
"Cloud Application Platform" (CAP) is a new term coined for PaaS. These platforms provide you with environment to deploy your application. You can shop for the components you require. 

Big players participating in providing the service:
  1. VMware
  2. Amazon 
  3. Google 
  4. Microsoft
  5. RedHat
  6. SalesForce.com

Prominent "Cloud Application Platform" available today are :
  1. Amazon Elastic Beanstalk. - Stands out primarily because of its association with Amazon.
  2. CloudBees - One of the first PaaS offerings.
  3. Google App Engine - One of the oldest.
  4. Heroku - This is also from the initial names and gained quite a lote of name. Great support for ruby. 
  5. Mocrosoft Azure - its Microsoft
  6. RedHat Openshift - Considered to have a very good support for JBoss technologies.
  7. VMware vFabric - VMware has been leader in virtualization space. Good Spring framework support.
  8. JElastic - Quite recent entry. Just wanted to mention to encourage new and small players. They recently got the Duke's Choice Award 2012.
There are so many other players in the market like EngineYard, CloudFoundry, AppFog, SalesForce.com etc.
Every Platform give some inherent common capabilities:
  1. Cloud Infrastructure - Deployed Application Servers, Messaging Queues etc. can be used out of the box
  2. Management Tools - Lot of UI and CMD based tools available to manage your infrastructure 
  3. Auto Scaling - Auto scale as per the demand to handle the load.
  4. Pay as you need - Pay only for the services used as per the duration.
With so many players in the market, but there are some criteria based on which you decide which one to go for:
  1. Infrastructure Support -  There are some providers like Amazon, Microsoft and Google. While there are others who depend on other vendors for infrastructure support.
  2. Vendor Lock-in - This is a very important point as some big players like Microsoft and Google have a very high degree of lock-in as you would need to use platform APIs to utilize benefits. In providers like CloudBees, JElastic etc. there is absolutely no vendor lockin as you can directly deploy your app without change.
  3. Platform provided application Pool - The advantage of vendors having own IaaS like Google, Amazon, Microsoft is that you can deploy any App required. All vendors have a pool of applications available for use like Application Servers, Databases, Messaging Queses etc. So you need to make a decision based on your need if a application of the specific manufacturer is available in CAP.
  4. Development Environment Support - Though most of the platforms claims to be supporting most of the prominent development environments but still they have there own strenghts because of their inherent architecture. Like Microsoft Azure supposed to be supporting .Net best. Red Hat OpenShift has inherent support for JBoss tolls and liberaries.  vFabric from VMware have application servers specially tuned for spring framework (obvious as VMware bought SpringSpource.com). Heroku has a great support for Ruby as it is created by creaters of Ruby language.
  5. Pricing policies
I welcome your comments in case I might nave missed any points or corrections are required.

Comments

Popular posts from this blog

Hibernate: a different object with the same identifier value was already associated with the session

BeanDefinitionStoreException: Failed to parse configuration class: Could not find class [javax.jms.ConnectionFactory]