Service Models for the Cloud

The definitions of service models for cloud vary and there's sometimes a thin line between the different definitions, but this chapter defines the three primary (i.e. well-known) service models easy to understand and to start with, as these three service models define the responsibilities clearly between the cloud provider and the customer (i.e. tenant):

  • Software as a Service (SaaS),
  • Platform as a Service (PaaS) and
  • Infrastructure as a Service (IaaS).

The service models are presented in picture below.

NIST Cloud computing models small Picture 3. Service models.

Infrastructure as a Service (IaaS) is probably the most common type of cloud computing, which allows you to "rent" IT architecture like servers, networking and storage, which are often maintained in a datacenter. The IaaS providers let you select from the variety of available physical and virtual resources and manage all the configurations and software layers you need to. This option is suitable for companies, who want to be in charge with the company IT infrastructure, but do not want to run an own data center.

Being the most flexible cloud service model, the IaaS offers highly scalable and automated computing resources with fully self-service access to infrastructure. The resources can be purchased on-demand and without the need to buy actual hardware. The IaaS providers usually offer a dashboard and/or API to control the entire infrastructure. IaaS providers are the one who maintain and run the physical data center and IaaS customer leases out the needed resources to operate as a "virtual data center".

Platform as a Service (PaaS) is a software layer or application stack which allows customer to run own operating systems and software stacks and control the application development and deployment at will. PaaS is designed to support the complete application life cycle: build, test, deploy, manage and update, testing, deploying, managing, and updating. There’s no need to worry about set-up and maintenance of the underlying servers, thus reducing maintenance and other IT costs.

The PaaS market has evolved fast during the 2010's as businesses look for solutions to speed up processes and ratinalise costs. The PaaS allows the necessary flexibity, agility and efficiency that is valuable for driving business growth. All the big players in the cloud industry provide PaaS service model in their curriculum. Many of the creative agencies, consultancies and IT teams have taken ground in the PaaS business to train and speed up software development and time-to-market in the traditional software/application development companies.

While PaaS usually comes with a set of additional services and design tools to speed up build, test and deployment workflows, this generally leads to a vendor lock-in because the developers are forced/tied to specific platform and set of tools. Each vendor may not support all the necessary programming languages, operating systems, libraries, APIs, architectural practices needed to build and run the applications. Switching to another PaaS provider may be time consuming and expensive, so it is guided to choose the PaaS provider carefully when transitioning from traditional software development to a PaaS, or starting a new business based on PaaS service model.

Software as a Service (SaaS) is a ready-made platform to run a software provided by third-party or your own company. The cloud vendor provides the underlying infrastructure (harware and software) where one can deploy their applications. The application is used over the internet and may (or may not) be scaled by the vendor.

Depending on the vendor, the service may be scalable, i.e. you "pay-as-you-go" depending on the resources you need at time. For example, if you're hosting an CDN (Content Delivery Network) of a software package or a published game, you may need to upscale the network speed or CPU instances around the release date, and then downscale the resources a bit afterwards. This would allow the massive amount users to achieve the best possible response time or download speed while using the service (i.e. downloading the update or new release). Once the amount of downloads decrease, the amount of hardware or network capacity can be downscaled to reduce the cost. This kind of scalability allows the right amount of resources to be used automatically (on-demand) and you can focus on your own business. According to Wikipedia SaaS applications are also called as subscribeware or rentware, Web-based software, on-demand software and hosted software.

The picture below describes the responsibilities between the vendor and the customer based on the cloud service models.

Cloud service models Picture 4. Cloud service models.

In general, the customer (tenant) has a better control on the resources when moving from SaaS to PaaS or from PaaS to IaaS service models. Also, the customer has better control on resource from moving from Public cloud to Hybrid or Private cloud. A good rule-of-thumb is that one should select

  • IaaS : if willing to build everything ground up.

    • The consumer has capability to provision processing, storage, networks, and other fundamental computing resources.
    • 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 (hardware) but has control over operating systems, storage, deployed applications, and possibly limited control of some networking components, such as host firewalls.
    • Use cases: building new company's infrastructure from scratch or extending data center infrastructure for temporary workloads e.g. increased Christmas holiday site traffic or increased network bandwith at the time of application/software release
    • Examples: DigitalOcean, Microsoft Azure, Amazon EC2, Google Compute Engine (GCE)
  • PaaS : if willing to develop, host and/or deploy own applications.

    • Capability to deploy consumer-created or acquired applications using programming languages and tools supported by the provider
    • User has control over the deployed applications
    • Possibility to rent virtualized servers and related services for running existing application or developing and testing new ones
    • No control over the underlying cloud infrastructure, including network, servers or storage.
    • Not useful when application must be portable, proprietary programming languages are used or hardware and software must be customised to improve the performance of the application
    • Use cases: Increase developer productivity and utilisation rates and decrease an application’s time-to-market
    • Examples: Amazon Elastic Beanstalk, Google App Engine, Red Hat OpenShift
  • SaaS : if willing to use ready-made applications and services.

    • A software distribution model where applications are hosted by a vendor and made available to consumers over a network (internet)
    • Capability to use applications supplied by the service provider in a cloud infrastructure
    • Applications are accessible by using various client devices through a thin/mobile client
    • Users have no control of the platform or the infrastructure
    • Use case: Replacing traditional software with remote applications
    • Examples: Google G Suite, Microsoft Office 365, Dropbox, Salesforce, Gitlab, Github, Atlassian

Following chapters provide a bit more specific examples of different service models.