Even most nontechies probably have an idea of what cloud computing is by now, but when you start getting into IaaS vs. SaaS vs. PaaS even those of us in the industry can struggle.
In a nutshell, infrastructure as a service (IaaS) provides virtual machines or storage from a provider on demand with elastic scalability and software as a service (SaaS) simply involves hosting software in the cloud (like Salesforce.com) so it doesn't take up on-premises resources.
[ InfoWorld's Andrew Oliver answers the question we've all been asking: Which freaking PaaS should I use? | Get the no-nonsense explanations and advice you need to take real advantage of cloud computing in InfoWorld editors' 21-page Cloud Computing Deep Dive PDF special report. | Stay up on the cloud with InfoWorld's Cloud Computing Report newsletter. ]
But what about platform as a service (PaaS)? What exactly is it, who are the big players in this market and just what is the difference between it and IaaS? To flesh this all out, I sat down recently with Sacha Labourey, former CTO of JBoss -- which was acquired by Red Hat -- and now founder and CEO of CloudBees, a Java PaaS company.
What is PaaS?
Well, there does seem to be some confusion around PaaS. It's a bit like middleware, both in what it does and in that people had trouble understanding [middleware] 10-15 years ago. For us, PaaS is a set of services aimed at developers that helps them develop and test apps without having to worry about the underlying infrastructure. Developers don't want to have to worry about provisioning the servers, storage and backup associated with developing and launching an app. They want to write code, test the app, launch the app, and be able to continually make changes to it to fix bugs. All the back-end stuff about setting up servers should be done automatically and transparently in the background, and that's the promise of PaaS.
[ MORE PAAS: Tips for a successful PaaS rollout ]
So you're writing applications that run on virtual machines in the cloud. That sounds a lot like IaaS.
If you deal with the infrastructure layer, chances are you're working in IT and your job is to build the software stack -- a virtualization layer, compute and storage. All that work of configuring the infrastructure is exactly what developers don't want to do. PaaS works on top of IaaS and will do all of that work automatically.
So then what's the difference between PaaS and middleware?
Middleware is a software layer that offers sophisticated features to developers -- transactions, security, clustering, etc. -- so they can focus on building their custom applications instead of solving those hard problems repeatedly. But middleware is only "static" software in the sense that you still have to configure it, deploy it on servers, manage and monitor it, which was typically left to IT teams to do.
PaaS is a superset of middleware and offers all these good middleware services to developers, in addition to covering the operational aspects that were typically owned by IT teams.