In this blogpost I will describe the three common cloud delivery models which is absolutely basic knowledge when it comes to cloud computing.

What is a cloud delivery model?

“A cloud delivery model represents a specific combination of IT resources offered by a cloud provider. This terminology is typically asociated with cloud computing and frequently used to describe a type of remote environment and the level of control.”

(source: Cloud School, Module 1 Fundamental Cloud Computing)

Infrastructure-as-a-Service (IaaS)
The IaaS delivery model provides a self-contained IT environment which can include (virtual) hardware, network, connectivity and other IT resources. More often these IT resources have typically been virtualized and packaged but not preconfigured. The cloud consumer is operationally responsible and has full administrative control over the cloud-based environment they intend to create.

An example of a commercialy available IaaS offering is Amazon EC2 (virtual server). This will enable cloud consumers to spin up a virtual server in minutes.

Infrastructure-as-a-Service (IaaS): A cloud consumer is using a virtual server within an IaaS environment. Cloud consumers are provided with a range of contractual guarantees by the cloud provider, pertaining to characteristics such as capacity, performance, and availability.

Platform-as-a-Service (PaaS)
The PaaS delivery model provides a pre-defined (ready-made) cloud environment with already installed, deployed and configured IT resources. This cloud environment can be used to extend on-premise environments into the cloud for scalability and economic purposes or to entirely substitute an on-premise environment. The cloud consumer has only administrative control over the (ready-made) cloud environment, not over the underlying infrastructure (f.e. virtual server) nor IT resources (f.e. used database).

An example of a commercialy available PaaS offering is Pivotal CloudFoundry, which offer developers a production-ready application container runtime and fully automated service deployments.

Platform-as-a-Service (PaaS): A cloud consumer is accessing a readymade PaaS environment. The question mark indicates that the cloud consumer is intentionally shielded from the implementation details of the platform.

Software-as-a-Service (SaaS)
The SaaS delivery model delivers a product or other service that exists as a shared cloud service offered by a cloud provider. The cloud provider is responsible for maintaining the cloud service’s underlying IT resources (including the cloud service itself). Unlike Iaas and PaaS, the SaaS delivery model does not provide cloud consumers with administrative control over the cloud service nor the underlying IT resources.

An well-known example of a commercially available SaaS offering is SalesForce Sales Cloud 2, which offers organisation a CRM & sales force automation application.

Software-as-a-Service (SaaS): The cloud service consumer is given access the cloud service contract, but not to any underlying IT resources or implementation details.

integration-Platform-as-a-Service (iPaaS)
One of the variations on the PaaS deployment model is iPaaS. iPaaS is typically a proprietary cloud based integration platform for building and deploying integration solutions between different cloud and/or on-premise applications. iPaaS is however still in the early stages and has the very big downside that it significant increased the risk on a vendor lock-in. I am still not sure what the advantages are above using a container (CloudFoundry or Docker) as a runtime environment for integration solutions but perhaps I don’t have the knowledge yet to form an opinion about it.

An example of a commercially available iPaaS offering is TIBCO Cloud Integration (TCI).

Cloud providers typically combine different deployment models establishing one cloud delivery model by leveraging IT resources from another creating a natural layered relationship between the delivery models. A PaaS environment can be setup by leveraging virtual servers provided by an existing IaaS environment. On top of the PaaS environment a cloud provider can decide to expose shared cloud services towards consumers creating a SaaS environment by leveraging the underlying PaaS and IaaS environment for maximum flexibility.