Demystifying PaaS landscape - Fishing in muddied waters of CloudComputing
Every other day there is a new cloud product / platform announcement. Not just startups even the mega ISVs are jumping into the cloud bandwagon. Oracle’s Larry Elision first says cloud is all crap and then announces ‘Cloud-in-a-box’ sort of an oxymoron and in this year’s OOW Oracle makes a flamboyant announcement is just one of the most popular samples. The platform-as-a-service landscape is muddied every passing day as more vendors are cloud washing their offerings
With all these, I thought it would be a good attempt to demystify different platform categories in the cloud with some vendor examples. There are 2 board categories of PaaS platforms
a) aPaaS – Application Platform as a Service b) iPaaS – Integration Platform as a Service
In this post, I want to focus on aPaaS – i.e. Application PaaS. There are 3 categories of aPaaS: 1) Instance PaaS 2) Framework PaaS 3) Meta data PaaS
Instance PaaS :Is Suitable for moving existing applications to a Cloud Platform. Example, if you have applications developed using .NET or Java then you can consider slapping those existing apps on Azure or Amazon’s Elastic Bean Stalk and make a move to cloud. However, bear in mind is a lift and shift approach and is not the most optimum technical solution – while it might met get you Tick marks in your marketing collaterals. The central issue around this option would be the architecture of our existing application may not comply to Cloud’s Stateless Architecture that gives you the transparent scale out option.
Framework PaaS : In this option programmers have to comply to the constraints of the framework. However, the good thing is the framework takes care of automatically deploying the application on as many compute nodes as it is required for the traffic/load at any given point in time. This essentially is like app server in the cloud with built-in load balancer, web server and app container. And, in some cases, like Google’s App Engine a database – big table – is also provided. App Engine and Heroku are good examples of framework PaaS. This type of PaaS is suitable for building new consumer facing (B2C) web applications. Moving existing code to these will require good amount of rework – if not a heart surgery.
Meta data PaaS : This type of PaaS can be visualized as a layer of abstraction on top of Framework PaaS. In many ways it provides all the good things for a framework PaaS and more. This is suitable for developing transaction oriented B2B business applications. Examples like are SaaS applications like CRM, SFA, Dealer Management, Agency Management and the likes. Force.com and OrangeScape fit into this category of PaaS. These cloud platforms typically feature a visual studio for designing/modeling the applications and a runtime that executes the application. There are capabilities to design data model, workflow process, UI / Forms, integration tasks and reports. Enterprise IT teams, System Integrators, Service Providers will benefit from this - Meta Data PaaS – at OrangeScape we call it ‘Visual PaaS’.
The bottom line: It is important to understand the trade-offs to make a good choice between these 3 categories of PaaS – that is:
- Abstraction vs Granularity
- Modeling vs Programming
- Productivity vs Control