Being part of the choir, it’s easy to assume that everyone gets cloud. To those of us that live and breathe cloud, the differences in SaaS, PaaS and IaaS are obvious.
Working with people that aren’t part of the choir, however, shows that cloud is still one of the most misunderstood phrases in the IT industry today. In some ways this is no surprise, too, because unless you’re a direct customer working in each layer of the stack, you’re probably finding it hard to conceptualize how the layers fit together beyond the popular cloud pyramid diagram. That hasn’t stopped people from spending on cloud-based services as a recent report from Juniper estimates that global spending on cloud technology will go up 20% from last year to US$174.2 billion, and will reach $235.1 billion by 2017.
More recently, the confusion over cloud-computing layers has manifested itself into some pretty heated, wildly misleading declarations, particularly at the PaaS to IaaS “boundary” (which is double-quoted because it’s an artificial dependency). Over the past year or so, we’ve seen more than a few articles and reports that predict the extinction of PaaS, as IaaS vendors go upstack to offer more and more PaaS-like features. Although I respect these analysts and IaaS vendors (some of whom are well renowned in the cloud-computing world) for speaking their minds, they can’t be farther from reality.
SaaS vs. PaaS vs. IaaS
Let’s start with some quick-and-dirty definitions of each layer in the technology stack. SaaS is easy for consumers to understand, but the distinction between PaaS and IaaS is much harder for non-developers to distinguish.
Software-as-a-Service is the easiest to understand because it’s widely available to consumers and business users, and has been made a common word by companies like Salesforce.com. SaaS refers to a Web-based piece of software that customers can start using right away, and it is a modernization of traditional business applications. Typically, a SaaS application is an online app that a user logs into and uses. The vendor releases software updates and patches to this central app, and all data is stored in a managed cloud. Gmail and Mint are other examples of SaaS applications.
Platform-as-a-Service is probably hardest of the three for the uninitiated to comprehend, because these services are built for developers. PaaS is a computing platform upon which devs can build their applications without having to worry about configuring any software or infrastructure underneath, or without having to worry about how the application they built needing to be written to run in a cloud-like environment.
(Related: How to pick your best PaaS)
As a result, developers can spend 100% of their time on their core competency of developing applications, and never again worry about how an application needs to be built for a cloud world, how it needs to be run, or the details related to managing it. PaaS is a modern version of the application server (think JBoss). For example, my company, Apprenda, provides a PaaS software package for enterprise developers.
Infrastructure-as-a-Service is at the bottom of the cloud stack. IaaS refers to all the servers, storage, networking and operating systems needed to run your applications at scale. IaaS simply provides this infrastructure on demand, eliminating the need for your own employees to maintain everything. IaaS is the new hardware. IaaS is great for those who need—but can’t afford—high-performance computing power with a few clicks of a button.
Why PaaS and IaaS should stay separate
I can see why analysts think PaaS will be subsumed by IaaS in the near future. Articles by David Linthicum and Alex Freedland of Mirantis describe PaaS as a natural extension of IaaS, only providing the ability to add some extra functions on top of existing infrastructure such that developers can easily work in one environment, and their colleagues in IT can control the infrastructure.
In reality, PaaS is a feature of IaaS as much as WebSphere or JBoss is a feature of Linux OS—not at all. PaaS specializes in a platform that supports the writing of code, which cannot easily be classified as a commodity.
If you consume PaaS as an extension of IaaS, your end result will be blunt stack lock-in, which no one wants. Blunt stack lock-in means you sacrifice infrastructure independence. Why? Because features will be tied to a specific IaaS layer.
For the sake of playing devil’s advocate, aren’t there key benefits to a tightly integrated PaaS and IaaS? Yes, it can lead to better, faster deployment of applications. But this is why PaaS vendors like Apprenda have achieved this through secondary integration, not as an explicit dependency, which leads down the lock-in path.
Don’t pass on PaaS
By keeping your PaaS and IaaS vendors separate, customers have freedom to optimize layers independently and not be shackled by a “downstack dictator.” If innovation is what you’re after, you’re far better off limiting your infrastructure than limiting your development environment.
PaaS offers many unique capabilities that should remain independent of IaaS, and Fortune 500 companies like AmerisourceBergen, JPMorgan Chase and McKesson, are realizing these benefits today. This is why PaaS will be here for a long time, and over the next few years we will see large enterprises driving PaaS adoption and hybrid cloud usage: Two trends that, in my opinion, go hand-in-hand.