Cloud service models, which include Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), offer different levels of abstraction and control over underlying infrastructure and software, providing diverse options for organizations to build, deploy, and manage their applications via the cloud.
In the cloud service models of IaaS, PaaS, and SaaS, responsibility for infrastructure and software differs between the cloud provider and the customer. IaaS requires the most customer responsibility, PaaS offers a shared responsibility, and SaaS enables the least amount of customer responsibility.
Dgtl Infra provides a comprehensive overview of the major cloud service models, namely IaaS, PaaS, and SaaS. For each of these delivery models, we offer an explanation of their basic purpose, how they work, and real-world examples of their use cases.
Cloud Service Models – IaaS vs PaaS vs SaaS
Cloud service models, also known as cloud delivery models or cloud service categories, have three primary groupings, all of which are characterized by the term “as a service”. In particular, these cloud service models are distinguished by a shared responsibility model that defines what the customer is responsible for and what the provider is responsible for.
The three cloud service models are: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), which are defined as follows:
- Infrastructure as a Service (IaaS): customer has near-full control over and the ability to provision virtualized IT resources – such as compute, storage, and networking – to deploy and run software, including operating systems and applications. While the provider supplies and manages the underlying compute, storage, networking, and other physical IT resources on a self-service, on-demand, and pay-as-you-go basis
- Platform as a Service (PaaS): customer uses a simplified interface to build, deploy, and control their own applications, without having to manage the underlying cloud infrastructure, including the servers, network, operating systems, and storage. While the provider supplies and manages the environment hosting the applications, as well as the underlying cloud infrastructure
- Software as a Service (SaaS): customer uses complete applications, delivered by a provider over a public network and running on cloud infrastructure. While the provider supplies and manages an entire application, its hosting environment, as well as the underlying cloud infrastructure, including the servers, network, operating systems, and storage
Overall, as the cloud service model moves from IaaS to SaaS, the cloud service provider takes over more management and configuration responsibility from the customer. Examples of these responsibilities are illustrated below:
Cloud Service Models – Responsibility Comparison
Who Uses Each Cloud Service Model?
Different types of customers use each of the cloud service models because they have varying levels of sophistication and business needs. Typically, Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS) are used by the following types of people:
- Infrastructure as a Service (IaaS): network architects and administrators, who provide systems for their users, use IaaS to provision compute, storage, and networking resources
- Platform as a Service (PaaS): software developers and engineers use PaaS to develop, test, deploy, and manage custom software applications
- Software as a Service (SaaS): non-technical end users, such as those working for startups, small and medium-sized businesses (SMBs), and large enterprises, rely on SaaS because these applications can be easily accessed and do not require much setup or configuration
Generally, as the cloud service model moves from IaaS to SaaS, more services become immediately accessible to a wider market of users.
Example of the Cloud Service Models
An example of the different cloud service models supporting the owner of a blog website can be distinguished as follows:
- Infrastructure as a Service (IaaS): used to control all aspects of a blog website, including the servers, networking, databases, and security
- Platform as a Service (PaaS): used to customize a blog’s theme (layout), study its analytics, or utilize different plugins
- Software as a Service (SaaS): used to quickly create and publish a blog post to the website
What is Infrastructure as a Service (IaaS)?
Infrastructure as a Service (IaaS) is a cloud service model where the customer has near-full control over and the ability to provision virtualized IT resources, such as compute, storage, and networking. These virtualized IT resources are used to deploy and run software, including operating systems and applications.
In this setup, the customer is responsible for the architecture, deployment, operational management, and security of its workloads deployed on top of the provider’s infrastructure. Additionally, the customer may have limited control of certain networking components (e.g., host firewalls). However, in IaaS, the customer does not manage or control the underlying physical IT infrastructure.
In IaaS, the provider supplies and manages the underlying compute, storage, networking, and other physical IT resources on a self-service, on-demand, and pay-as-you-go basis. The provider handles the operational management of the physical data centers and IT equipment, including the servers and network cables hosted in these facilities. Additionally, the provider delivers the physical security for the data centers, protecting the buildings from unauthorized access.
Globally, the five largest Infrastructure as a Service (IaaS) vendors, also known as cloud service providers (CSPs), are Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), Alibaba Cloud, and Oracle Cloud.
What is the Purpose of IaaS?
The purpose of Infrastructure as a Service (IaaS) is to provide organizations with scalability, the replacement of capital expenditures (CapEx) with operational expenditures (OpEx), pay-per-use, a shorter time to market, and control of resources.
- Scalability: IaaS can be rapidly provisioned and scaled up or down as needed, either for predictable events or on-demand, in response to unexpected requirements (e.g., traffic spikes)
- CapEx to OpEx: IaaS eliminates the need for a customer to own their own data centers or procure any hardware. Instead, IaaS allows companies to rent computing resources on an as-needed basis. Therefore, IaaS replaces upfront capital expenditures for on-premises infrastructure (e.g., data centers and servers) with operational expenditures
- Pay-per-Use: IaaS customers only pay for the resources they are consuming and only over the duration of their use. For customers, IaaS eliminates the need to own large data centers with idle hardware, which would otherwise be required to handle periods of heavy load. As a result, even small companies can afford to use IaaS solutions
- Time to Market: IaaS enables quick cloud-based IT infrastructure setup, as opposed to lengthy physical hardware installation and data center construction. Renting a new server or colocation is a cumbersome way to add capacity and get it running. To this end, given its on-demand nature, IaaS reduces time to market for new products or services
- Control of Resources: in comparison to PaaS and SaaS, IaaS provides customers with more control over how their infrastructure components are configured and customized, including the underlying compute, storage, and networking services that power their applications. Usually, this control extends over the operating system layer and above, to support a given application
How Does IaaS Work?
Infrastructure as a Service (IaaS) works in the following simplified steps:
- Customers signup with an IaaS provider, such as Amazon Web Services (AWS), usually through a web portal or application programming interface (API)
- Customers select the resources they need, such as compute, storage, and networking, through the IaaS provider’s self-service environment
- The IaaS provider creates and provisions these resources through a virtualized image, container, or directly on physical and dedicated servers, which is known as bare metal
A virtualized image contains a complete and pre-configured operating system, software stack, and application environment that can be used to quickly deploy virtual machines (VMs) in an IaaS environment. These images can be based on a variety of operating systems, such as Linux and Windows.
- Assuming virtualized versions of the resources are created, the IaaS provider is effectively abstracting its underlying physical computing resources, allowing customers to consume servers, storage, and networking hardware on a virtualized basis
- Customers can then access and manage their resources, such as virtual machines (VMs) and virtual networks, using a web-based dashboard or API
- Customers have the ability to configure processing power, memory, storage, and networking for the resources they require. They can provision any number of virtual machines (VMs) to their specifications and run a wide variety of software on them
- Customers of IaaS are typically billed via a pay-as-you-go agreement based on the amount of compute, storage, and networking resources they consume and how long they use those resources for. For example, pricing could be predicated on the number of virtual machines (VMs), amount of storage, and network traffic
- Payment can take the form of a credit card and for enterprises, a bank transfer or wire transfer. If a customer stops paying for their IaaS solution, the customer will lose access to the resources
Examples of Infrastructure as a Service (IaaS)
Examples of Infrastructure as a Service (IaaS) solutions from the two major cloud service providers (CSPs), namely Amazon Web Services (AWS) and Microsoft Azure, are as follows:
- Virtualized Servers: Amazon Elastic Compute Cloud (EC2) and Azure Virtual Machines
- Block Storage: Amazon Elastic Block Store (EBS) and Azure Disk Storage
- Object Storage: Amazon Simple Storage Service (S3) and Azure Blob Storage
- Virtual Networks: Amazon Virtual Private Cloud (VPC) and Azure Virtual Network (VNet)
- Load Balancing: Amazon Elastic Load Balancing (ELB) and Azure Load Balancer
What is Platform as a Service (PaaS)?
Platform as a Service (PaaS) is a cloud service model which represents a middle ground between IaaS and SaaS. However, in contrast to IaaS, the PaaS compute environment includes an operating system and development tools. Essentially, PaaS offers an “operating system as a service” on which customers can install their applications.
In PaaS, the customer uses a simplified interface to build, deploy, and control their own applications, without having to manage and configure the underlying cloud infrastructure. Specifically, a customer can run their own application code without needing to manage and configure servers, networks, operating systems, and storage. Instead, through an interface, the customer defines the behavior they want for their application and possibly the configurations for the environment hosting those applications.
In PaaS, the provider supplies and manages the environment hosting the applications, as well as the underlying cloud infrastructure. Said differently, the provider takes responsibility up to and including the operating system, comprising all hardware and virtualized resources.
What is the Purpose of PaaS?
The purpose of Platform as a Service (PaaS) is to provide software developers, engineers, and organizations with the ability to focus on writing their application code so that they can build products or functions more efficiently. PaaS gives software developers, engineers, and organizations more control over their environment than SaaS solutions, while eliminating the need to manage and configure the underlying cloud infrastructure, as is the case with IaaS solutions.
Additionally, the main purposes of PaaS are that it provides a complete development environment, auto-scaling, flexibility, ease of upgrades, and a shorter time to market.
- Development Environment: PaaS provides a complete development and deployment environment, including tools, middleware, database management systems, and operating systems, all of which are managed and maintained by the PaaS provider. The customer also has multiple choices for these operating systems and environments, which is important for software and application testing and migration
- Auto-Scaling: as resources are needed or become unnecessary, PaaS can automatically adjust the sizing of the environment to meet demand, without interaction from the customer. Particularly, this is important for customers whose load is seasonal in nature. Also, auto-scaling allows an organization to only configure and use what is actually necessary so as to minimize idle resources
- Flexibility: with the infrastructure layers abstracted in a PaaS model, developers have the flexibility to move between providers and platforms in a straightforward manner. Whereas in a traditional data center setting, software developers are constrained by the offerings of the data center and are locked-in to proprietary systems that make relocation or expansion difficult and costly
- Ease of Upgrades: with the underlying operating systems and environments being offered by the cloud provider, application releases, updates, and upgrades are simpler and more efficient than in a traditional data center model. In PaaS, the provider will provision the infrastructure required to support the application release or its updates/upgrades. This will include the necessary network architecture, firewall rules, storage, compute services, operating system management, and runtime environments
- Time to Market: in PaaS, developers can quickly deploy their applications without spending time on virtual machine (VM) provisioning, operating system maintenance, and moving applications between different environments with different operating systems. This simplifies software design and implementation, leading to a shorter time to market for applications
How Does PaaS Work?
Platform as a Service (PaaS) works in the following simplified steps:
- Customers, such as software developers, signup for a PaaS account with a provider, like Amazon Web Services (AWS), and access the services through a web-based console, application programming interface (API), or command-line interface (CLI)
- Developers select their preferred operating system (normally, either Linux or Windows) and programming language (e.g., Java, Python, Ruby, PHP) required for their application development. However, developers have little to no control over the configuration of the operating system and virtual machines (VMs) on which their application runs
- Developers then create their application using the PaaS platform’s built-in tools and middleware services, such as application servers, database management systems, message queues, caching, and development frameworks. Additionally, PaaS providers offer libraries (collections of pre-built code) for developers to use in their software development
- Once the application is built, developers can deploy it to the PaaS platform, which will automatically manage the underlying cloud infrastructure, such as servers, storage, and networking
- Developers can monitor and manage their applications through a dashboard provided by the PaaS platform, where they can see metrics such as resource usage, performance, and availability
- Customers typically pay for PaaS based on the resources they use, as well as any additional services or features they require, with the two most common pricing models being pay-as-you-go and subscription
Examples of Platform as a Service (PaaS)
Examples of Platform as a Service (PaaS) use cases are application development and deployment, database management, analytics, and the Internet of Things (IoT).
- Application Development and Deployment: PaaS can be used to develop and deploy web, mobile, and business applications. Developers can build, test, and deploy their applications using the platform, which provides tools for coding, testing, deploying, administering, and maintaining the application
- Database Management: PaaS can be used for managing databases, such as relational databases or NoSQL databases. Developers can use PaaS to provision, configure, and scale databases, without managing the underlying infrastructure
- Analytics: PaaS can be used for processing and analyzing large volumes of data. In particular, the auto-scaling capabilities of PaaS make it suitable for large datasets, while built-in tools for data integration, transformation, analysis, visualization, and reporting are also useful
- Internet of Things (IoT): PaaS can be used for developing and deploying IoT applications that use the internet to read and write data. PaaS platforms provide tools for connecting, managing, and processing data from IoT devices
Major PaaS offerings used by developers are AWS Elastic Beanstalk, Azure Functions, and Google App Engine.
Additionally, Salesforce delivers its customer relationship management (CRM) technology as a Software as a Service (SaaS) solution, but also has a lesser-known Platform as a Service (PaaS) offering called Salesforce Platform. Through Salesforce Platform, developers can build and deploy custom applications, such as industry-specific CRMs (e.g., pharmaceutical sales), that integrate with Salesforce’s existing services.
Serverless Computing and Function as a Service (FaaS)
PaaS can be used for serverless computing and provide support for serverless architectures, such as Function as a Service (FaaS). Serverless computing hides the entire backend architecture from developers, abstracting applications as autonomous functions that are hosted, managed, and maintained by a third-party provider. These functions are then consumed as a utility service, executed only when invoked.
Examples of the serverless services from major cloud service providers (CSPs) are AWS Lambda, Azure Functions, and Google Cloud Functions.
What is Software as a Service (SaaS)?
Software as a Service (SaaS) is a cloud service model in which a provider hosts software applications in the cloud and makes them available to customers over the internet.
In SaaS, the customer uses complete applications, delivered by a provider over a public network and running on cloud infrastructure. Therefore, the customer does not need to manage the environment hosting the application or the underlying compute, storage, and networking infrastructure. Typically, SaaS solutions are accessed and consumed through a standard web browser via the internet, which means that there is no requirement to install any client software. Additionally, SaaS configurations on the customer’s end are limited to sharing options, file storage location, view settings, contacts, and permissions.
In SaaS, the provider supplies and manages an entire application, its hosting environment, as well as the underlying cloud infrastructure, including the servers, network, operating systems, and storage. The provider writes the application, configures the servers, and streamlines the setup process for customers, allowing them to use the service with ease. Hierarchically, a SaaS application sits on top of both a PaaS and IaaS solution.
What is the Purpose of SaaS?
The purpose of Software as a Service (SaaS) is to provide end users with less responsibility, reduced upfront costs, updates and patching, scalability, and accessibility.
- Less Responsibility: in SaaS, the cloud services are solely the responsibility of the provider. Because the customer only licenses access to the software and its capabilities, the entire underlying infrastructure and platform services – from compute, storage, networking, and operating systems, as well as the software and application platforms – are entirely removed from the responsibility of the customer. As such, customers are simply interested in the functionality, performance, availability, and security of the SaaS solution
- Reduced Upfront Costs: customers in a SaaS environment are only licensing use of the software, on a subscription basis, which is priced on its features and the customer’s user count. Therefore, the customer does not need to hire systems administrators or security staff, purchase hardware and software, or provision extra capacity for redundancy and disaster recovery purposes – hence reducing upfront costs
- Updates and Patching: SaaS providers can make changes to their software applications quickly, and if security issues arise, they can be dealt with immediately. In SaaS, the provider takes responsibility for maintaining, updating, and delivering the software, which means that customers always have access to the latest features and security updates without having to manually install them
- Scalability: highly elastic SaaS applications can simply scale up or down to support changing needs of a business. This scalability can take the form of number of users or the amount of features and resources that an organization needs
- Accessibility: SaaS applications are accessible from anywhere with an internet connection, making it easy for businesses to collaborate with remote teams, work from home, or access the software while travelling
How Does SaaS Work?
Software as a Service (SaaS) works in the following simplified steps:
- Customers access SaaS applications through a web browser or a mobile app. Typically, customers can access the software application from anywhere with an internet connection
- SaaS providers are responsible for maintaining and updating the software application, as well as ensuring its security and availability. This includes installing updates, making security patches, performing backups, and monitoring the performance of the application. Also, SaaS providers will leverage the cloud’s ability to distribute applications geographically, nearest to where they are being used
- Customers typically pay for SaaS on a subscription basis, where the provider charges a recurring fee, usually on a monthly or annual term. The subscription fee may vary depending on the number of users, the level of features, and the duration of the subscription. In some cases, the provider offers a free trial or a freemium version of the SaaS application
- SaaS providers often support a self-service option that allows customers to add/remove user licenses, increase/decrease their level of features, and renew their contract on-demand
Examples of Software as a Service (SaaS)
Examples of Software as a Service (SaaS) use cases and applications are:
- Customer Relationship Management (CRM): cloud-based CRM solutions, such as Salesforce and Hubspot, provide businesses with a centralized platform for managing customer interactions and data
- Human Resources: cloud-based HR services, such as ADP, Paychex, and Workday, provide businesses with a platform for managing employee data, benefits, payroll, and performance
- Accounting and Finance: cloud-based accounting and finance solutions, such as QuickBooks, provide businesses with a centralized platform for managing financial data, invoicing, and payments
- Enterprise Resource Planning (ERP): cloud-based ERP services, such as Oracle NetSuite and SAP Business ByDesign, provide a range of applications for managing business operations
- Marketing Automation: cloud-based marketing automation solutions, such as Mailchimp and SendGrid, provide businesses with a platform for e-mail marketing and lead generation
- Project Management: cloud-based project management services, such as Asana and Trello, provide businesses with a collaborative platform for managing projects, tasks, and workflows
- Information Technology Service Management (ITSM): cloud-based ITSM solutions, such as ServiceNow and Atlassian, provide enterprises with a platform to digitize their workflows
- Customer Service and Support: cloud-based customer service and support solutions, such as Zendesk, provide services including ticket management and live chat
- E-commerce: cloud-based E-commerce services, such as Shopify and Etsy, provide businesses with a platform for building and managing online stores, including payment processing and shipping
- Communication and Collaboration: cloud-based communication and collaboration services, such as Gmail, Microsoft 365’s Outlook, Zoom, and Slack, provide businesses with a platform for messaging, videoconferencing, and collaboration
- File Hosting: cloud-based file hosting services, such as Dropbox and iCloud, allow users to store, share, and synchronize files online and across devices
- Creative and Design: cloud-based creative and design services, such as Adobe Creative Cloud, include software applications such as Photoshop, Illustrator, InDesign, Premiere Pro, and more
What is Anything as a Service (XaaS)?
Anything as a Service (XaaS) is a broad term that refers to the delivery of any type of product, service, or resource over the internet, using a cloud service model. Ultimately, all XaaS solutions can be categorized into Infrastructure as a Service (IaaS), Platform as a Service (PaaS), or Software as a Service (SaaS), which are the prevalent cloud service models. Still, cloud service providers (CSPs) like to use more descriptive terms for XaaS in their marketing efforts, examples of which include:
- Compliance as a Service (CaaS)
- Data Science as a Service (DSaaS)
- Database as a Service (DBaaS)
- Desktop as a Service (DaaS)
- Disaster Recovery as a Service (DRaaS)
- Identity as a Service (IDaaS)
- Network as a Service (NaaS)
- Security as a Service (SECaaS)
- Storage as a Service (STaaS)