In this article, We'll cover the three main types of cloud services:

• Infrastructure-as-a-Service (IaaS)
• Platform-as-a-Service (PaaS)
• Software-as-a-Service (SaaS)

Each service has some advantages and disadvantages that we are going to discuss here.

Infrastructure-as-a-Service (IaaS)

Infrastructure relates to the hardware that application uses, while IaaS refers to a cloud provider's virtualized infrastructure. IaaS gives us a lot of control over your resources because we can install the operating system and other services. It also means that user is responsible for keeping OS up to date with security patches and troubleshooting any issues that arise. In Simple words, when we create an IaaS resource, the cloud provider assigns a virtual machine and may install OS. In some cases, we may need to install the operating system.

IaaS services allow us to control costs effectively, because we only pay for what we are using. If we stop your IaaS VM, billing stops for the resource. This is helpful in scenarios where we might need to analyse a large amount of data for a project, and we can create a high end VM for temporary basis without buying any hardware. By this we can keep hardware, labour, and premises costs to a minimum and we can create resources quickly and discard once done.

We can scale out to more VMs and then scale back in when those are no longer required. If we require extra CPU power, memory, or disk space, we can simply scale up and down to obtain those benefits.

Platform-as-a-Service (PaaS)

A cloud provider provides the infrastructure in a PaaS environment, but they also provide the operating system and software to help connect to databases and network systems.

PaaS is in the cloud pyramid's centre and allow us to operate the application with greater flexibility, but they delegate management and control of the underlying systems to the cloud provider.

A PaaS service is often the best choice for deploying your own application to the cloud while minimizing your administrative cost. Its services include .NET Core, Node.js, Java, PHP, Python, ASP.NET and more. The cloud provider usually offers multiple versions of each framework, enabling us to choose one that is proven to work with your application. The cloud provider will also configure standard components required for data connectivity from your application to other systems. This usually means that your app code works without any additional configuration. In fact, this is one of the most important advantages of utilizing a PaaS service.

A PaaS service also has other benefits, such as fault tolerance, elasticity, easy and quick scaling, backup, and disaster recovery etc. There could also be disadvantages like when cloud provider decides to apply patches and updates and install components on the virtual machines, such updates are given in advance, but we still lose the flexibility and control on resource.

Software-as-a-Service (SaaS)

Because SaaS services are totally managed and maintained by the cloud provider, they differ from IaaS and PaaS services. It is a subscription approach. When we use a SaaS service, we profit from not only using software built which is maintained by others, but also by letting the cloud provider to maintain and customize the application.

SaaS services aren't only for businesses. General population use SaaS services without even recognizing it. We use a SaaS service like Gmail, Outlook etc on daily basis without even realizing. The software is hosted in the platform provided by the cloud provider, and we simply log in using your web browser. With updates, the cloud provider offers new features, and these new features are automatically available to us without any effort on our end.