Recently, there seems to be an increasing amount of chatter in the Platform as a Service domain. From my point of view, a good bit of this chatter is within the cloud industry, but I suspect and hope that this will soon correlate into more consumers interested in talking about this facet of the cloud.
For a while now, both consumers and the industry directed much of their cloud focus at the infrastructure level. This includes cloud-enabling things like servers, storage, networking, application infrastructure, and more. There is little doubt this work will continue, and we will see a steady evolution in the state of the art. At the same time, it is time to give equal focus to advancing the technology in the PaaS domain.
Of course, this is easy to say but much harder to do. In a recent post, I wrote about some of the challenges that confront vendors looking to deliver PaaS solutions. Of the three challenges I listed, each focused on a particular technical dilemma as vendors design and implement PaaS offerings. To me, these are just the tip of the iceberg, and as we move forward vendors will face more and more technical challenges. Since technology companies are presumably good at solving technical issues, and in the interest of moving forward in the PaaS arena, let’s put those hurdles on the backburner for now.
So, besides the technical obstacles, what else is there? One of the big problems I see unfolding in the PaaS space is the difficulty in broaching this subject with potential consumers. If we thought talking about creating clouds of servers, networking, storage, etc. was tough, wait until we get full-bore into clouds of applications. We are assuming the standardization, and to some degree commoditization, of quite a few components here.
Perhaps you do not believe these conversations will be difficult, but before you write me off let’s consider a situation where we have a cloud vendor, development rep, middleware rep, and operations rep all in the same room (for brevity, we’ll leave out the infrastructure team, though that would be another bag of issues). The subject of PaaS comes up, and the conversation may go something like this:
Vendor: “Basically with our PaaS offering, we are putting the focus on your application. You give us the application, tell us what it needs, what kinds of qualities of service it requires, and then we render the underlying infrastructure for you. The net result for you is a running, managed application, and you do not have to worry about the supporting infrastructure.”
Developer: “Sounds great. Where do I sign up?”
Middleware: “Hold on a second. When do we get to say what type of middleware the application needs?”
Vendor: “That’s the beauty of it. You do not have to worry about any of that. Based on the policies for your application, we select and provision the necessary middleware components.”
Middleware: “Ha! That won’t work here. We have very specific standards for each application, which include the certified middleware on which the application can run.”
Operations: “You mentioned that your PaaS solution manages the running application. That’s great, but what if I need to take some sort of administrative action, maybe a tweak in the application infrastructure configuration?”
Vendor: “You won’t have to. We manage the application and ensure it is meeting your requirements as expressed in the associated policy.”
Operations: “I’m sorry, but we need some sort of access to an administrative control plane. If I need to take immediate action, I cannot risk having to wait on your system to make a decision, and there may be tweaks that we know we need that your system does not recognize.”
I could go on here, but hopefully you see some of the challenges associated with this topic in an enterprise context. My opinion of what PaaS should be matches pretty well with the lead-in by the vendor in the above exchange. PaaS is about bringing an application-centric focus into cloud computing. However, in order to do that effectively, it necessarily means that the PaaS system will control some things that users have traditionally had control over. As I have mentioned before, taking away control from users, even if it is for their own good, can be a sticky proposition.
For that reason, in the short-term, I believe that PaaS solutions will not be purely PaaS. The most successful will be those that put forward an application-centric view, but offer planes of control where users can still get down to the nitty-gritty in the underlying infrastructure. Without this compromise, I believe the leap of faith may be more than many enterprises are willing to make. What do you think?