Even most non-techies probably have an idea of what cloud computing is by now, but when you start getting into IaaS, SaaS and 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.
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.
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 virtualisation 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.
How would you handicap the PaaS market at this point, particularly some of the bigger players?
The four big Java middleware companies are IBM, Oracle, VMware and Red Hat, and it's very interesting to watch their PaaS strategies. They understand the market is going toward cloud, but that's not where their strength is - it's in private data centres. These large legacy vendors are conflicted on how to protect their legacy business while also embracing the cloud.
The one that has made a bold move in the cloud is VMware with Cloud Foundry. The company has a history of being proprietary and private, but when they did a PaaS, they open sourced it. Now they've rolled that into their Pivotal Initiative, along with Big Data research. They still have a conflict between service and software, though. Red Hat is as conflicted as VMware, deciding in November that its OpenShift would be fully private. They're clearly focusing on their strength in the data centre.
What about Salesforce.com and Microsoft? They seem like big PaaS players, too.
Salesforce made the acquisition of Heroku more than a year ago, which was really interesting. It's a great team and it will be interesting to see if they can maintain the momentum while being part of a large, publicly traded company. As for Salesforce's other platform, Force.com, that is a proprietary language designed specifically to build apps to run on Salesforce's CRM platform. We haven't seen much in terms of integration between Heroku and Salesforce.com yet, though.
Microsoft is having a tough time in PaaS. The initial versions of Azure were really more of an IaaS than a PaaS, and last year they extended it to include Linux. It still has some holes, though - if you try to scale from three nodes to five, you have to shut the process down. They've done the right thing by recognising enterprises are not Windows-only shops, which is the first step toward realising a next-generation PaaS.
What about public PaaS?
Some people say that PaaS has the potential to be bigger than IaaS. Gartner reported last year that the PaaS market is just a 10th the size of the SaaS market, though, so is it realistic to think PaaS can be as big as IaaS and SaaS?
By 2020, I believe 80% of workloads will be in the public cloud. Every time you face a problem you will have two choices: Is there an app out there to solve my problem? If so, you will use a SaaS. If there is not already an app, then I will build a custom app using a PaaS. At no point will I care about the infrastructure or where the app is hosted. SaaS and PaaS, that's it. PaaS is an extremely strategic play, all focused on customised apps.