“I” versus “P” versus “S”

With the rising popularity of cloud computing models, it is important that people understand the subtle and not-so-subtle differences between IaaS, PaaS and SaaS. In my experience, most people can differentiate between SaaS and the other 2 recognised models but then struggle to articulate the unique factors of the other 2 models – IaaS and PaaS.

The National Institute of Standards and Technology (NIST) addresses the definition of cloud computing in special publication 800-145, which can be read here. Despite the efforts of marketing teams, only three “as-a-service” cloud models are formally recognised.

IaaS, PaaS, SaaS
The 3 cloud computing models as defined by NIST

IaaS – at the bottom of the stack is IaaS; Infrastructure as a Service. The cloud vendor provides an environment where the IaaS customer can run virtual machines and arbitrary software. The IaaS customer does NOT manage the underlying cloud infrastructure but manages from the virtual machine up. The VM OS is typically managed by the IaaS service provider but could be managed by the IaaS customer in some circumstances. Amazon Web Services (AWS) is probably the best known of the IaaS vendors but others include Rackspace and HP.

Platform as a Service, shortened to PaaS, sits above IaaS in the trilogy of models. A PaaS customer has the ability to deploy bespoke or 3rd party applications to the environment, created using programming languages, libraries, services and tools supported by the provider. As NIST states “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.” For ISV’s, PaaS can be a particularly attractive option as it gives a holistic development environment ready to use with minimal setup or configuration. However, the disadvantage can be the element of ‘vendor lock in’ – that is, the difficulty in moving from one PaaS vendor to another due to their support of specific languages. For example, the Microsoft Azure offering primarily supports Microsoft’s own technology. Similarly, Google Application Engine supports Java based applications but also features a Python and Go runtime environment.

SaaS sits atop of the model and is the widely known abbreviation for Software as a Service. This is the ability to utilise an application running within a cloud infrastructure. As the application runs in the cloud, it is available via the internet so the user is not restricted to being on a corporate WAN or using a specific device. Typically, the application is configured for use on the full spectrum of net-connected devices used today – phones, tablets, laptops, TV’s, etc.  There are numerous examples of SaaS offerings available to both the consumer and the enterprise client. Office365 and ServiceNow are great examples for the enterprise while WordPress or Netflix are consumer focused SaaS offerings.

The emergence of “everything-else” as a service is in fact a financial concept. In essence, those models mirror the above concepts in that they are consumption based models, charging the clients only for what they use rather than more traditional pricing models. Knowledge of the above, coupled with a knowledge of the deployment models, is essential for anyone involved in the cloud computing discussion.

Leave a comment