The Problem with PaaS: Appropriate Abstraction

Amazon has shown that Infrastructure-as-a-Service (IaaS) can actually work, leaving all other IaaS players scrambling to compete. For its part, has illustrated that Software-as-a-Service (SaaS) can be similarly successful, and yes, the other players in the SaaS marketplace have been emulating Salesforce for years. But what about Platform-as-a-Service (PaaS)?

Sure, there are many players in the space, including Heroku, Google, Engine Yard, Cloud Foundry, CloudBees, Microsoft Azure, even Facebook. And while the PaaS marketplace is still less mature, and hence more dynamic than the IaaS or SaaS markets, it has matured rapidly over the past few years, and today there are many viable offerings with a correspondingly impressive list of success stories.

And yet, PaaS as a category faces a challenge to its growth, and it’s more of an architectural challenge than a market challenge this time. The challenge is building the appropriate abstraction.

The central architectural context of Cloud Computing centers on this abstraction. With IaaS, the Cloud Service Provider (CSP) abstracts the underlying physical resources (servers, storage, etc.), presenting simplified interfaces (both Web and APIs) that support automated self-service. If you don’t get the abstraction right, then users need to monkey around with the technology under the covers — and that’s not Cloud at all.

SaaS follows the same pattern. Users interact with a SaaS offering via Web interfaces and loosely coupled APIs. A SaaS user is never welcome to monkey around in the underlying code at the SaaS provider. If they were able to do so, it wouldn’t be SaaS.

What about PaaS? The central idea of PaaS is the CSP provides a development and deployment environment to the user. True, PaaS abstracts the underlying infrastructure, but that’s the role of the IaaS underneath the PaaS platform. The goal of PaaS is to abstract the development environment details themselves.

Unfortunately, building an abstraction at this level is extraordinarily difficult, because developers typically require fine-grained, hands-on control of their development environments. Change a classpath or config file setting or environment variable or any number of other nuts and bolts that make up a coder’s day-to-day work environment, and everything the developer has built will crash and burn.

The PaaS CSP, therefore, faces a double bind. Either they try to create a platform where users can make all these configuration choices themselves, or they include such details in their platform, essentially under the PaaS abstraction. But the former option essentially relegates the platform to an IaaS offering, with little value-add to qualify it as a viable PaaS player, while the second option risks breaking customers’ code every time there’s an update or configuration change.

From the customer’s perspective, today’s PaaS is all about buyer beware. If you want your code to run the way you expect every time, then PaaS may not be appropriate for your needs. Bite the bullet, use IaaS, and install all your tools yourself. On the other hand, if you want to leverage the convenience and rapid development potential of PaaS, then get ready for the roller coaster. It’s going to be a bumpy ride.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin


The Latest

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a

chrome os developer mode

How to Turn on Chrome OS Developer Mode

Google’s Chrome OS is a popular operating system that is widely used on Chromebooks and other devices. While it is designed to be simple and user-friendly, there are times when users may want to access additional features and functionality. One way to do this is by turning on Chrome OS