Cloud computing is the practice of delivering computing resources—such as processing power, storage, networking, and software—as scalable, on-demand services over the internet, typically on a pay-per-use basis. Rather than owning and operating physical data centers, organizations rent computational capacity from providers who maintain large, shared infrastructures. The term "cloud" is a metaphor for the internet itself, obscuring the complex physical systems that deliver these services. At its core, cloud computing is a shift in how computing is provisioned: from a capital-intensive, locally managed asset to an operational expense for a remotely managed utility.
The field is organized around a set of enduring problems. The most fundamental is resource abstraction: how can physical hardware be presented to users as a flexible, seemingly unlimited pool of resources? A related question is elasticity—how can a system rapidly scale resources up or down in response to changing demand, without human intervention? Multi-tenancy asks how many independent customers can safely and efficiently share the same physical infrastructure while remaining isolated from one another. Cost modeling concerns how to price and meter these shared resources fairly and predictably. Finally, reliability and fault tolerance address how to build systems that continue operating despite frequent hardware failures, which become inevitable at massive scale.
The stakes are substantial. Cloud computing has reshaped the economics of starting a technology company, reduced the barrier to large-scale computation for research, and become critical infrastructure for governments, healthcare, finance, and communication. A failure in a major cloud provider can disrupt services across the globe, making the field's reliability questions matters of public concern. The concentration of computing power in a few large providers also raises questions about market power, data sovereignty, and environmental impact.
The conceptual roots of cloud computing lie in earlier computing paradigms. In the 1960s, computer scientist John McCarthy articulated a vision of "computer utility," where computing would be delivered like electricity or water. Time-sharing systems of that era allowed multiple users to share a single mainframe, an early form of resource pooling. In the 1990s, grid computing pursued the goal of connecting geographically distributed computers to solve large problems, often in scientific contexts, though it struggled with usability and standardization. Utility computing, a related idea, proposed metering computing resources like a public utility.
The modern cloud emerged in the mid-2000s, driven by the convergence of several factors: the widespread availability of high-bandwidth internet, the maturation of virtualization technology, and the operational expertise of large internet companies. Virtualization, which allows a single physical server to run multiple isolated operating systems, was a crucial enabling technology. It allowed providers to pack many customers onto shared hardware while maintaining strong isolation. Amazon Web Services, launched in 2006, is widely credited with popularizing the modern cloud model by offering infrastructure services to external customers. Other major technology companies, including Microsoft, Google, and later Alibaba and others, followed with their own offerings. The field has since evolved from providing basic virtual machines to a vast ecosystem of managed services, including databases, machine learning platforms, and serverless functions.
The practice of cloud computing is organized around several distinct service models and deployment models. These are not rival schools but complementary layers that address different levels of abstraction.
The most widely used framework distinguishes three service models, defined by what the provider manages versus what the customer manages.
Infrastructure as a Service (IaaS) provides the most fundamental building blocks: virtual machines, storage volumes, virtual networks, and load balancers. The customer is responsible for everything above the hypervisor—the operating system, runtime, applications, and data. This model offers maximum flexibility and control, making it suitable for migrating existing applications with minimal modification or for running workloads with specialized requirements. Its main drawback is operational burden: the customer must patch operating systems, manage security, and handle scaling logic.
Platform as a Service (PaaS) goes a step further by providing a managed runtime environment. The provider handles the operating system, middleware, and often the scaling infrastructure. The customer deploys application code and data, and the platform automatically provisions the underlying resources. This model dramatically reduces operational overhead and enables rapid development. However, it imposes constraints: applications must conform to the platform's programming models, supported languages, and service interfaces, which can lead to vendor lock-in—the difficulty of migrating to a different provider because of proprietary APIs and services.
Software as a Service (SaaS) delivers complete, ready-to-use applications over the internet. The customer manages no infrastructure or platform; they simply use the software through a browser or client. Examples include email services, office suites, and customer relationship management tools. SaaS offers the lowest operational burden and predictable costs, but the least control and customization. The customer's data resides on the provider's systems, raising questions of data ownership, privacy, and portability.
These models are best understood as a spectrum of abstraction. A customer might use all three simultaneously: a SaaS application for email, a PaaS environment for custom application development, and IaaS for legacy workloads that require specific infrastructure control. The models coexist because different workloads have different requirements for control, compliance, and operational effort.
A second axis of classification concerns who owns and operates the infrastructure.
Public cloud refers to services offered by third-party providers over the public internet, shared among many customers. This is the default meaning of "cloud computing" and offers the greatest economies of scale.
Private cloud describes a cloud-like environment dedicated to a single organization, either on-premises or hosted by a third party. It emerged partly in response to concerns about security, compliance, and data sovereignty. A private cloud can provide many of the benefits of self-service and elasticity while maintaining greater control. However, it forgoes the cost-sharing advantages of the public cloud and requires the organization to bear the full cost of idle capacity.
Hybrid cloud combines public and private environments, allowing workloads to move between them. This approach is common for organizations that need to keep sensitive data on private infrastructure while using the public cloud for burst capacity or less sensitive workloads. The related concept of multi-cloud refers to using multiple public cloud providers simultaneously, often to avoid vendor lock-in or to use best-of-breed services from different providers.
These deployment models are not mutually exclusive; they represent strategic choices about control, cost, and risk. The trend has shifted over time, with early enthusiasm for private clouds giving way to a recognition that the public cloud's scale offers superior economics and innovation, with hybrid and multi-cloud strategies remaining common in large enterprises.
Several technical mechanisms underpin the cloud's capabilities. Virtualization remains foundational, though the field has expanded beyond virtual machines. Containerization packages an application with its dependencies into a lightweight, portable unit that shares the host operating system kernel. Containers are more resource-efficient than virtual machines and have become central to modern cloud development. Orchestration systems, such as Kubernetes, automate the deployment, scaling, and management of containerized applications across clusters of machines.
Serverless computing, also called Function-as-a-Service, represents a further abstraction. The provider manages all infrastructure, and the customer uploads individual functions that execute in response to events. The provider handles scaling automatically, and the customer pays only for the compute time consumed during execution. Serverless is well-suited for event-driven, intermittent, or unpredictable workloads, but it introduces challenges around cold-start latency, execution time limits, and debugging.
Software-defined networking and software-defined storage abstract network and storage resources into programmable services, enabling the dynamic provisioning and isolation that multi-tenancy requires. Automation and infrastructure-as-code treat infrastructure configuration as versioned, reviewable code, allowing environments to be created and destroyed reproducibly.
The current cloud landscape is characterized by a few dominant public providers—often referred to as "hyperscalers"—that operate massive, geographically distributed data centers. These providers offer hundreds of services, from raw compute to specialized machine learning accelerators. Beneath this surface, several durable trends shape the field.
The move toward managed services continues. Providers increasingly offer higher-level abstractions—managed databases, message queues, data warehouses, and AI services—that relieve customers of operational burdens. This trend blurs the boundaries between IaaS and PaaS, as even "infrastructure" services become increasingly managed.
Edge computing has emerged as a complementary paradigm. Rather than concentrating all computation in centralized data centers, edge computing places computing resources closer to users and devices, reducing latency and bandwidth use. This is particularly important for the Internet of Things, autonomous vehicles, and augmented reality. Edge computing is not a replacement for the cloud but an extension of it, with workloads distributed across a continuum from device to data center.
Cloud-native development has become the dominant software engineering paradigm for new applications. It emphasizes microservices (small, independently deployable services), containers, continuous delivery, and declarative APIs. This approach is designed to exploit the cloud's elasticity and resilience, but it also introduces new complexities around distributed systems, observability, and security.
Sustainability has become a significant concern. Data centers consume substantial electricity, and the industry faces pressure to reduce carbon emissions. Providers have invested in renewable energy and efficiency improvements, but the environmental cost of cloud computing remains an active area of research and public debate.
Security and governance remain central challenges. The shared responsibility model—where the provider secures the infrastructure and the customer secures their data and configurations—is widely used but often misunderstood, leading to data breaches. Regulatory frameworks around data residency and privacy continue to shape where and how cloud services can be deployed.
The field is not static. The boundaries between service models shift as providers innovate, and the line between cloud and traditional computing continues to blur as on-premises systems adopt cloud-like management practices. What remains constant is the underlying promise: computing as a flexible, scalable, and metered service, delivered over a network, with the details of the underlying machinery abstracted away.