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.
Tips from JavaWorld
Also see: Which freaking PaaS should I use?
Want more Java enterprise news? Get the JavaWorld Enterprise Java newsletter delivered to your inbox.
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 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.
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 centers. 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 center.
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 recognizing enterprises are not Windows-only shops, which is the first step toward realizing a next-generation PaaS.
How does CloudBees fit in?
CloudBees is a public PaaS that is Java specific and hosted in Amazon's cloud. We cover the entire lifecycle of an application, from code to build, test and continuous deployment. Many other players just focus on the launch stage. Even though we're Java focused, we can run any language and manage the continuous deployment and re-deployment of your app.
Some people say that PaaS has the potential to be bigger than IaaS. Gartner reported last year that the PaaS market is just one-tenth 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 percent 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 customized apps.
Read more about cloud computing in Network World's Cloud Computing section.
This story, "PaaS Primer: What is platform as a service and why does it matter?" was originally published by Network World.