Every other day there is a new cloud product / platform announcement. Not just startups, even the mega ISVs are jumping onto the cloud bandwagon. Oracle's Larry Ellison first said cloud is all crap and then announces ‘Cloud-in-a-box,' sort of an oxymoron, and in this year's OOW Oracle made a flamboyant announcement - this is just one of the more popular samples. The platform-as-a-service landscape is muddied every day as more vendors are cloud washing their offerings.
With all this, I thought it would be a good attempt to demystify different platform categories in the cloud with some vendor examples. There are two broadd categories of PaaS platforms:
In this post, I want to focus on aPaaS, i.e., Application PaaS. There are three categories of aPaaS:
Instance PaaS: Is Suitable for moving existing applications to a Cloud Platform. For example, if you have applications developed using .NET or Java, you can consider slapping those existing apps on Azure or Amazon's Elastic Bean Stalk and make a move to the cloud. However, bear in mind it's a lift and shift approach and is not the most optimum technical solution - while it might get you Tick marks in your marketing collaterals. The central issue around this option is that 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 with the constraints of the framework. However, the good thing is the framework automatically deploys the application on as many compute nodes as is required for the traffic/load at any given time. This essentially is like app server in the cloud with a built-in load balancer, web server and app container. And, in some cases such as 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.
Metadata 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 are SaaS applications such as CRM, SFA, Dealer Management, and Agency Management. 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 for designing data model, workflow process, UI / Forms, integration tasks and reports. Enterprise IT teams, system integrators, and service providers will benefit from this - Metadata PaaS - at OrangeScape we call it ‘Visual PaaS.'
It"s important to understand the trade-offs to make a good choice between these three categories of PaaS - that is: