Cloud computing offers different service models, each providing a different level of abstraction and management. These models define what resources are managed by the provider versus the customer.
Traditional Service Models
Infrastructure as a Service (IaaS)
Definition: Provider provisions processing, storage, network, and other fundamental computing resources where the customer can deploy and run arbitrary software, including operating systems and applications.
Customer manages:
- Operating systems
- Middleware
- Applications
- Data
- Runtime environments
Provider manages:
- Servers and storage
- Networking
- Virtualization
- Data center infrastructure
Key characteristics:
- Most flexible cloud service model
- Customer has maximum control over infrastructure configuration
- Requires the most technical expertise to manage
Examples:
- Amazon EC2
- Google Compute Engine
- Microsoft Azure VMs
- OpenStack
Platform as a Service (PaaS)
Definition: Customer deploys applications onto cloud infrastructure using programming languages, libraries, services, and tools supported by the provider.
Customer manages:
- Applications
- Data
- Some configuration settings
Provider manages:
- Operating systems
- Middleware
- Runtime
- Servers and storage
- Networking
- Data center infrastructure
Key characteristics:
- Reduces complexity of infrastructure management
- Accelerates application deployment
- Often includes development tools and services
- Less control compared to IaaS
Examples:
- Heroku
- Google App Engine
- Microsoft Azure App Service
- AWS Elastic Beanstalk
Software as a Service (SaaS)
Definition: Provider delivers applications running on cloud infrastructure accessible through various client devices, typically via a web browser.
Customer manages:
- Minimal application configuration
- Data (to some extent)
Provider manages:
- Everything including the application itself
- All underlying infrastructure and software
Key characteristics:
- Minimal management required from customer
- Typically subscription-based
- Immediate usability
- Limited customization
Examples:
- Microsoft Office 365
- Google Workspace
- Salesforce
- Dropbox
IaaS in Detail
How IaaS Works
- Customer requests VMs with specific configurations (CPU, RAM, storage)
- Provider matches request against available data center machines
- VMs are provisioned on physical hosts with requested resources
- Customer accesses and manages VMs through provided interfaces
Resource Allocation
- CPU allocation: Either pinned to specific cores or scheduled by the hypervisor
- Memory allocation: Usually strictly partitioned between VMs
- Storage: Allocated based on requested volume sizes
- Network resources: Shared among VMs with quality of service controls
IaaS APIs
IaaS providers offer APIs for programmatic control of resources:
- Create, start, stop, clone operations
- Monitoring capabilities
- Pricing information access
- Resource management
Benefits:
- Flexibility through code-based infrastructure control
- Automation of provisioning and management
- Integration with other tools and systems
IaaS Pricing Models
Typically based on a combination of:
- VM instance type/size
- Duration of usage (per hour/minute)
- Storage consumption
- Network traffic
- Additional services used
PaaS in Detail
Advantages Over IaaS
- Reduced development and maintenance effort
- No OS patching or middleware configuration
- Higher level of abstraction
- Focus on application development rather than infrastructure
PaaS Components
- Development tools and environments
- Database services
- Integration services
- Application runtimes
- Monitoring and management tools
PaaS Pricing Models
More diverse than IaaS, potentially based on:
- Time-based usage
- Per query (database services)
- Per message (queue services)
- Per CPU usage (request-triggered applications)
- Storage consumption
Example: Amazon DynamoDB
- Key-value store used inside Amazon (powers parts of AWS like S3)
- Designed for high scalability (100-1000 servers)
- Emphasizes availability over consistency
- Uses peer-to-peer approach with no single point of failure
- Nodes can be added/removed at runtime
- Optimized for key-value operations rather than range queries
SaaS in Detail
Business Model
- Provider develops and maintains the application
- Offers it to customers for a subscription fee
- Handles all updates, security, and infrastructure
- Typically multi-tenant, serving many customers on shared infrastructure
Typical SaaS Characteristics
- Web-accessible applications
- Usually based on monthly/annual subscription
- Automatic updates and maintenance
- Limited customization compared to self-hosted solutions
- Reduced IT overhead for customers
Example: Salesforce
- Comprehensive customer relationship management platform
- Replaces spreadsheets, to-do lists, and email with integrated platform
- Backed by elastic cloud services that scale with company growth
- Tiered pricing based on features and user count
Choosing Between Service Models
Factors to consider when selecting a service model:
- Core competency assessment: What skills exist in your organization?
- Cost considerations: How much can you spend on each layer?
- Flexibility requirements: How much control do you need?
- Regulatory and privacy concerns: Where does your data need to reside?
This decision applies to both individuals and organizations and should align with strategic goals.