IaaS, PaaS, FaaS, & SaaS: Understanding the Cloud Computing Pyramid

Introduction

IaaS, PaaS and SaaS are the most common technologies that frequently come up when talking about cloud computing. It’s not uncommon to see people using these terms interchangeably as all these technologies work behind the cloud. 

However, understanding the key differences between these technologies is important when making business decisions. Let’s start with what cloud computing is before moving further to different cloud computing technologies.

What is Cloud Computing?

Cloud computing refers to the delivery of different computing services such as storage, servers, software, networking, BI and databases over the internet / through the cloud. Compared to traditional methods such as local installation of software, cloud computing services provide a lot more flexibility, are easily scalable and allow innovation at a rapid pace. Use examples of Cloud Computing include:

  • Cloud-native app development and testing
  • Data storage, backup and recovery
  • Data analysis
  • Audio/video streaming
  • Embedded intelligence
  • On-demand software delivery

Cloud computing helps build economies of scale and has leveled the playing field for businesses of all sizes. This allows small and medium businesses to take advantage of modern technologies without spending tons of money on building their own infrastructure and managing everything themselves. We have already covered the advantages and benefits as well as challenges associated with using these technologies.

Benefits of Cloud Computing include:

  • Instant access from anywhere
  • Instant, easier and better scalability
  • Operational agility
  • No infrastructure or installation cost
  • The service provider takes care of maintenance and most aspects of running the service
  • Low upfront cost
  • Automatic security and feature updates
  • Disaster recovery
  • Cloud security features
  • Flexibility
  • Reduced carbon footprint

Types of Cloud Computing by Deployment

Cloud computing can be classified into different categories based on different factors including location and by service. By location/deployment cloud computing can be classified as follows:

Public Cloud

The computing infrastructure is located inside the premises of a cloud computing services provider. The infrastructure is shared between a number of users who subscribe to different services by paying a rent. Since the computing resources are shared, public cloud is a sensible choice for SMBs as well as individuals.

Private Cloud

An infrastructure that is owned by a company and not shared with other users. The companies owning the infrastructure (usually large enterprises) have complete control and the technical resources needed to setup and maintain the infrastructure.

Hybrid Cloud

Many businesses prefer hosting critical services in their own private cloud (for complete control and better security) and hosting other non-critical services on the public cloud (to cut costs).

Community cloud

Shared between organizations/businesses/companies trying to achieve a common goal e.g. universities, geographic communities, developers etc.

Types of Cloud Computing by Services

Although there are many types of cloud computing by service such as DaaS (Data as a Service), STaaS (Storage as a Service), SECaaS (Security as a Service), DaaS (Desktop as a Service), TEaaS (Test Environment as a Service and APIaaS (API as a Service), we’ll focus on IaaS, PaaS, FaaS and SaaS as these are the core services based on which most other services are offered. Different types of cloud computing by service includes:

IaaS (Infrastructure-as-a-Service)

IaaS is the foundation of cloud-based services. The service provider is responsible for the ‘physical end’ of the infrastructure and for providing a virtualized infrastructure to users. Businesses/individuals ‘rent’ the basic cloud computing resources from a service provider on top of which they run and manage their apps/systems. 

Some popular IaaS providers include AWS (Amazon Web Services), CISCO Metacloud, Microsoft Azure, GCE (Google Compute Engine) and Rackspace. These providers provide users the infrastructure they need to run their apps, including virtual servers and storage disks. 

IaaS users or customers can customize the resources according to their own requirements, including installing and managing software such as the OS, middleware, applications and other development tools. IaaS subscriptions allow businesses to only pay for the resources they use so they can scale as they grow without having to worry about managing capacity.

IaaS works great for small and medium businesses who don’t have the investment and technical expertise required to setup and maintain the infrastructure as well as large businesses that don’t want to deal with the hassle of managing the infrastructure themselves. 

This allows them to focus more on their core business and IT stuff instead of spending a lot of money on hardware, software and maintenance. Security updates and protection against cyber-attacks is also usually the responsibility of the service provider, which itself takes a lot of effort, time and expertise and can cost a lot of money.

PaaS (Platform as a Service) and Server-less Computing

PaaS is situated higher than IaaS in the cloud computing pyramid. PaaS providers (many IaaS providers also offer PaaS) are more specialized and provide the framework needed on top of pure infrastructure. The framework covers building, testing, deployment, management and updating of different software products, including OS, development tools, middleware and DB management systems.

PaaS allows businesses, especially those involved in web-based app and software development, to take advantage of the tools they need for multi-platform development. Dev teams can access the resources remotely to speed up the development process without having to purchase anything outright. 

Availability of built-in, pre-programmed apps saves users from having to code everything from scratch and allows them to make their products market-ready in less time. Server-less computing overlaps with PaaS and refers to on-demand supply of environment needed for software development, testing, delivery and management. Examples of PaaS providers include Microsoft Azure, AWS Elastic Beanstalk, Google App Engine and Apache Stratos.

FaaS (Function as a Service)

FaaS is essentially just another abstraction layer over PaaS that allows developers to insulate their code from what’s below it. This saves them from the hassle of managing a lot of stuff, including virtual servers, app runtimes and containers. Users can trigger blocks of code by an event so the apps only consume resources when an event is triggered.

SaaS (Software as a Service)

SaaS is perhaps the most popular type of cloud computing service and sits on top of the cloud computing pyramid. Being a ‘fully developed’ solution, SaaS offerings are ready-to-purchase-and-use solutions that can be accessed and used on a subscription basis. The service provider is responsible for almost all aspects of delivering SaaS services, including managing the infrastructure, operating environment, middleware and data.

We have already covered SaaS in detail in a separate post that covers important aspects and things to consider when buying a subscription. Since there is no local installation or maintenance, SaaS apps allow business to get started in no time and scale operations as they grow. SaaS apps have leveled the playing field and allowed small and medium businesses to grow more effectively than previously possible. Examples of popular SaaS apps include Microsoft Office 365, Google Apps and Salesforce.

Conclusion

Cloud computing is usually associated with sending emails, streaming videos and editing documents. However, there is a lot going on under the hood and it’s important for businesses, especially small and medium businesses to understand the underlying technologies. Whether you want to create new apps, host a website or a blog or analyze data for patterns, understanding different cloud computing technologies helps choose the best solution according to your own requirements and business strategy.