Cloud Computing Service Models (IaaS vs PaaS vs SaaS vs FaaS)

Cloud Computing Service Models Explained (IaaS vs PaaS vs SaaS vs FaaS). In this article we will do a comparison of Cloud Computing models and find their benefits

What is Cloud Computing

As businesses and services evolve, it is quite challenging to keep the resources, information and applications insource as it consumes more resources. Cloud computing is a modern way of accessing resources like applications and information online without building or maintaining them in house. It is a more efficient way of computing as it minimizes the development effort and resource consumption.

Some companies are dedicated to hosting and managing cloud computing services such as Amazon Web Services (AWS), Microsoft Azure, IBM Cloud and Google Cloud. Services offered by cloud computing companies can be categorized into the following Cloud Computing Service Models (IaaS vs PaaS vs SaaS vs FaaS) types. Let’s do a comparison.

Cloud Computing Service Models (IaaS vs. PaaS vs. SaaS vs. FaaS)

IaaS (Infrastructure as a Service)

Iaas is known as Infrastructure as a Service. It provides the base infrastructure such as Virtual machines, SDN (software defined network), servers and operating systems via virtualization. IaaS allows one to access the existing resources and purchase only the hardware required for the company. Iaas users are provided full access and control over the infrastructure offered via a few APIs or a dashboard. The beauty of IaaS is that the users do not have the overhead of physically managing the servers and storage as all these things are exposed via virtual data centers hosted on the cloud.

A few examples for IaaS are Amazon Web Services (AWS), Cisco Metapod,  DigitalOcean, Microsoft Azure and Google Compute Engine (GCE). 

These providers take care of managing the servers, network protocols, storage and visualization. Some offer even more services such as database management, storing and message querying.

IaaS Use cases

IaaS is ideal for the following businesses:

  • Startups – more convenient and cost effective as IaaS offers most of the hardware and software. Hence they do not have an initialization cost. 
  • Companies with rapid growth –  companies in this stage, have varying requirements and resources. Hence it’s again cost effective as you can choose and customize the IaaS as you want and also change it after some time.
  • Larger companies – Purchasing IaaS and paying only for consumption improve scalability. Hence it is easily manageable for Enterprise level companies.

Advantages of IaaS

  • High scalability and Scalability.
  • Several Levels of Services.
  • GUI or CLI based easy access.
  • Purchases are made based on the consumption.
  • Easy automation in deployments of the resources.
  • Better processing power.
  • Users have complete control over the infrastructure they own.
  • Considered to be the most flexible cloud computing model.

Limitations of IaaS

  • Security – There can be security threats as the whole infrastructure is online. Hence systems can be vulnerable to actions such as data exposure, data leakage and unauthorized entries.
  • Requires dedicated resources with training – Additional resources must be trained to manage and access the hosted infrastructure effectively. Users are responsible for the business continuity, data security and back up. Hence it is quite difficult to proceed without adequately trained personnel.
  • Multi tenant security – These hosted resources are dynamically allocated among the customers. Hence the service providers should ensure that one customer cannot access the data saved in the storage by the previous customers. Customers rely on the fact that virtual machines are isolated.
  • Inadequate support for legacy systems – there can be issues when the customers are running legacy apps on the cloud as the infrastructure may not be designed to support or secure the legacy apps.

PaaS (Platform as a Service)

PaaS is also known as Platform as a Service. It is one of the Cloud Computing Service Models (IaaS vs PaaS vs SaaS vs FaaS). It provides cloud components to develop, manage and run applications. PaaS simply provides a framework for the developers to build and customize their applications. Other providers can manage all the hardware, such as servers, network connectivity and databases while developers are responsible for developing and maintaining applications via the platform.

This platform is offered through the web. Hence developers can easily focus only on developing the software without worrying about the system configurations, storage and other infrastructure.

Windows Azure, AWS Elastic Beanstalk, Heroku Google App Engine, and OpenShift are a few examples of PaaS.

PaaS use cases

PaaS is ideal when multiple developers are working together on the same project. On the other hand, it is cost effective if you have rapid development and deployment cycles.

Advantages of PaaS

  • High scalability and availability.
  • Provides backup, recovery and data security.
  • Easily accessible from multiple locations.
  • Cost effective and efficient in development
  • No overhead of maintaining the software
  • Lesser configuration effort.
  • Can be easily migrated to a hybrid cloud model.

