[Avg. reading time: 19 minutes]

Types of Cloud Services

SaaS - Software as a Service

Cloud-based service providers offer end-user applications. Google Apps, DropBox, Slack, etc.

Key Characteristics:

  • Web Access to Software: Users access the software via the internet, typically through a web browser.

  • Central Management: Software is managed from a central location by the service provider.

  • Multi-Tenant Model: One version of the application is used by multiple customers. Automatic Updates: No need for manual patches or upgrades; updates are handled by the provider.

When Not to Use SaaS:

  • Limited Internet Access

  • Mission-Critical Applications with Low Tolerance for Downtime

  • Highly Customized Applications: Business requires deep customization that SaaS platforms can’t accommodate

  • Hardware Integration Needs: When integration with on-premise hardware (e.g., scanners, local printers) is required.

  • Performance Demands: When very high performance or faster processing is critical and might be constrained by the internet connection.

  • Data Residency Requirements: When data must remain on-premise due to legal, security, or compliance reasons.


PaaS - Platform as a Service

PaaS provides a platform allowing customers to develop, run, and manage applications without dealing with the underlying infrastructure. Examples include AWS RDS, Heroku, and Salesforce.

Key Characteristics:

  • Scalable: Automatically scales resources up or down based on demand.

  • Built on Virtualization Technology: Uses virtual machines or containers to deliver resources.

  • Managed Services: Providers handle software updates, patches, and maintenance tasks, freeing up user resources to focus on development.

When Not to Use PaaS:

  • Vendor Lock-In: Proprietary tools or services (e.g., AWS-specific services) can limit portability, making it difficult to switch providers without significant rework.

  • Limited Control Over Infrastructure: When you need deep control over the underlying hardware, operating system, or network configurations, which PaaS typically abstracts away.

  • Specific Compliance Requirements: When the application has specific regulatory or compliance needs that PaaS providers cannot meet, such as data sovereignty or special security measures.

  • Incompatible with New or Niche Software: When using new or niche software that is not supported by the PaaS environment, requiring custom installations or configurations that PaaS platforms do not permit.

  • Performance-Sensitive Applications: When extremely high performance or low-latency connections are necessary, and PaaS may introduce limitations or overhead that impact performance.

  • Custom Middleware or Legacy Systems Integration: When applications require specific middleware or have dependencies on legacy systems that are not easily integrated with PaaS offerings.


IaaS - Infrastructure as a Service

IaaS provides virtualized computing resources over the internet, including servers, storage, and networking on a pay-as-you-go basis. Examples include Amazon EC2, Google Compute Engine, and S3.

Key Characteristics:

  • Highly Flexible and Scalable: Allows users to scale resources up or down based on needs, providing a high degree of control over the infrastructure.

  • Multi-User Access: Multiple users can access and manage the resources, facilitating collaboration and resource sharing.

  • Cost-Effective: Can be cost-effective when resources are used and managed efficiently, with the ability to pay only for what you use.

When Not to Use IaaS:

  • Complexity in Management: Requires managing and configuring virtual machines, networks, and storage, which can be complex and time-consuming compared to PaaS or SaaS.

  • Inexperienced Teams: When the team lacks expertise in managing infrastructure, leading to potential security risks, misconfigurations, or inefficient use of resources.

  • Maintenance Overhead: Users are responsible for managing OS updates, security patches, and application installations, which can increase the operational burden.

  • Predictable Workloads: For workloads that are highly predictable and stable, other models (like PaaS or even traditional on-premises solutions) might offer more streamlined management.

  • High Availability and Disaster Recovery: Setting up high availability, redundancy, and disaster recovery in IaaS requires careful planning and additional configuration, which can add complexity and cost.

  • Compliance and Security: If the application has stringent compliance and security needs, the responsibility lies with the user to ensure the infrastructure meets these requirements, which can be resource-intensive.


Comparison between Services


FaaS - Function as a Service (Serverless computing)

FaaS allows developers to run small pieces of code (functions) in response to events without managing the underlying infrastructure. This enables a serverless architecture where the cloud provider handles server management, scaling, and maintenance.

Key Characteristics:

  • Event-Driven Execution: Functions are triggered by specific events (e.g., HTTP requests, file uploads, database changes).

  • Automatic Scaling: Functions automatically scale up or down based on demand, ensuring efficient resource usage without manual intervention.

  • Built-In High Availability: FaaS offerings typically include built-in redundancy and high availability features, enhancing application resilience.

  • Pay-Per-Use: Billing is based on actual execution time and resources consumed, making it cost-effective for intermittent or unpredictable workloads.

  • No Server Management: The cloud provider manages all aspects of server deployment, maintenance, and capacity, allowing developers to focus purely on writing code.

Examples:

  • Azure Functions
  • AWS Lambda
  • AWS Step Functions

When Not to Use FaaS:

  • Long-Running Processes: FaaS is generally not suited for long-running processes or tasks that exceed the execution time limits imposed by providers.

  • Complex State Management: Functions are stateless by design, which can complicate applications requiring complex, persistent state management.

  • Cold Start Latency: Infrequently invoked functions can experience cold start delays, impacting performance for latency-sensitive applications.

  • Heavy or Complex Computation: For tasks that involve heavy computation or require extensive processing power, FaaS may not provide the necessary resources efficiently.

  • Vendor Lock-In: Functions are often tightly integrated with specific cloud provider services, which can make it difficult to migrate to other platforms.

  • Predictable, Constant Workloads: If the workload is constant and predictable, other models (like dedicated VMs or containers) might offer better performance and cost predictability.


Easy way to remember SaaS, PaaS, IaaS

src: http://bigcommerce.comVer 5.5.3

Last change: 2025-10-15