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):
The service models are presented in picture below.
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.
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.
PaaS : if willing to develop, host and/or deploy own applications.
SaaS : if willing to use ready-made applications and services.
Following chapters provide a bit more specific examples of different service models.