Imagine you build a mini Heroku? Excited? I am too! Platform as a Service (PaaS) is a cloud computing offering where the service provider provides a platform for application development and deployment. Often, developers leverage PaaS’s power, which helps them focus on building their application and not wasting their time creating a platform for creating and running the application. Obviously, big players like AWS, Azure, Google Cloud, etc., have amazing PaaS solutions. But it’s not required to always be with them. If you have a small business, many mini PaaS solutions can run smaller applications with ease on a single or few servers. This will do the job and save a lot of costs for you. More importantly, it will save time, which is money! Here is a list of the most popular PaaS software to create your own platform to run smaller applications.
Dokku
Sounds like Heroku? You got it! Dokku is an open-source lightweight software. You need to have 1 GB of memory and works on CentOS, Ubuntu, and Debian. Dokku is a mini Heroku powered by Docker and has been written bash. You can push your application using Git; Dokku will build it and run your application in isolated containers. Dokku features:
Easy deployment using Git Plugins available for several languages Add and customize the features you want by enhancing Dokku. Easy to use commands for application management, user management, logging, etc Option for user-defined checks to handle zero-downtime deployment
You can install Dokku on your server or get it started with one click on Kamatera, DigitalOcean, or Azure.
Virtuozzo
Virtuozzo is a platform that provides a multi-cloud DevOps PaaS solution for faster development, reduced IT infrastructure cost, improved uptime, and enhanced security. It offers a lite edition with a majority of features similar to business and enterprise editions with a few limitations. But it is very effective for small applications and saves a lot of costs. Virtuozzo is best suited for e-commerce websites, gaming projects, finance, education, logistic providers, etc. Virtuozzo features:
Dashboard for developers with application deployment options Container and Kubernetes support Automatic vertical and horizontal scaling Database Clustering Firewall and two-factor authentication for end-users Built-in monitoring and troubleshooting tools API, CLI, and SSH access for container management
Virtuozzo is trusted by more than 100 PaaS providers.
Flynn
Flynn is an open-source platform as a service that has been developed to run anything that can run on Linux. It provides a platform for Dev and Ops teams to develop, deploy, and manage their software with ease. You can easily set up Flynn locally or install it on dedicated hardware or a cloud provider with just a few commands. Flynn features:
Built-in MySQL, MongoDB, and PostgreSQL databases with high availability Built-in service discovery to connect all the microservices Scales only as per the need and saves cost on cloud bills. Dedicated and experienced team to run the Flynn cluster for you
Hephy Workflow
Hephy Workflow makes it easy to deploy and manage applications on a Kubernetes cluster. It is a fork of Deis Workflow, which was started in 2017. In 2018, the Deis workflow team stopped working on it and moved on to Microsoft Azure projects. There are small and independent services in the Hephy workflow that combine to create a distributed PaaS. These components are deployed as a service on the Kubernetes cluster. The workflow has two classes of users: normal users and administrators. Normal user has features for developing and deploying the application. The administrator can do everything that a normal user can, plus he/she will have the owner access to the application. Hephy workflow features:
Image builder to compile code from dockerfiles and buildpacks HTTP/HTTPS edge routing for the applications Application release and rollback REST API for CLI and integrations Authentication and Authorization for securing the applications
CapRover
CapRover is an extremely easy to learn and fully automated application platform. If you are familiar with Heroku, you can think of CapRover as a super-powered and open-source Heroku. You can use CapRover for many purposes, for example hosting Node.js, PHP, Java, WordPress, MongoDB, MySQL, Nginx, etc. You can get it started with CapRover on DigitalOcean with a 1-click app setup. CapRover features:
Command-line interface for scripting and automation Web GUI for the users to visualize everything happing with their application Load balancing with the help of Nginx Free SSL certificates using Let’s Encrypt Containerization and clustering using Docker Swarm
Tsuru
Tsuru is a lightweight, easy to use, and open-source platform as a service. Let’s say you have a Python application that also requires a MongoDB server instance; Tsuru will put together both the python app and the database and run them simultaneously. It runs your application inside the docker containers. Tsuru has multiple options to choose from as a platform; if you are not happy with the existing platforms available, you can also create your own platform on Tsuru. Tsuru features:
Scales your application dynamically with ease Runs the application in a distributed architecture to utilize resources It can run applications written in any language; it goes beyond 12-factor apps. Just a simple git push to deploy your application quickly. Easy integration with IaaS such as AWS EC2, Apache Cloudstack
Piku
Piku is the smallest Heroku/CloudFoundry-like platform as a service. Piku is inspired by Dokku and deploys application using git push to your own servers. It works with POSIX environments such as Linux, Windows subsystem for Linux, FreeBSD, and Cygwin. Piku features:
Supports a workflow like Heroku Functional coding style to simplify the user experience Supports apps written in Go, Python, Closure (Java) and Node.js Backward compatible wherever possible Supports the 12-factor app
Conclusion
What are you waiting for? Go ahead and try the above software to build your PaaS. Most of them are open-source, so you can get a cloud server and start playing around to see what works better for you. Next, learn Docker.