I am continuing my series of articles where I share my interpretation of the National Institute of Standards and Technology’s special publication 800-145. This week the focus is on the three different service models of cloud computing according to the NIST’s definition:
Software as a Service (SaaS). The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
SaaS solutions focus purely on the application. Gmail is a SaaS cloud computing model for email. End users do not have access to the underlying platform or infrastructures that are used to deliver and send their messages, but they also do not need such access. All the end user needs is access to the application through which they can use the service. Yet behind the scenes Google has the ability to rapidly expand the infrastructure to accommodate new user accounts, and every account is measured to prevent end users from exploiting the free service (limited space, anti-bot registration measures, etc.). If you review each of the five essential characteristics of cloud computing you will recognize how each characteristic is used to deliver Gmail to the end user.
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.
When you think of PaaS think of an oil drilling platform in the ocean. Nobody builds an oil drilling platform simply to have an oil drilling platform. They build the platform to get to the resource. They build it to get oil. When you build a PaaS cloud solution what you are doing is giving people the technology to quickly deliver another type of resource. Developers are able to use PaaS to test and deliver software with. Business analysts are able to use PaaS to crunch huge amounts of data in order to bring useful information to the attention of the business. PaaS cloud computing is more akin to delivering a set of tools to the end user instead of a pre-defined product like SaaS does.
Infrastructure as a Service (IaaS). The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, and deployed applications; and possibly limited control of select networking components (e.g., host firewalls).
IaaS is the ideal cloud model for internal IT staff to strive for. IaaS goes beyond just delivering an application like SaaS does, and does not limit the end user to just the toolbox that PaaS does. IaaS allows the user to lay down the essential components of a computing infrastructure with all of the five essential characteristics of cloud computing. Unlike traditional infrastructures though the end user can rapidly remove systems and other components. If SaaS is the application, and PaaS is the toolbox which end users use to build new applications with, then IaaS is the ability to rapidly deploy entire workshops with roads connecting them to each other. End users are then able to access these workshops where they can access their toolboxes and build those applications.
Just as you would not build an oil drilling platform unless you had a reasonable chance of extracting oil from a location, you do not build infrastructure unless you have a reasonable chance to actually produce and deliver some sort of application or service. IaaS therefore is a cloud model that tends to be closer to the heart of a business’s internal needs for producing products or delivering services. You will see IaaS used primarily for an organization to maintain flexibility and to keep operating costs low. Yet a well designed IaaS cloud model can also reduce capital expenditures as well. With a little foresight and planning many IT teams are able to justify buying “in bulk” to deliver solutions for several business needs using a single IaaS cloud computing solution instead of funding several separate projects that ultimately cost more to both build and maintain.
Be sure to return next week as I cover the different types of deployment models available in a cloud computing infrastructure, and to continue my interpretation of the NIST’s definition of cloud computing.