Over the past decade, Cloud Computing has become nowadays a buzzword in the Web applications world. It consists in a shared pool of configurable computing resources interconnected between each others through the internet. These resources are represented in the form of SOA-based services. In addition, they are consumed on-demand and provisioned in an elastic and scalable manner. Services in the Cloud are basically delivered under three well discussed layers:
- Infrastructure as a Service (IaaS): Consumers are able to access Cloud resources on demand. These resources can be virtual machines, storage resources and network resources. The provider takes the responsibility of installing, transparently managing and maintaining these resources.
- Platform as a Service (PaaS): Consumers are able to develop, deploy and manage their applications into the Cloud using the libraries, editors and services offered by the provider. The provider takes the responsibility to provision, manage and maintain the Infrastructure resources.
- Software as a Service (SaaS): Consumers are able to use running applications on an IaaS or a PaaS through an interface. They are not responsible of managing or maintaining the provisioned Cloud resources.
Our focus in this post is dedicated to the PaaS layer. A key step to deal with challenges and issues related to the PaaS is to properly choose the right PaaS solution. Then, the user (which is typically a developer) should install this latter in order to implement and manage his/her application. Against this, the user has to find the appropriate PaaS solution according to his/her application’s requirements. This task is cumbersome and not trivial. Indeed, the user should manually discover capabilities of each PaaS solution. Finally, PaaS solutions integrate various new technologies (e.g. Docker, Kubernetes, etc.) that are not familiar to the developers.
To alleviate the burden of having to discover each PaaS solution, we propose in this document to review the most popular solutions and to analyze each one based on a set of criteria that we consider relevant to choose a PaaS solution. At the end of this analysis, we propose a shortlist of PaaS solutions that we set up and tested with real use cases. Hence, we will be able to analyse the behavior of each solution. It is worth noting that we exclusively focus on open-source PaaS solutions. Indeed, this kind of solutions is extensible and allows users to easily adapt it to their requirements.
This blog post is composed of two parts: