Platform as a Service(PaaS) is one area in cloud computing that had been widely overlooked by developers and analysts for a long time. That is no longer the case though. A recent study by Forbes estimates that the PaaS market will reach $7.5 billion by 2020.
So, what is PaaS? It is an enhanced form of application development and deployment where cloud providers introduce new and improved mechanisms for deploying user-defined workloads on predefined virtualized platforms which do not need to be managed by the user. Let us take a look at how PaaS has evolved as the game changer in cloud computing.
Three layers of PaaS
PaaS has evolved in recent years and now it not only refers to hosting and maintenance, but to development of core applications and services. Platform as a Service or (PaaS) can be categorized into 3 different layers:
- IaaS-centric PaaS: automates many of the IaaS-related tasks, such as environment preparation, run-time, deployment, etc. These services are also called classic PaaS or managed IaaS services.
- Generic PaaS: abstracts the underlying IaaS layer and creates a generalized layer of infrastructure abstraction and virtualization to develop applications.
- SaaS-centric PaaS: enables applications to conform and behave as per the SaaS principles such as multi-tenancy. The underlying hardware and IaaS as well as run-time are completely abstracted for application developers.
PaaS platforms evolved differently for different Cloud Service Providers (CSPs). However, we can categorize these evolutions into the following areas:
1. Infrastructural PaaS
This type of PaaS service is geared towards handling operating systems, application run-time, application hosting, auto-scaling, etc. For example, Azure App Service, AWS Beanstalk, Google App Engine, etc. It is often referred to as Application PaaS (aPaaS) by Gartner.
2. Structural PaaS
After Infrastructural PaaS, cloud providers moved towards providing application services required by applications such as queues, service bus, notifications, caches, etc. These services have their infrastructural and implementation details abstracted from the users and only provide key concepts, frameworks, SDKs, clients, and protocols to use in an application. However, this still means that the code must be written for adapting to the defined schema and protocols to create business logic. Since, these structural services are entirely managed and controlled by CSPs, these are referred to as Structural PaaS. The idea behind adopting Structural PaaS services is to reduce time to market for implementing common application support services and focusing on developing business needs.
Some examples of Structural PaaS are Azure Event Hub, Azure SQL Database, AWS document DB, etc. Nowadays, these services also include container-friendly platforms which can handle the provisioning, discovery, and routing of containerized applications. Such offerings are called Containers as a Service or CaaS, e.g. Kubernetes, Mesosphere DC OS, etc.
3. Functional PaaS
Once we have established control over the PaaS infrastructure, the next job is to abstract all information from the users and allow them to focus on business code.The run-time environment, protocols, and schemas become just a configuration. Such type of PaaS service is more focused on handling business and thus referred to as Business PaaS. For example: AWS Lambda, Azure Functions, IBM OpenWhisk, etc. These services are also known as Functional PaaS (fPaaS or FaaS).
These services are more suited for spontaneous computing when you may require computing instantaneously or as per schedule. For instance file uploading and processing, etc., and handling event triggers such as file creation in storage accounts. A more mature offering of business PaaS is called Mobile back end as a Service (mBaaS) where mobile-friendly back end APIs take care of provisioning, scalability, and authentication of various mobile-based application business functionalities.
PaaS is perhaps the best advancement that happened after IaaS, but it comes with an added responsibility that application developers must understand. Once the initial effort is made for utilizing PaaS, the ease of application development, maintenance and future upgrades becomes simpler and hassle-free.
Organizations must adopt PaaS strategies for rapid development and shorter time to market. These strategies can be enabled for AWS to the IBM Cloud, depending on the need to assess, strategize, plan, and implement greenfield projects as well as brownfield projects.
Generally, PaaS services are costlier than standard IaaS models as CSPs need to implement functionalities for resilience and tolerance inside the platforms. However, we should always look for means to reduce the total cost of ownership (TCO) significantly by utilizing dedicated or enterprise agreement plans. Organizations should also focus towards cost optimization strategies which should be revised frequently for a better return on investment (ROI).
Finally, everything converges to evolve as Everything as a Service (XaaS) which allows organizations to commoditize software products and services to general consumers.