What is Cloud Computing
Cloud Computing is the technology that enables remote use of computing resources — both software and hardware — over the Internet. Instead of maintaining local physical servers, companies and developers use third-party data centers to process data, store files, and run applications.
Key use cases include:
- Big Data processing — analyzing large volumes of data without dedicated hardware
- Storage — files, backups, and databases hosted in a distributed and redundant manner
- Application servers — environments for running APIs, websites, and services without managing physical hardware
The pay-as-you-go model is one of the biggest draws: you pay only for the resources you consume and can scale up or down based on demand.
IaaS — Infrastructure as a Service
IaaS provides the core cloud infrastructure: virtual servers, storage, networking, and firewall and security services. The provider manages the physical hardware, networking, and virtualization, while the customer is responsible for the operating system, middleware, runtime, and applications.
This is the model that offers the most control and the most responsibility. Ideal for teams that need full flexibility over environment configuration.
Examples:
- AWS EC2
- Google Compute Engine
- Azure Virtual Machines
- DigitalOcean Droplets
When to use: when you need full control over the environment, have a team capable of managing servers, or require very specific network and security configurations.
PaaS — Platform as a Service
PaaS goes beyond infrastructure and provides the operating system and development environment in the cloud. The provider manages servers, storage, networking, OS, and middleware. The customer only worries about application code and data.
It includes development tools, libraries, managed databases, and deployment pipelines. The goal is to accelerate the development cycle by eliminating operational complexity.
Examples:
- Heroku
- Google App Engine
- Railway
- Render
- AWS Elastic Beanstalk
When to use: when the priority is delivery speed and the team wants to focus on code without worrying about OS patches, load balancing, or server configuration.
SaaS — Software as a Service
SaaS is a complete application delivered over the Internet, typically licensed by subscription or usage volume. The provider manages absolutely everything: infrastructure, platform, application, updates, and maintenance. The end user accesses the software through a browser or dedicated client.
There is no need to worry about installation, maintenance, or updates — all of that is the provider’s responsibility.
Examples:
- Google Workspace (Gmail, Docs, Drive)
- Slack
- Salesforce
- Microsoft 365
- Notion
When to use: when the need is to use ready-made software without deep infrastructure customization and with the least possible operational overhead.
Other models: DaaS, FaaS, BaaS
DaaS — Desktop as a Service
DaaS provides virtual desktops over the Internet. The provider hosts and manages the VDI (Virtual Desktop Infrastructure), while the user accesses a full work environment from any device. Licensing is typically per-user subscription.
Examples: Amazon WorkSpaces, Azure Virtual Desktop, Citrix DaaS.
When to use: remote teams that need standardized environments or scenarios with strict security requirements where data never leaves the data center.
FaaS — Functions as a Service
FaaS is the quintessential serverless model. You write individual functions and the provider handles all execution: provisioning, scaling, and billing per invocation. There are no servers to manage — not even the concept of a server.
Examples: AWS Lambda, Cloudflare Workers, Google Cloud Functions, Azure Functions.
When to use: event-driven workloads, lightweight APIs, asynchronous processing, and scenarios where cost should be proportional to actual usage.
BaaS — Backend as a Service
BaaS provides ready-made backend services — authentication, real-time databases, file storage, push notifications — that can be consumed directly by the frontend without building and maintaining a backend server.
Examples: Firebase, Supabase, AWS Amplify.
When to use: MVPs, mobile-first applications, and projects where prototyping speed matters more than full backend control.
XaaS — Everything as a Service
XaaS is the umbrella term that covers any IT resource delivered as a service through the cloud. Beyond the models already mentioned, there are many specializations:
| Acronym | Name | Description |
|---|---|---|
| CaaS | Containers as a Service | Container orchestration and management (e.g., Google GKE, AWS ECS) |
| MaaS | Monitoring as a Service | Managed monitoring and observability (e.g., Datadog, New Relic) |
| DRaaS | Disaster Recovery as a Service | Cloud-based disaster replication and recovery |
| NaaS | Network as a Service | On-demand virtualized network infrastructure |
| DBaaS | Database as a Service | Managed databases (e.g., Amazon RDS, PlanetScale) |
The XaaS trend reflects the shift from purchase models (CapEx) to consumption models (OpEx), where virtually any IT capability can be consumed as a service. This lowers the barrier to entry, enables scaling without heavy upfront investment, and transfers operational complexity to specialized providers.
Comparison: IaaS vs PaaS vs SaaS
The table below shows the division of responsibilities between provider and customer for each model:
| Layer | On-Premises | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| Application | Customer | Customer | Customer | Provider |
| Data | Customer | Customer | Customer | Provider |
| Runtime | Customer | Customer | Provider | Provider |
| Middleware | Customer | Customer | Provider | Provider |
| OS | Customer | Customer | Provider | Provider |
| Virtualization | Customer | Provider | Provider | Provider |
| Servers | Customer | Provider | Provider | Provider |
| Storage | Customer | Provider | Provider | Provider |
| Networking | Customer | Provider | Provider | Provider |
The higher you go in the stack (from IaaS to SaaS), the less operational responsibility you have — and the less control too.
How to choose the right model
The choice depends on a few practical criteria:
- Level of control needed: if you need to configure the OS kernel or granular firewall rules, IaaS is the way. If you just want to ship code, PaaS works. If you want ready-made software, SaaS.
- Team capability: IaaS requires infrastructure expertise. PaaS reduces that requirement. SaaS practically eliminates it.
- Cost and predictability: SaaS has more predictable costs (per-user license). IaaS can vary based on resource consumption. PaaS falls in between.
- Delivery speed: PaaS and SaaS accelerate time-to-market. IaaS offers more flexibility but requires more upfront work.
- Compliance and security: some regulated industries require full control over infrastructure (IaaS or on-premises). Others accept managed models as long as the provider holds adequate certifications.
In practice, most companies use a combination of models. An application might run on PaaS, consume a managed database (DBaaS), send emails via SaaS, and have backups replicated on IaaS. This hybrid approach is the norm in the modern cloud ecosystem.