Kubernetes has made something old new again. You may not want to admit it, but you’re probably into Kubernetes because it feels like PaaS.
By many measures (and according to many folks), Platform-as-a-Service, or PaaS, died long ago. Unlike other types of cloud-based architectures — notably, IaaS and SaaS — PaaS never really caught on. It’s true that most conventional PaaS platforms have disappeared. Yet if you look at Kubernetes, the massively popular open-source orchestrator, PaaS is alive and well. In many ways, Kubernetes is basically just PaaS by another name (and with less vendor lock-in).
What is a PaaS?
Historically, PaaS was a type of cloud computing service that let developers write, build, and deploy applications at scale on a cloud platform.
PaaS was a big deal in the early days of cloud computing – which is to say, the mid to late-2000s. Back then, the idea that you could write an app and deploy it on someone else’s server without having to manage the infrastructure or the development or deployment environments was a big deal. So was having a unified, preconfigured toolset for building and deploying apps.
Today, however, most developers take for granted that they can write an app anywhere, then deploy it to the cloud. Cloud providers have gotten very good at building solutions, like AWS Elastic Beanstalk, that make it easy to take an application and run it in the cloud with little configuration effort on the part of developers.
As a result, conventional PaaS platforms have waned in popularity. Some leading solutions, like Heroku, are still around and are important in certain contexts. But by and large, you’re more likely today to find developers who build their apps in whichever development environment they want, then deploy them to an unrelated cloud IaaS platform. Few consider them users of PaaS platforms.
Kubernetes as a PaaS
Many of those developers, though, are probably deploying apps using Kubernetes – which is arguably PaaS by a different name.
After all, the core features of Kubernetes include:
- The ability to deploy any type of app in a consistent way.
- Support for running on any infrastructure – on-prem, public clouds, or both.
- A centralized control plane for managing applications, no matter where they are hosted.
- Some automated management of applications and infrastructure in the form of load balancing, automatic container restarts, and so on.
In a lot of ways, these are also the core features of a PaaS. Simple deployment, automated infrastructure management, and application orchestration are the reasons why most developers got excited about PaaS platforms more than a decade ago.
Perhaps the one key feature that Kubernetes lacks, but which is available in a conventional PaaS, is integrated development tooling. Kubernetes does nothing to help you actually write or test your code. You need to do that separately.
But in the sense that Kubernetes provides a unified, consistent, developer-friendly means of deploying applications at scale, it looks a lot like a PaaS.
Kubernetes: A better PaaS?
It’s worth noting, too, that Kubernetes has one killer feature that most PaaS platforms do not: The ability to run anywhere. Whether you want to deploy Kubernetes on-prem or in the public cloud of your choice, you can do it. You can even set up Kubernetes clusters that span hybrid architecture, allowing you to use on-prem and public cloud at the same time or build some kind of fancy edge configuration.
In contrast, PaaS offerings were typically closely tied to one vendor’s proprietary platform. You couldn’t easily move from one PaaS to another in the way that you can pick up a Kubernetes cluster and move it to a different host infrastructure.
PaaS’s second coming
To be sure, few people would consider Kubernetes a PaaS or even realize that the reason they like Kubernetes is that it gives them most of the core features of a PaaS. And in some ways, like its modular storage and networking architecture, Kubernetes doesn’t feel like a PaaS.
But on the whole, Kubernetes has made something old new again. You may not want to admit it, but you’re probably into Kubernetes because it feels like PaaS, a paradigm that ceased to be cool years ago.