A (Controversial?) Mission Statement For PaaS: Why PaaS Must Be Containerless
I’m going to argue that PaaS needs to stop thinking of itself as a layer on top of a container engine and start thinking of itself as an enabler of Containerless development.
Let’s start by defining terms:
What is Containerless Development?
Let’s start with Serverless: Serverless isn’t about getting rid of servers, it’s about “just pushing code”- and not worrying about any of the server stuff.
Serverless combines two really exciting concepts: Function as a Service, and what I’m going to call Containerless development (stick with me!).
Everyone knows by now what Function as a Service means and why it might be good . The problem is many apps aren’t suited for FaaS. It’s a revolution in how apps are structured, but its sweet spot isn’t representative of the majority of apps being developed today. FaaS’s time will come, but for most apps: it’s not today.
We need a word that’s not tied up with “FaaS”
The Serverless concept has become tied up with the idea of Function as a Service. We need a new word without that baggage. I’m going to try to popularise “Containerless”.
So what do I mean by Containerless? Am I saying we shouldn’t use containers? No of course not! Let me be super clear — the word Containerless is no more a knock on containers than “Serverless” is a knock on servers . Containers are essential in much the same way as servers are.
In the same way that the magical part of serverless is what it lets you not focus on — servers — the magical part of a containerless platform must be what it lets you ignore. Operating systems, middleware, orchestration, packaging, scaling.. and containers.
Of course, all these things are still there under the covers — you don’t need to worry about them, just worry about your app, worry about your code.
Nothing about Containerless requires “Function as a Service”. FaaS is a great way of doing containerless. But the mission must be to find more sweet spots where we can let a developer “just push code” and let them trust that it will work. That will require better abstractions, simpler APIs, tooling support, but it has to be our aim.
If people are still worrying about operating systems, patching, middleware or containers in 5 years — if they’re not just pushing “deploy” on their code — we have failed.
A Mission Statement for PaaS: Focus on Containerless Development.
Platforms as a Service, like Cloud Foundry, OpenShift and Deis, have for a while since containers became popular tried to re-express themselves as container platforms that let you push code. This is the wrong way up. The value of a PaaS is not letting you push code, it’s letting you just push code, it’s letting you not think about containers, patching, operating systems; that has to be the focus:
Platforms as a Service should be Containerless.
 And if not, @swardley’s excellent article explains it better than I can: https://hackernoon.com/why-the-fuss-about-serverless-4370b1596da0#.5998yl27l
 I’m the Product Manager for Cloud Foundry’s container engine — I’m a pretty big fan of containers