Cloud computing has three basic models
- IaaS (Infrastructure As A Service)
- PaaS (Platform As A Service)
- SaaS (Software As A Service)
Let’s understand these models with an example.
When you are hungry, you have different options to have food. You can prepare food at home, go to the market and order food for yourself, order food from home, or go to a restaurant.
Now, preparing food at home is an on-premise model, where you have to do all the work using the existing resources.
When you go to the market to buy your meal, then it is an Infrastructure as a Service model, where you will be responsible to heat your food at home, eat it, and clean the dishes.
When you order food from home, then it is a Platform as a Service model, where you rely on the vendor for the core tasks associated with preparing food. The vendor provides the cooked meal while you provide plates.
When you go to the restaurant, then it is Software as a Service model, where you need not prepare the food. You simply require to eat at the restaurant and later pay for your meal. Here, you will not have to wash your dishes.
SaaS
Software As A Service (SaaS) refers to a bundle of software products. Its support services are bundled into managed solutions to avoid unknown execution and operational costs.
SaaS product is a platform that replaces traditional enterprise resource planning (ERP) and customer relationship management (CRM) platforms.
Many companies such as SAP and Salesforce are successfully providing this service to customers who do not have a large engineering team or IT department to build and manage these complex systems. Companies having such resources may feel these things are not within their core competencies and are not worth building or operating on their own. Through SaaS, almost all types of software are now available, i.e., from email, word processing systems to content management systems.
IaaS
Infrastructure As A Service (IaaS) emerged shortly after SaaS. For instance, VMware GSX Server and Amazon Elastic Compute Cloud (EC2) were introduced in 2006. Both provide an early virtualization platform. Initially, VMware was focused on in-house deployments. Amazon Web Services targeted a broader market by combining its hosted IaaS and SaaS offerings.
Further, VMware vSphere was released in 2009 that replaced VMware GSX. Later, Openstack was developed in 2010 as an open-source competitor for VMware vSphere and Amazon EC2.
All these IaaS provide specific abstractions, such as software-defined networks, virtual machine compute nodes, and mountable storage. Hosted IaaS provides an illusion of unlimited resource size to its users. In case your company is interested in infrastructure outsourcing, AWS provides resources much larger than the customer’s requirements at any time. It has expanded the data center before your company seeks more nodes from AWS. If your company is not willing to outsource, infrastructure platforms such as OpenStack and vSphere can host its own cloud in the data center of your choice.
CaaS
CaaS (Container as a Service) model is a form of container-based virtualization in which container engines, orchestration, and the underlying computing resources are delivered to users as a service from a cloud provider. CaaS examples are Azure (ACS), and AWS (ECS).
FaaS
Function as a Service model facilitates a platform that allows customers to develop, run, and manage application functionalities without building and maintaining the infrastructure. AWS Lambda and Google Cloud Function are examples of the Function as a Service model.
PaaS
Platform as a Service model facilitates a platform that allows end-users to develop, run, and manage applications without the complexity of building and maintaining the infrastructure. AWS (Beanstalk) and Google App Engine are examples of the PaaS model.
IaaS vs PaaS vs CaaS vs FaaS
The type of cloud service largely depends on the levels of responsibility and control that you want to have over your IT infrastructure. If you want the benefits of the cloud, such as scalability, cost model, and disaster recovery, while maintaining a large degree of control, you should opt for the IaaS model. If you want your developers to enjoy the convenience of container orchestration as well, then CaaS is good for such IaaS situations. In case you do not want to deal with the complexity and nuance of setting up servers, networks, and databases, but you do have the time, budget, and resources to build your own software applications, including a skilled team of developers, then PaaS is the best choice. FaaS is suitable for very high-volume transactions, especially software with spikes in workload that need to be rapidly scaled as well as applications that are run on a dynamic basis or regularly scheduled.