To address this challenge, it’s helpful for customers to understand the range of capabilities that PaaS offerings provide. The ability to distinguish PaaS capabilities from IaaS (infrastructure as a service) and SaaS (software as a service) services is important. Inevitably, there are some fuzzy boundaries between these service models. Customers will need to successfully navigate the gray areas.
In a PaaS environment, a cloud service customer can develop, deploy, manage and run applications (created by the customer or acquired from a third party) using one or more execution environments supported by the cloud service provider. PaaS offerings are targeted primarily at application developers, though their capabilities can extend to operators.
One way of describing PaaS is that it represents a cloud service rendering of the application infrastructure (middleware): application servers, database management systems, business analytics services, mobile back-end services, integration brokers, business process management systems, rules engines and complex event processing systems. Such application infrastructure assists the developer in writing applications. This reduces the amount of code that must be written while expanding the application’s functional capabilities.
The essence of a PaaS system is that the cloud service provider takes responsibility for the installation, configuration and operation of the application infrastructure, leaving responsibility for only the application code itself to the cloud service customer.
PaaS offerings also often expand on the platform capabilities of middleware by offering application developers a diverse and growing set of services and APIs that provide specific functionality in a managed, continuously available fashion, enabling immediate productivity for developers.
PaaS also enables applications to take advantage of the native characteristics of cloud systems, often without the application developer having to add special code to the application itself. This provides a route to building “born-on-the-cloud” applications without requiring specialized skills.
Comparing the models
How does PaaS compare with SaaS and IaaS?
SaaS offers a fixed set of application capabilities while PaaS supports the creation and use of application code with whatever set of capabilities is required for the business. The need for specialized code is very general, and it’s telling that many SaaS offerings provide APIs specifically to applications built on a PaaS for tailoring, customization and extension.
IaaS provides fundamental infrastructure but leaves installation, configuration and operation of the necessary software stacks in the hands of the customer. IaaS offerings provide extensive control over resources that may be necessary for some applications at the cost of requiring considerable effort from the customer. PaaS offerings often organize the underlying resources, removing the responsibility and effort from the customer, but potentially limiting choices.
Some platform as a service offerings also blend in features of IaaS and SaaS cloud services to offer some control of basic resource allocation on the one hand, while providing complete off-the-shelf software capabilities on the other. This can cause some confusion, but the hallmark of a PaaS system is the ability for the cloud service customer to create and run applications and services that meet specific business needs.