Limitations of PaaS

  • Data security –  Can be subjected to cyber security theft as it is being hosted in the cloud. There will be limited security options since sometimes users may not be able to deploy services, subject to some policies.
  • Complex Integration There can be complexities in connecting with onsite and off site data stores. It can be challenging if the whole code is not implemented in the cloud, as integrating with multiple services can be quite difficult.
  • Customization complexities – If you are planning to use existing apps and services with PaaS, there can be additional development effort to set up the configuration, which can sometimes result in a complex codebase.
  • Vendor Lock-in -Requirements for PaaS may be changed in the future. In such a case, vendors are not able to provide extra support to allow migration, and there is a tendency for the apps to get locked into a specific vendor.
  • Runtime issues – PaaS solutions may not be optimized for frameworks of your development criteria. Along with that, the other limitations in the PaaS systems can cause more runtime issues.

SaaS (Software as a Service)

SaaS is also known as Software as a service and on demand software. It is the most commonly used service model in businesses. Unlike other discussed models, in SaaS, everything is managed by the vendors, including application, data used, deployment middleware, operating system virtualization, storage, server, etc. All the burden of the service will be taken care of by the vendor and users only have to use the provided service. Most of the SaaS applications can be run via web browser without downloading and installing on client devices.

When to Use SaaS?

  • Startups or small scale companies – ideal if a company needs to launch a service quickly and do not have a team for the development of assets to acquire hardware resources.
  • Applications are to be used via both web, mobile and network apps.
  • Short term or rarely used  projects.

Advantages of SaaS

  • Reduces time spent on development, installation and configuration.
  • Service is on demand.
  • Independent platform.
  • No need to install.
  • Cost effective.
  • Users can pay as per the usage
  • Saves resources

Limitations of SaaS

  • Inconvenience in integrations – Since SaaS apps are not designed to support integration, organizations will need to design that part on their own or reduce the dependencies used.
  • Vendor locks-in – Vendors may not be flexible in data migration or portability as they do not follow standard APIs or protocols. Hence, organizations will need some in house efforts to do so.
  • Data security – The app can be subjected to data thefts as a large amount of data is transferred between the SaaS app and the data stores.
  • Lack of customization – SaaS apps can hardly be customized as they are not tailored to certain requirements. Hence users are limited to the features and flexibility offered by the vendor.
  • Performance issues – Performance is solely based on the infrastructure and performance of the vendor. There can be maintenance downtime from time to time which will eventually cause the apps to go offline.

FaaS (Function as a Service)

FaaS is also known as Function as a Service. This service model offers a platform for the customers to develop, manage and execute the application functionalities without worrying about the hardware constraints or infrastructure. These functions can be executed as a resulting event like a button click of a user on an application.

Microsoft Azure functions, IBM Cloud Function,s AWS Lambda Google Cloud Functions, and OpenFaaS are a few examples of FaaS.

Advantages of FaaS

  • Developer friendly – FaaS saves a lot more time for the developers to spend on application logic without worrying about server configuration and deployments.
  • Cost effective – Serverless FaaS does not charge for idle computation time. Therefore users only have to pay for the actual computational time.
  • Scalability – These FaaS codes are highly scalable. Hence the developer does not have to worry about the traffic as the service providers are responsible for scaling.

Limitations of FaaS

  • Less Control– It is quite tough to meet the system requirements as vendors manage all the infrastructure related tasks. It is also hard to follow the system in case of debugging and troubleshooting.
  • Complexity in testing – FaaS codes are more difficult to test in a local environment. Therefore testing the developed application can be intensively challenging.

Cloud Computing Service Models (IaaS vs PaaS vs SaaS vs FaaS) Conclusion

Companies are moving towards cloud architecture to help in case of a Disaster. Cloud Computing can help disaster recovery by cloning your data from the survived data centers . Another reason is availability, scalability, automatic software updates and possibility to work from anywhere (Github). The service models we discussed above have made cloud computing much easier.

 

There’s no need to be limited to a certain model as you have the flexibility to use any of these models as per your requirement. Therefore we think that the knowledge you gained from this article will drive you towards a better decision.

Avatar for Shanika Wickramasinghe
Shanika Wickramasinghe

Senior Software Engineer at WSO2 which is the 6th largest Open Source Software Company in the World. My main skills are machine learning and software development. I have 5+ years of experience as a Software engineer.

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x