Fundamentals of Cloud Computing Architecture
The inefficiencies of traditional on-premises IT infrastructure have long been a pain point for enterprises: capital expenditure (CapEx) for procuring physical servers, storage, and networking equipment often accounts for 60% to 80% of annual IT budgets, while resource utilization rates hover between 15% and 30% due to over-provisioning for peak load scenarios. When business demand surges—such as during holiday sales for retailers or end-of-month processing for financial institutions—IT teams scramble to procure and deploy additional hardware, a process that can take weeks or even months, often missing critical business windows. Conversely, during periods of low demand, idle resources waste significant capital. These chronic mismatches between resource supply and business demand drove the evolution of cloud computing, a paradigm that has reshaped the entire technology industry over the past two decades.
The conceptual roots of cloud computing trace back to 1961, when computer scientist John McCarthy proposed the idea of "computation as a public utility" at MIT, envisioning a future where computing power would be delivered as a metered service like electricity or water. This vision remained unrealized for decades due to limitations in network bandwidth, virtualization technology, and market demand. The 1990s saw the maturation of server virtualization technology, which allowed multiple isolated operating systems to run on a single physical server, laying the technical foundation for resource pooling. The watershed moment for commercial cloud computing arrived in 2006, when Amazon Web Services (AWS) launched two foundational services: Elastic Compute Cloud (EC2), providing on-demand virtual servers, and Simple Storage Service (S3), providing scalable object storage. These offerings validated the business model of pay-as-you-go computing, triggering a wave of innovation from Microsoft (Azure), Google (Google Cloud Platform), and thousands of startups.
The authoritative definition of cloud computing is provided by the U.S. National Institute of Standards and Technology (NIST) in Special Publication 800-145[^1]: *Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.* This definition encapsulates five core characteristics that distinguish cloud computing from traditional on-premises IT: 1. On-demand self-service: Users can provision computing resources (servers, storage, networking) automatically without requiring human interaction with the service provider, analogous to turning on a tap for water without contacting a utility company. 2. Broad network access: Resources are accessible over standard network protocols (e.g., HTTP, HTTPS) from any device with an internet connection, enabling remote work and global business operations. 3. Resource pooling: Computing resources are pooled across multiple customers (tenants) using a multi-tenant model, with physical and virtual resources dynamically assigned and reassigned based on demand. Customers generally do not know the exact location of the resources they are using, though they may be able to specify a geographic region. 4. Rapid elasticity: Resources can be elastically provisioned and released, often automatically, to scale rapidly outward and inward with demand. To the user, resources often appear to be unlimited and available for purchase in any quantity at any time. 5. Measured service: Cloud systems automatically control and optimize resource usage by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth). Resource usage is monitored, controlled, and reported, providing transparency for both the provider and consumer of the service.
1.1 Cloud Service Models
Cloud service models categorize the degree of control users have over infrastructure and applications, based on which layers of the technology stack are managed by the cloud provider versus the user. The three foundational service models, standardized by NIST, form a layered hierarchy where each higher-level model builds on the lower-level one.
1.1.1 Infrastructure as a Service (IaaS)
IaaS is the most fundamental cloud service model, providing users with access to virtualized computing resources over the internet. In the IaaS model, the cloud provider manages the physical infrastructure (servers, storage, networking, data centers) and the hypervisor layer that enables virtualization, while users are responsible for managing the operating system, middleware, runtime environment, data, and applications running on the virtual resources. IaaS is ideal for scenarios where organizations require full control over their infrastructure, such as migrating legacy on-premises applications to the cloud, running custom operating systems or specialized software stacks, or building highly customized environments for development and testing. Common IaaS offerings include AWS EC2, Google Compute Engine, and Alibaba Cloud Elastic Compute Service (ECS). For example, a financial institution migrating its core trading system to the cloud may choose IaaS to retain full control over the operating system and runtime environment to meet strict regulatory requirements.
1.1.2 Platform as a Service (PaaS)
PaaS builds on top of IaaS to provide a complete development and deployment platform, including the operating system, middleware, runtime environment, development tools, and database management systems. In the PaaS model, the cloud provider manages all underlying infrastructure and platform components, while users only need to focus on developing, deploying, and managing their applications and data. PaaS is designed to accelerate application development and deployment by eliminating the need for teams to manage underlying infrastructure. It is particularly suitable for scenarios such as rapid prototyping, microservices development, and deploying containerized applications. Common PaaS offerings include Google App Engine, Heroku, and AWS Elastic Beanstalk. For example, a startup developing a new mobile application can use PaaS to deploy code directly without worrying about provisioning servers or configuring load balancers, reducing time-to-market from weeks to hours.
1.1.3 Software as a Service (SaaS)
SaaS is the highest-level cloud service model, providing users with access to fully functional, ready-to-use applications delivered over the internet. In the SaaS model, the cloud provider manages all layers of the technology stack, from physical infrastructure to the application itself, and users only need to configure and use the application via a web browser or thin client. SaaS is the most widely adopted cloud service model, used for common business applications such as customer relationship management (CRM), enterprise resource planning (ERP), email, and collaboration tools. Common SaaS offerings include Salesforce, Microsoft 365, and Zoom. For example, a small business can subscribe to Salesforce for CRM functionality without purchasing any servers or software licenses, paying only a monthly fee per user.
The following table summarizes the responsibility split between cloud providers and users across the three service models:
| Responsibility Layer | IaaS | PaaS | SaaS | |----------------------------|---------------------|---------------------|---------------------| | Physical infrastructure | Provider | Provider | Provider | | Virtualization/hypervisor | Provider | Provider | Provider | | Operating system, middleware, runtime | User | Provider | Provider | | Applications, data