Sunday, May 3, 2009

Cloud Computing Paradigms : IaaS and PaaS

Cloud computing has created enormous buzz over the past year and different flavours of Cloud Computing have evolved.



Infrastructure as a Service (IaaS):

Cloud vendors like Amazon (EC2), GoGrid and lots of other smaller players offer compute, storage and networking bandwidth resources on-Demand. Customers can dynamically provision servers and pay only for what they use.

What benefits does IaaS offer?

A lot of IT admin activities are offset to the service provider. Providers offer SLAs to guarantee uptime and over time providers would start offering value added services like automatic backup, update and patch management and multi site hosting capabilities. Don’t think any of these services are offered by any vendor today, but with VMware vCloud platform, providers should be able to offer a lot more value added services at a premium.

It also gives the flexibility to dynamically scale up /down your compute resources based on the demand. Also all the current apps running in your datacenters can be quickly migrated to the cloud without any major changes to the app itself. This has been the key reason for the success of IaaS.

But IaaS does not offer any other notable benefits to the app developers themselves. Though they can leverage the service provider APIs to quickly add new servers, they should still ensure to take care of the app scalability, load balancing and performance tuning.

Hence though IaaS might be the ideal choice for getting your current apps to the cloud, if you are building new apps for the Cloud, you might want to look at the various built in features that PaaS offers to app developers before making the choice.

Platform as a Service (PaaS):

PaaS vendors offer a framework for developers to quickly develop and deploy their apps on the cloud. For example Google App Engine offers developers to build Python and java (beta) apps and deploy them on the Google platform. MS has its azure platform to build .net apps.

What benefits does PaaS Offer:

PaaS totally negates the need for an IT admin to manage the infrastructure of your apps. The infrastructure is totally hidden and only the app development platform is exposed to the users.

Developers also are hugely benefitted by building their apps within the framework exposed by the platform. This would mean that your app can automatically scale from a few hundred users to millions of users. The app developers don't have to worry about adding more resources or performing load balancing tasks to handle the workload.

So what is the drawbacks in the PaaS Approach - First of course is that existing apps will need to be ported or actually it makes sense for only apps that are newly built. It is also going to take time for these platforms to mature and there is also the learning curve for developers to get used to the platform capabilities.

While writing up this blog post, came across the architecture diagrams of Citrix Cloud Center and VMWare vCloud. Gives me the impression that the difference between IaaS and PaaS are going to thin out in the future. Did have a argument with colleagues on whether vCloud would be an IaaS or a PaaS. Remember all the argument around para virtualization and full Virtualization. Do those terms make any sense today!!!

No comments: