Platform as a Service vs Infrastructure as a Service

This week I attended a tech talk about cloud computing and more in general about Microsoft Azure. It got me thinking a bit regarding PaaS vs IaaS (= virtual servers). Let me give you my thoughts.

PaaS – The good

No servers

You do not have to deal with servers, virtual or physical. You work with resources.

No software upgrades

No OS of software upgrades.

Easy scaling

Scaling your infrastructure is already taken care of for you. You just need to make sure you follow the guide lines for developing scaleable applications on that platform.

PaaS – The bad

Limits your software stack

You might not be able to pick the best suited application server/web server/caching solution/database/other great software for your application. You are often limited in some way to what is provided by the PaaS.

Portability and lock in

Several of the PaaS solutions today require you to develop for that platform, for example Microsoft Azure and Google AppEngine. If you want to move your application anywhere else, you are out of luck. There is only one provider – so then you will have to rewrite your application (or at least parts of it), to be able to run it somewhere else. If you are using services provided by the PaaS that is not available somewhere else, for example Azure SQL Server or Googles Bigtable database, it might get even harder.

Pricing can be confusing

Can be hard to estimate how much running your application will cost. Microsoft Azure is a good example of a confusing price model.

IaaS – The good

Flexibility

Full control over your software stack, if you want to switch to a more cutting edge web server or cashing solution, go ahead.

Portability

If you need, it is easy to move to another provider of IaaS, to a private cloud or even to physical servers.

Easier to estimate your cost

Most PaaS you pay per computing hour of each virtual server, per GB of stored and transfered data.

IaaS – The bad

Administration

You will need sysadmins to manage your servers, just like normal physical servers

Scaling

You will have to build a scaling infrastructure on your own.

 

Conclusion

The PaaS idea is great, but it means giving up too much control and flexibility over your application, and what is worst – it locks you into a provider. I know that Microsoft is working towards enabling private Azure hosting, this would allow you to host your Azure application in your private company Azure cloud, or with Microsoft, or other providers. I hope other providers move in this direction as well. Private PaaS hosting would allow us to develop our application and run it anywhere, but with IaaS we can already do this today!

To conclude things, I might be old school, but I still prefer IaaS to PaaS.

Peter

One thought on “Platform as a Service vs Infrastructure as a Service

  1. I think we haven’t seen true PaaS offering yet in Azure. If you use a webrole you’re still running on your own VM. This is still not true multi-tenancy with pay-for-use.

    With a true asycnrhonous event model you can imagine a more pure PaaS solution where your stateless application can really be running anywhere. I think then economics will drive to PaaS over IaaS.

Leave a Reply

Your email address will not be published. Required fields are marked *