To answer the question, “What is PaaS?” let’s start with a basic definition: Platform as a service (PaaS) is a cloud-based computing environment designed to support the rapid development, running and management of applications. It is integrated and abstracted from the lower-level infrastructure components.
For a more offical version, you can click here for the National Institute of Standards and Technology (NIST) definition of PaaS:
Platform as a Service (PaaS). The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly configuration settings for the application-hosting environment.
While the NIST definition is a good start, it doesn’t tell the whole story. Let’s take a look at the cloud stack as a pyramid to better understand PaaS:
Infrastructure as a service (IaaS) refers to the underlying hardware resources such as network, storage and compute resources, usually with some virtualization technology. While the advent of IaaS opened new territory for businesses to better manage IT hardware costs, it put developers in a challenging situation. Developers are now responsible for more of the operational work during development and test. They have to develop skills to provision, configure, manage and update hardware resources that they would have never needed in a traditional model.
In a PaaS environment, the service provider not only is responsible for provisioning and managing the lower level infrastructure resources, but also for providing a fully managed application development and deployment platform. PaaS provides the developers with the appropriate flavors of operating systems, databases, middleware, software tools and managed services, usually in a multitenant environment. The biggest added value of PaaS is that developers are completely abstracted from the lower-level details of the environment, so they can fully focus on what there are really good at (rapid development and deployment) and not worry about things like scalability, security and more that are fully managed by PaaS.
Software as a service (SaaS) refers to the actual functional applications consumable on-demand by application developers, usually made available through PaaS as a catalog or a marketplace.
So what’s the right PaaS solution for an enterprise? Let’s take a look at some the characteristics of a PaaS offering to answer that.
There are two basic integration points that any PaaS solution has to support. Integration with the underlying IaaS makes it seamless for developers to get access to hardware resources. Developers simply don’t need to concern themselves with the where and how these resources are provisioned; they just let the PaaS do it for them. Usually such integration is accomplished through application programming interfaces (APIs) that the IaaS stack makes available to the PaaS vendors.
The second integration point is with the SaaS layer or application vendors that want to develop value added generic functional services and make it available for developers to consume in an on-demand manner. This is usually accomplished by PaaS by supporting a variety of runtimes that applications can be deployed in, and a marketplace or catalog where these services can be published for consumption.
Enterprises should consider if they want to work on a public PaaS offering or a private PaaS. A public PaaS can be more easily available than a private for small or medium business, while large enterprises may consider building their own PaaS environments.
Some of the PaaS vendors use open source platforms (Cloud Foundry) while other vendors have a more proprietary implementation. An open source implementation may have the benefits of portability, whereas a vendor specific offering may have a better support model. Enterprises should evaluate these considerations before picking a PaaS strategy. Portability is very important because many enterprises may want to move between cloud implementations as their maturity and strategy evolves (for example, public domain to private or proprietary IaaS model to OpenStack).
Finally, it is worthwhile to note that most PaaS implementations align well with cloud-based development such as mobile applications and new web applications more so than the traditional applications. PaaS helps businesses to minimize operational costs and increase productivity through a quicker time to market. There is tremendous cost and time savings to be had with a PaaS approach, and with the right strategy, PaaS can be a game changer for businesses.
Do you think PaaS could help your business? Comment below, or catch me on Twitter @suniljoshi100.
Share this post: