There is more to PaaS than you think
As described in the last week's post NIST defines three different cloud computing service models - IaaS, PaaS and SaaS. IaaS and SaaS are really easy to grasp but I see people struggling to understand the PaaS model. As a long-time application developer though I find the PaaS model the most compelling one for new applications. Here is why.
I will look at two examples: one enterprise and one from the consumer world.
Let's start with the enterprise scenario. If you examine any enterprise application portfolio you will find out that almost every development team has implemented it's own code for handling common functionality like authentication, authorization, database access etc. There are also numerous cases when the same team developed the same functionality over and over in each new project. Even the componentization model doesn't help in this situation because either developers are often not aware of the existence of the components or there are too many options they can choose from and they cannot find the right fit for their scenario. The Service Oriented Architecture (SOA) was the holly grail for this problem but many enterprises are still far from achieving this goal.
The next problem that you will see in enterprises is that each application has it's own way of accessing common services and resources like external systems, databases and storage. This results in configuration sprawl and the configuration management overhead.
Last but not least purchasing and provisioning the necessary infrastructure for every application is long and tedious process that significantly impacts time-to-market and adds unnecessary tensions between the IT department and the business groups.
Implementing PaaS in the enterprise can alleviate each one of those problems by implementing common functionality like authentication, authorization, database access, messaging etc., reducing the configuration sprawl by providing central service catalog and dynamic reconfiguration, and by decoupling the underlying infrastructure from the application. In addition PaaS leverages the underlying IaaS functionality to provide load balancing, high availability and auto-scaling on the application level.
All PaaS benefits from the enterprise scenario can be easily applied to a consumer application. Those are even more important with mobile, where the growth of users can become exponential. Delivering fluent, scalable and reliable functionality can be crucial to the success of every mobile application. Getting it fast to market though is one of the most important parts. By leveraging PaaS services, mobile application developers can build new experiences fast and easy, without the need to spend time on reimplementing basic functionality. Common features like location awareness, push notifications and even Instagram-like filters are offered by many public PaaS providers - mobile application developers just need to stitch those together in a new experience and publish it on the app stores. Adding the device-indepent nature of those services makes cross-platform rollouts several times faster than if those need to be implemented from scratch.
More than decade ago the application servers advanced the way new applications are developed by offering common framework and set of reusable components. Platforms-as-a-Service are the next step in the evolution of application development by adding inherent cloud computing characteristics like elasticity, on-demand self service and measuring.