Platform-As-A-Service (PAAS) is one of the service models associated with Cloud computing. In this model, the software environment plays a pivotal role in creating a customized software solution. A PAAS platform provides an integrated development environment with all the necessary tools to create and deploy a sophisticated Cloud application. This article delves into the basics of this model while learning about its concept in relation to other service models and available tools.
There are three basic Cloud service models: IAAS, PAAS, and SAAS. Among them, PAAS and IAAS are closely related. The similarity lies in their objective; both try to solve the problem of effectively managing and publishing software services to the end user. The distinction, however, lies in the way they deliver their services. For example, in IAAS the focus is to provide infrastructure as a primary resource. It assimilates different infrastructural components such as virtual machines, containers, network, and other related services under the banner of a single standard framework. The administrator and engineers then roll out resources in the form of applications and services. The inherent cohesiveness of this model make it easy to manage and makes prompt end-to-end infrastructure delivery.
PAAS, on the other, hand takes up code as its first approach. The developer operatives and programmer use a set of programming languages and frameworks to engineer the software solution and deploy them at the service end. PaaS service engineers often do not have to configure or even understand the underlying low-level infrastructure because it is all taken care of on their behalf. This is the distinction where IAAS takes care of these component whereas PAAS focuses on providing the platform for software services.
In fact, the distinction among Cloud service models often blurs because the models are closely tied to each other in a pyramidal structure. The software services provided by PAAS need the platform infrastructure to execute things such as storage space, memory, processing power, and so forth. Without these, we cannot get a platform (PAAS), and, without the platform ready, we cannot run the software solution (SAAS). Therefore, there is a fine-line difference as we dive deeper into the Cloud service model. This can be nicely illustrated with a pyramid structure, as shown in Figure 1.
Figure 1: The software services pyramid
The PAAS Service Model
End-users in PAAS are generally programmers, developers, geeks, and even semi-technical persons, or can be anybody who knows how to work with the platform and tools. Of course, the degree of interaction varies from merely feeding data to retrieving them to create a complete sophisticated solution. This is determined by the degree of freedom of functionality allowed by the platform provider. The PAAS end-user is not required to maintain or manage either the hardware or the software. The only part played by them is to use the environment for development. In short, the PAAS service provider is thus responsible for all the operational activities, maintenance, and managing their own product life cycle.
A few key advantages of the PAAS model are as follows:
- Low maintenance and purchase expensive hardware, servers, storage space, processing power, and so on.
- Low maintenance cost; the Cloud service provider takes up the responsibility of administration.
- The service can be scaled quickly up or down on demand.
There are some issues with PAAS as well.
- Due to platform dependency, portability is an issue.
- Because data is maintained in Cloud storage, security is an issue.
PAAS provides a host of services that abstract application infrastructure, operating system, and middleware, along with a team of developers to build, test, and deploy a software solution with little IT assistance. There are self-service and on-demand tools, resources, automation, and platform runtime containers that aid throughout application life cycle management (see Figure 2).
Figure 2: The PAAS Service model
Apart from scaling capabilities, the platform provides high availability along with automatic configuration, management, and load balancing tools.
PAAS exposes its multiple copies in the Cloud environment. As a result, it can address an isolated business requirement in a distinct manner. This is crucial for applications having compliance issues or such as internal-facing versus external-facing sets of applications. The tools and application building norms are, however, common for developers even working in separate copy of environments. The PAAS service can merge local resources and data to tint the application with a personalized touch for a variety of Web services.
IAAS provides the building blocks for an efficient PAAS. This is because developers building in a Cloud environment get better flexibility if they have deep access to the platform's underlying infrastructure. Access to application servers, Web servers, and databases make it easy for developers to scale up or down the capacity and quality of service provided. This is vital not only for the application but also for the overall PAAS capability as well.
The Google App engine is one of the popular examples of the PAAS Cloud service model. It publishes APIs used by the programmers to create a software solution. Google also provides the necessary tools, such as development framework, file system, and storage. The vendors who create a PAAS solution using Google APIs are basically developers who provide the complete solution to the customer. In this respect, Google also acts as a PAAS vendor who offers many Web Services to developers. Also, Google Maps, Google Earth, Gmail, and the like, are some of the services offered to the customers which are aptly called SAAS services, yet as a whole they also conform to the PAAS service model.
The issue with the PAAS service model is that it binds the developer as well as the end-user to a specific platform offered by the vendor. For example, an application built using the Google API that works in Google App Engine is meant to work on in that particular environment only. Therefore, the possibility of extensibility beyond a specific vendor's support is quite limited.
There are increasing numbers of PAAS vendors currently in the market. They offer services both as a part of private and public Cloud services. For example, Google, Amazon Web Services, and Facebook target business users to offer their services, Red Hat's OpenShift offers private a data center, Jelastic offers Cloud services to build Java and PHP applications with minimal coding. It also has international hosting partners and data centers. Some other names are Salesforce platform, IBM Bluemix, Oracle Cloud platform, Windows Azure. Heroku, Ubuntu for Cloud, CloudBees, AppFog, Caspio, Cloud Foundry (open source), Iron Foundry (open source), and so forth.
In this era of the Internet, PAAS is ideal for building Cloud-aware applications, not only for computers but also for many hand-held devices. This leverages the growing trend of cost-effective support for IT consumers also Bring Your Own Device (BYOD) programs. A consumer needs the same application available in not only their computers but also in many hand-held devices, such as mobile phones. PAAS has made it possible now and, in years to come, the distinction between different Cloud service models will be quite irrelevant.