6.3: Core Cloud Service Models- IaaS, PaaS, and SaaS

Introduction to Cloud Computing · LibreTexts

0%

Contents

    Text

    Size
    100%
    Theme
    Typeface
    Line length
    Spacing

    From LibreTexts, under CC BY 4.0, as the source states it; its equations are written in TeX, which the PDF shows typeset. This page at LibreTexts.

    6.3: Core Cloud Service Models- IaaS, PaaS, and SaaS

    Three Primary Models

    Cloud services are commonly categorized into three primary models – Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). These represent the fundamental layers of cloud service abstraction, and are widely adopted and formalized across the industry. Each model provides a different level of abstraction and managed service from the cloud provider. In a layered view, IaaS is the base, PaaS is a higher layer built on IaaS, and SaaS is the top layer often built on PaaS/IaaS beneath [3]. Let’s examine each model:

    Infrastructure as a Service (IaaS)

    Infrastructure as a Service (IaaS) delivers on-demand access to fundamental computing resources – virtual servers, storage, networks, and virtualization – over the internet. In an IaaS model, the cloud provider manages the physical data center, hardware, and the hypervisor/virtualization layer, while the customer is responsible for everything above that (the operating system, runtime, and applications on the virtual machines). Essentially, IaaS provides raw building blocks: you can rent virtual machines (with CPU, memory, disk), allocate storage volumes or buckets, and configure virtual networks and firewalls as needed.

    IaaS gives maximum control and flexibility to the cloud consumer short of running physical hardware. You can choose OS and software, configure the environment, and have freedom to run any workload. This makes IaaS suitable for lifting-and-shifting existing on-premises systems to cloud or for any scenario requiring custom configurations. The trade-off is that the customer carries more responsibility for managing and maintaining the system (patching the OS, scaling the deployment, etc.). Common examples of IaaS include Amazon EC2 (Elastic Compute Cloud) for virtual servers, Google Cloud Compute Engine, Microsoft Azure Virtual Machines, as well as storage services like Amazon S3 or Azure Blob Storage which provide virtually unlimited raw storage on demand.

    Networking capabilities are also part of IaaS – for example, the ability to define virtual networks, subnets, load balancers, and IP address ranges in the cloud. The user designs their network topology in the cloud much like in an on-premises data center, but does so through software (software-defined networking). The provider ensures data packets route correctly in the multi-tenant environment. IaaS thus essentially offers a virtual data center in the cloud.

    In summary, with IaaS the cloud provider supplies the basic infrastructure and keeps it running, and the customer deploys and manages their own software stack on top of it. If we compare it to renting a house: IaaS is like renting an unfinished house – the structure (infrastructure) is provided, but you are responsible for furnishing it and maintenance of the interior. This provides flexibility to design it as you like.

    Platform as a Service (PaaS)

    Platform as a Service (PaaS) offers a higher-level, fully managed platform for developing, running, and managing applications without the complexity of building and maintaining the underlying infrastructure. In a PaaS model, the provider manages not only the hardware and OS, but also the runtime environment, middleware, and other tools – everything needed to host and deploy applications. Developers using PaaS can simply focus on writing code and use the provided platform services to deploy and scale their applications.

    With PaaS, the cloud provider handles the provisioning and management of servers, storage, networking, operating system updates, load balancing, auto-scaling, and even built-in services like databases or messaging. The cloud consumer typically just uploads their application code (for example, a web application or microservice), along with configuration, and the platform takes care of deploying it in the cloud. The user usually has some control over scaling parameters, configurations, and can use provided APIs, but does not manage the OS or hardware directly.

    This model significantly speeds up development and deployment. Developers don’t need to worry about patching an OS or configuring a web server cluster – those are provided. It enables rapid innovation: for instance, Google App Engine (a PaaS) allows developers to deploy code and let Google handle how to allocate resources to run it. PaaS environments often come with integrated developer services such as databases (Database-as-a-Service), caching, identity management, messaging services, analytics, etc., which can be leveraged with minimal setup.

    The benefits of PaaS include faster time-to-market, simplified deployment, and built-in scalability and security. The trade-off is less control over the environment – you might be constrained to certain languages or frameworks that the PaaS supports, and you can’t fine-tune the OS or hardware settings. However, most PaaS providers offer a variety of configurations and scaling options to meet common needs, as well as tools for monitoring and managing the deployed applications. Examples of PaaS include Heroku, Google App Engine, Microsoft Azure App Service, and Red Hat OpenShift. In these platforms, you typically just push your code or container image, and the platform orchestrates containers or processes to run your app, scaling them as needed.

    To use the housing analogy: PaaS is like renting a fully furnished apartment – the structure and all basic amenities are taken care of; you just bring your belongings (application code) and start living (running it). It’s very convenient, though you might have less say in the interior layout (runtime environment specifics) than in an unfurnished house.

    Software as a Service (SaaS)

    Software as a Service (SaaS) is the delivery of a full-fledged application or software service over the internet, managed entirely by the provider. SaaS applications reside at the top of the cloud stack – the cloud provider runs the complete application on their infrastructure, and end users access it via a web browser or lightweight client. The user does not manage or control any aspect of the underlying cloud infrastructure or application platform; they simply use the software on a subscription or pay-per-use basis.

    In SaaS, the provider handles everything: physical infrastructure, network, servers, OS, middleware, application logic, updates, security patches, and data backups. Users are relieved of any installation or maintenance tasks. They typically just configure some settings within the application and input their data. Examples of SaaS include familiar applications like Google Workspace (Gmail, Docs), Microsoft 365 (Office online), Salesforce CRM, Dropbox, Slack, and many others. For instance, when using Gmail (a SaaS email application), the user just sends and receives emails through the web interface – Google manages all servers, storage, networking, spam filtering algorithms, software updates, etc., behind the scenes. The user only worries about their use of the application (organizing emails, setting up filters) and perhaps some user-specific configurations.

    The primary advantage of SaaS is utmost simplicity for end-users and organizations. They can start using sophisticated software with zero infrastructure setup – just sign up online. This model often significantly reduces time and cost to use software, since there’s no hardware to buy or IT team needed to install and manage the application. SaaS also usually provides on-demand scalability (the provider ensures the app scales to however many users or data are needed) and continuous updates (features and improvements roll out regularly without customer intervention).

    However, SaaS also means relying on the provider for security, uptime, and data governance. Customers have limited control; for example, you cannot customize core functionality beyond what the SaaS application allows through settings or perhaps add-ons. Data is stored with the provider (often in a multi-tenant environment), raising considerations around compliance and trust. For most applications that are not a company’s secret sauce, this trade-off is worth it, given the agility and cost benefits. But for very specialized or sensitive software needs, some organizations might choose to develop in-house or use IaaS/PaaS to build a custom solution instead of SaaS.

    In summary, SaaS is the consumable layer of cloud services – ready-to-use software accessible via the internet. It completes the layered cloud model by allowing even non-technical users to benefit from cloud computing (they just use a web application), while all technical complexity is handled by the cloud provider.

    Comparing IaaS vs. PaaS vs. SaaS

    The three models discussed can be viewed as progressively higher levels of abstraction. An easy way to compare them is to look at which responsibilities are handled by the cloud provider versus by the customer in each model. The table below highlights the differences in responsibility and control:

    Differences in Responsibility and Control

    Stack Component

    IaaS (Infrastructure)

    PaaS (Platform)

    SaaS (Software)

    Physical Data Center, Network, Storage

    Provider-managed – The cloud provider owns and operates the data centers, physical servers, networking hardware, and storage devices.

    Provider – Same as IaaS; PaaS runs on provider’s infrastructure.

    Provider – Same as IaaS; SaaS runs entirely on provider’s infra.

    Virtualization (Hypervisor)

    Provider – Provider manages virtualization layer creating VMs/containers.

    Provider – Provider manages virtualization and the runtime environment on top.

    Provider – All underlying layers including virtualization are provider-managed.

    Operating System

    Customer-managed – You install/configure the OS on your VMs.

    Provider-managed – OS is provided and managed as part of the platform environment.

    Provider – OS for the application is fully managed; invisible to customer.

    Application Runtime/Middleware

    Customer – You install runtimes, databases, web servers, etc. on VMs as needed.

    Provider – Provided as part of PaaS (e.g. a Java runtime, database service, etc.).

    Provider – All runtime components needed by the SaaS app are managed internally.

    Application Software

    Customer – You are responsible for your application’s code, deploying it and managing it on the VMs.

    Customer – You write the application code and deploy it; the platform manages the rest. (For some PaaS offerings, configuration might replace coding, but the customer defines the app’s logic.)

    Provider – The provider supplies the complete application. (Customer only does minor configuration and uses the app.)

    Data & Configuration

    Customer – You manage your data, backups (unless separately provided), and configure all aspects of your stack.

    Customer – You manage your application’s data and any app-specific configuration. The PaaS may offer data services but you use and govern the data.

    Customer – Responsible for the content/data you input into the SaaS and some configuration, but underlying database management is provider’s duty.

    Table 6.1: Comparison of responsibilities in IaaS vs. PaaS vs. SaaS. In general, as you move from IaaS to SaaS, more of the stack is managed by the provider and less by the customer. IaaS offers the most control (but also the most management overhead), whereas SaaS offers the least management overhead (but also the least control or customization).

    Each model has its use cases and trade-offs. To summarize the trade-offs between the service layers:

    • IaaS gives maximum flexibility – you can run almost anything the OS will support – making it ideal for legacy application migration or custom systems. You gain control over environment and software choices. The cost is that you must handle system administration tasks (system updates, middleware, scaling).
    • PaaS strikes a balance by abstracting away infrastructure concerns but still allowing you to run your own applications. It speeds up development and frees developers from operations toil. The trade-off is potential constraints in technology stack choices or architecture (you might be limited to certain languages or patterns the PaaS supports), and you rely on the provider’s platform for critical services.
    • SaaS offers ready-to-use functionality accessible to end users or organizations with zero infrastructure work. It’s very efficient for standard capabilities (email, CRM, collaboration, etc.), enabling even small teams to use powerful software. The limitation is that it’s one-size-fits-all to a degree – customization is limited to configuration options, and you entrust data and uptime entirely to the vendor.

    Often, an enterprise will use all three models in combination. For example, a company might use SaaS for commodity applications like email (e.g. Office 365), PaaS for developing a new internal web application (to get it to market quickly), and IaaS for running an existing database server that is not easily migrated to a PaaS service. These models can also be complementary: a SaaS application may itself be built by its provider on top of IaaS and PaaS components behind the scenes. The key is to choose the right level of abstraction for each need – leveraging SaaS where you want out-of-the-box convenience, PaaS where you want to build and deploy custom code without managing infrastructure, and IaaS where you need full control or have specialized requirements.


    This page titled 6.3: Core Cloud Service Models- IaaS, PaaS, and SaaS was last modified on Wed, 23 Sep 2026 03:22:07 GMT and is shared under a CC BY 4.0 license and was authored, remixed, and/or curated by Felix Amoruwa.