PaaS is an application hosting model that abstracts most of the underlying infrastructure required to deploy a cloud-based software application to simplify the end-to-end development process. A step below SaaS, PaaS tools reduce the overhead required to deploy application dependencies, such as databases, and simplify the vast majority of DevOps operations, such as load balancing.
PaaS is popular among developers because it reduces the time to market of most products, eliminating the complexity of managing servers and simplifying the deployment processes that are traditionally more complex in cloud-based environments, typically referred to as IaaS.
Although ease of use is a focus of PaaS, there are some drawbacks. For one, vendor lock-in is a serious problem. Virtualized infrastructure offered by most cloud providers can be moved easily to different providers as necessary, but PaaS deployments are specialized and, generally, not reproducible. Moving from one provider to another requires a lot of overhead and effort.
This is where open source PaaS comes into play. Although an open source PaaS doesn't fully take away the need to manage servers, it simplifies the application deployment and management process. It gives users more control over where and how they host their applications while still reducing the amount of effort required to get the applications to market.
Top 6 open source PaaS tools
There are a number of popular open source PaaS options on the market today, each with its own unique twist. The tools listed below are six of the most popular -- or increasingly popular -- projects that engineering teams are using to abstract the complexities of infrastructure management while still embracing the power of the cloud.
CapRover is a popular free and open source PaaS originally released in 2017. Built using TypeScript, CapRover is extremely easy to use, requiring only a few commands to get started. Because it's powered by Docker, nearly any application can be deployed to CapRover with minimal overhead thanks to CapRover's own Captain Definition file format. This file outlines all of the resources and other dependencies required to successfully run the underlying application.
Although getting started with CapRover is incredibly straightforward, what makes it really stand out is its built-in marketplace of one-click applications. This makes deploying common technologies such as WordPress and MySQL very simple, which reduces the overall complexity of deploying an application to CapRover.
- Automatic SSL certificate provisioning from Let's Encrypt
- Local command-line interface (CLI) client for automation
- Web-based graphical user interface (GUI) for ease of use
- Supports all Docker-based applications
- Built-in marketplace for one-click deploys of other popular open source applications
2. Cloud Foundry
Cloud Foundry is a powerful platform that uses the scalability of Kubernetes to create a simple yet performant PaaS option. Deployed using BOSH -- its own cross-platform tool for deploying and managing large-scale cloud-based software -- Cloud Foundry provides developer tooling that reduces the overhead of deploying software to a Kubernetes cluster without compromising quality or speed.
A more low-level tool than CapRover, Cloud Foundry is primarily managed using a custom CLI and takes a modular approach to its own service marketplace, which can be enhanced with features such as log streaming and single sign-on support. Although the service marketplace can deploy things such as databases, what makes it particularly interesting is that it can also broker communications to third-party APIs such as GitHub and AWS.
- CLI client for integrating into existing build tools
- Flexible infrastructure support through BOSH stemcells
- Support for most major programming languages and custom buildpacks
- Built-in service marketplace for enhancing deployment functionality
Dokku is a simple, headless PaaS platform that prides itself on its low profile and ease of use. A CLI-only implementation, Dokku's usability feels highly inspired by Heroku's own tooling. Although Dokku is a popular, low-overhead PaaS, what really makes it stand out is its plugin architecture.
Built entirely as a collection of well-structured plugins, Dokku can be extended easily to install dependencies within a single application repository -- such as databases and caching services -- while also enabling support for additional features such as Let's Encrypt SSL certificate registration and even automated Slack notifications.
- CLI client for integrating into existing build tools
- Git push-based deployment strategy à la Heroku
- Extensive plugin architecture
- Built-in Docker support for advanced usage
The open source core that powers Red Hat's OpenShift commercial PaaS tool, OKD is an enhanced distribution of Kubernetes optimized for developer-centric functionality such as continuous development and multi-tenant deployment. Designed to run any Kubernetes workload, OKD is built with team usability in mind.
With both a web console and CLI, OKD creates a centralized hub for managing everything from the underlying technology stack to the team and organization. Although OKD emphasizes that this isn't a fork of Kubernetes, but instead a sister of it, it's clearly put a lot of thought into the features it offers on top of Kubernetes itself.
- Native support for Lightweight Directory Access Protocol, Active Directory and OAuth
- Multi-tenancy support
- Automated Git-based deployment hooks
- CLI and GUI interfaces for building and monitoring applications
A newcomer to the scene, Porter is a Kubernetes-powered PaaS that launched in 2020 with a goal of bringing the Heroku experience to a developer's preferred cloud provider. An open source platform with self-hosting capabilities, Porter is a well-crafted tool with a beautifully designed web dashboard that has as much form as it has function.
What makes Porter particularly interesting is its monetization model, which follows the traditional path of an open source core powering a managed service with a few more features, but with a little twist. Rather than running all of the infrastructure itself, Porter automatically provisions a Kubernetes cluster on a user's preferred cloud provider, giving total control over the underlying infrastructure -- and Porter abstracts all of the Kubernetes complexity to ease adoption.
- CLI and GUI interfaces for deploying and managing applications
- Built-in support for AWS, Google Cloud Platform and Digital Ocean
- Built-in marketplace for one-click add-ons such as databases and caching services
- Native Docker and buildpack support
Although Rancher bills itself as more of a Kubernetes-as-a-service tool than a PaaS, its history as a PaaS tool earns it a place on this list. Offering a wide range of functionality for deploying and managing Kubernetes clusters across a number of clouds -- including VMware vSphere -- Rancher is designed to assist the deployment and management of Kubernetes clusters without getting in the way.
Similarly to the other PaaS tools on this list, Rancher offers a wealth of additional features for managing users, clusters and organizations in a central location. Although its command-line tool acts as an extension of the existing kubectl tool, its GUI provides some excellent helper functions to deploy and manage cloud applications.
- Simple Docker-based deployment
- Multi-cloud support through multiple Kubernetes cluster management
- CLI and GUI interfaces for managing applications