Cloud computing provides on-demand access to a shared pool of configurable computing resources like networks, servers, storage, applications, and services. These resources can be quickly set up and taken down with minimal effort. This model allows you to use powerful IT infrastructure without needing to own or manage it directly.
The National Institute of Standards and Technology (NIST) outlines five key characteristics that define a cloud computing model.
While it feels like a modern invention, the concept of cloud computing dates back to the 1950s and 1960s. During this time, computers were extremely expensive, making individual ownership impractical. "Time-sharing" was developed to allow multiple users to access a single mainframe computer simultaneously. This maximized processing power, minimized downtime, and introduced the foundational idea of sharing computing resources.
The 1970s saw the introduction of the first virtual machines, which led to virtualization—a critical step in the evolution of the cloud. Throughout the 70s and 80s, companies like Microsoft, Apple, and IBM developed technologies that improved cloud environments. A major milestone occurred in 1999 when Salesforce became the first company to offer business applications through a website.
However, the modern era of cloud computing truly began in 2006 with the launch of Amazon Web Services (AWS), which pioneered the large-scale cloud storage and computing services we use today.
There are four primary models for deploying cloud services. Each offers different levels of control, flexibility, and management.
Private and on-premises cloud
A private cloud is owned and managed by a single organization for its internal use. It's an evolution of the traditional on-premises data center but incorporates cloud characteristics like self-service and automation. A private cloud can be hosted in an organization's own data center, a colocation facility, or by a third-party service provider.
This model provides significant control, security, and flexibility. However, it often requires a high initial investment in hardware and infrastructure (capital expenditure, or CAPEX).
Public cloud
A public cloud is owned and operated by a large cloud service provider, also known as a hyperscaler. The three major providers are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud. They manage a globally distributed IT infrastructure that is shared by many customers, with logical separations to ensure secure multi-tenancy.
Users typically access public cloud services over the internet. The primary advantage is a pay-per-use model, which shifts IT costs from a CAPEX model to an operational expenditure (OPEX) model. Public clouds offer easy scalability, high reliability, and cost efficiency.
Multicloud
A multicloud architecture involves using services from multiple public cloud providers (at least two), sometimes in combination with a private cloud. This model allows an organization to use the best-of-breed technologies from each provider and avoids vendor lock-in.
The main benefit is the freedom to choose the best service for each specific task. The downside is increased operational complexity, as applications may need to be designed to work across different platforms with various proprietary technologies. This complexity can be reduced by using a common application or data management layer that spans all cloud platforms.
Cloud providers offer three main service models, often referred to as the cloud computing stack.
Infrastructure as a Service (IaaS)
IaaS is the most basic cloud computing model. It provides on-demand access to fundamental computing resources like virtual machines, storage, and networking. While the resources feel similar to on-premises technologies, the underlying physical infrastructure is managed by the cloud provider. You only manage the operating systems, applications, and data.
This model is often the first step for organizations moving to the cloud. Popular examples include Amazon EC2, Azure Virtual Machines, and Google Compute Engine.
Platform as a Service (PaaS)
PaaS builds on IaaS by abstracting the underlying infrastructure even further, up to the operating system level. With PaaS, you don't have to manage virtual machines or operating systems. Instead, you can focus on deploying and managing your applications.
This model reduces operational complexity and speeds up development, though it offers less flexibility at the infrastructure level. Examples include AWS Elastic Beanstalk, Google App Engine, and Azure Web Apps.
Software as a Service (SaaS)
SaaS is the most abstracted cloud model. The provider delivers a complete software application that you access over the internet, typically through a web browser or an app. You don't manage any of the underlying infrastructure, platforms, or even the application software itself—you only manage your data within the application.
This model offers the greatest simplicity for the end-user. Common examples include Microsoft 365, Salesforce, and Google Workspace.