[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.com