To have a better understanding of which cloud solution might suit your requirements, we have created a diagram with an overview of services and their corresponding customer and provider responsibilities:
Figure 2.4 – An on-premises versus IaaS versus PaaS versus SaaS comparison
Let’s dig into the four different types of resource consumption with varied usage and responsibilities.
On-premises service usage is the classical deployment and management of resources. The whole responsibility lies with the data center or service owner at all layers – the OS, storage, data, and applications. You must ensure service availability, provision resources, and manage them. In addition, you are responsible for any maintenance activities, and you must plan well in advance, for not only the purchase but also the capacity of the infrastructure.
Now, we move to the Infrastructure as a Service (IaaS) cloud consumption model where the cloud provider is responsible for hardware – the servers, storage, networking, security, availability, cooling, electricity, and infrastructure capacity. By offloading this to the cloud provider, customers have already gained some advantages in comparison with on-premises services. Customers can focus on delivering the applications and managing resources while still having full access to the OS, applications, and data.
Some of Google Cloud’s IaaS services are as follows:
- GCE
- Cloud Storage
- VPC
- Persistent Disk
The preceding list is not comprehensive and we will discuss IaaS services in further detail in upcoming chapters.
The layer above IaaS is Platform as a Service (PaaS). Customers who are using the PaaS model benefit from all services that are included in the IaaS model. However, in contrast to IaaS, they no longer need to patch OSs or update SQL databases.
What they need to take care of is planning the deployment type (whether using a single database or a replicated one), in which region to deploy Cloud SQL, and how to design their database schema. The cloud provider takes care of patching, building the database, and making it highly available. On-premises deployments of such a service might take a massive amount of time, consume countless hours, involve many teams, and most importantly, consume a huge amount of funds.
Some of Google Cloud’s PaaS services are as follows:
- App Engine
- Cloud SQL
The preceding list is not comprehensive and we will discuss the PaaS service in further detail in upcoming chapters.
The final cloud consumption model is Software as a Service (SaaS). It is a way of delivering without installing and maintaining any software, and there is no need to patch OSs or applications. We focus solely on software consumption and usage. One great analogy of SaaS is by thinking of a bank that takes care of simply providing access to us as customers. How a bank is doing it is irrelevant to us – we simply consume bank services.
If we go back to cloud services, IaaS and PaaS are managed by a cloud provider, and we simply focus on consuming services or applications.
Some of Google Cloud’s SaaS services are as follows:
- Cloud DNS
- Cloud Armor
- Cloud CDN
- Cloud IAM
The preceding list is not comprehensive and we will discuss SaaS in further detail in upcoming chapters.
We have covered all the types of cloud services consumption and compared them to traditional on-premises service consumption. Each type of cloud consumption has different layers and responsibilities divided between cloud users and cloud providers. This will allow you to choose the best solution based on your requirements and needs.