As one of the three layers of Could Computing services, Platform as a Service (PaaS) lies in the middle between the Infrastructure and Software as a service layers. Services at the PaaS layer differ from Infrastructure services in that they eliminate the need to create and manage instances of virtual machines. This is accomplished by presenting clients with a program language or an Application Programing Interface (API) rather than one or more virtual machines. With PaaS, the development tools themselves are hosted in the cloud and are accessed via a web browser. This result is that fewer technical resources being required in order to develop and deploy cloud hosted applications. At the same time, PaaS clients still retain greater opportunities to customize their applications than permitted by customers of Software as a Service (SaaS).
As an intermediate layer between the other two layers, PaaS can represent a sweet spot for some customers of cloud computing services. With PaaS, organizations avoid the complexity of administering a series of virtual machines. At the same time, developers can customize applications with custom coding, a feature not available to SaaS clients. Unlike traditional software development efforts, PaaS clients do not need a staff to install, optimize, or maintain either the hardware or the virtual machine environments. They can choose the type of platform that best suits their needs and immediately begin creating applications that can be hosted on the cloud as soon as they are complete. With simplified development tools, a developer in the PaaS environment does not need the extensive skill set that a traditional web based application developer requires. Like other cloud computing services, developing and deploying applications utilizing the PaaS model requires little or no up-front investment. Billing is performed on a pay as you go basis.
For all of its strengths, the Platform as a Service model does have a few significant drawbacks. PaaS solutions do not allow the flexibility of an Infrastructure as a Service (IaaS) offering. PaaS clients cannot necessarily create and delete multiple virtual machines as easily as their IaaS counterparts. Additionally, PaaS does not represent a complete product in the way that Software as a Service (SaaS) offerings do. An organization must still undergo a development effort in order to design, build, and test programs before they can be deployed to the end users. As with other Cloud Computing solutions, many organizations are reluctant to have applications hosted by a third party. Government and corporate clients must be assured of compliance with all applicable regulations concerning privacy, security, and data retention.