THE LANDSCAPE OF PAAS
Where to start? I was at a Cisco meeting a few days ago. One of the Cisco people proceeded to talk about plans for SDN. It's not important to know what SDN is but in the process he went on one of the most impressive diatribes of acronyms I've ever heard. Literally every other word out of his mouth was a 3 or 4 letter acronym. I was reminded of Dathon from the Star Trek Next Generation series episode "Darmok."Dathon talks in phrases that make no sense to Jean Luc Picard. He needs to know the story behind the phrases. Without an understanding of those incidents that happened in Dathon's history there is no way to know what he is talking about. Well, the Cloud Landscape is being covered in a ever increasing set of acronyms which are not converging on well defined meanings.
For example: PaaS (Platform as a Service). A lot of people have no idea what this is. There are a lot of different opinions among those who know what it is. I think that is because the first word "Platform" is overloaded. We hear platform used for many things.
It's one of those words people resort to when the words framework or system is being overused. It can mean just a collection of things. The most simple meaning comes from the idea that a platform is something you stand on, that gives support to the main act.
A platform :)
During the long years building middleware at TIBCO, we and others defined a whole taxonomy of middleware components which by definition are "platform" tools. These components are: Enterprise Service Bus (ESB), MB (Message Broker), BPM (Business Process Manager), CEP (Complex event processor - bad name), BAM (Business Activity Management or Monitor - also bad name), MDM (Meta Data Management), DSL (Data Services Layer), AS (application server), Registry or Governance Registry, Rules Engine. Each of these pieces evolved to solve a particular type of problem that emerged from distributed systems. Therefore, the ultimate platform would have all these pieces in one platform therefore enabling you to build all application types that we found over all those years that needed tools like that, i.e. all enterprise applications. Another blog post I intend to write will explain that n dimensional matrix and why those tools evolved and succeeded. Gartner calls a PaaS that has a lot of these middleware components in it a "Foundational" PaaS. I like this terminology.
For me a PaaS consists of 4 pieces: A development capability, an ALM (application lifecycle management) piece to help you build your application, test it and stage it, a deployment capability to deploy whatever you build when you are ready in a way that can scale well and lastly the operations console to control the operation of the product as users come in and use the application you built.
There are a number of products that offer the last 2 pieces of what I call a PaaS and purport to call that a PaaS. I call those cloud middleware instead or possibly DaaS (deployment as a service). This technology is very critical because it is the part of the devOps cycle that used to take a very long time and now can take seconds or minutes allowing very fast iterations of code if you have the ability to get new code through development, test, staging and everyone feels ready then these last 2 steps give you the ability to deploy immediately. However, without the other 2 pieces you really just have a tool. We all know a tool is a lot less useful than a solution.
You can't build a roof with just this.
I do not consider those "PaaS" but are more what I call cloud middleware or sometimes devOps. Cloud middleware includes load balancers, fault tolerance and some of the system management technology to operate applications. Whatever you need to be able to take an arbitrary application and deploy it to any cloud infrastructure I call cloud middleware and it is subject of another blog post. Examples of cloud middleware according to my definition are Stockato (based on OpenStack), Electric Cloud, Joyent and for WSO2 our product called Stratos and many others.
The development and ALM parts are complicated because over the years we have built many many different types of development and ALM tools. For a PaaS to be successful there needs to be convergence down to a manageable list of tools or companies will have to live with whatever their PaaS vendor gives them.
Suffice it to say that I believe middleware is software that stands in the middle and as such cloud middleware software is the software that sits between cloud infrastructure vendors and the applications. PaaS in my world is the world of application building and includes deployment as well but it must include the application development part or it is a different kind of thing.
In a second article on this topic I will go through and document for many of the major PaaS's that are marketed out there what kind of PaaS they are and what their relative merits and deficiencies as I see them today, how they classify according to a standard taxonomy.
I want to disclose I was a founder of TIBCO Software and invented the concept of the Publish / Subscribe paradigm that was the start of "messaging" and worked for many years at TIBCO. I also have started companies doing a cloud messaging service, a data loss protection company and I have worked for numerous startups over the years. Today I am working for WSO2, what I consider a leading visionary company in the space of keeping businesses connected via API Management, Stratos Cloud Middleware, App Factory PaaS, Identity Manager, Governance Registry, DSS big data and Analytics services. I will strive to make my blogs informative, useful and helpful in thinking about the complex problems of the cloud and the massive transition going on to a cloud world. WSO2 is an open source company using Apache 2 licensing for all its products. I strongly encourage you to look into the open source movement as the basis of your enterprise software.