A Complete Schema for Cloud Computing

Cloud computing is a model for delivering computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the…

Open in New Window

Chapter 1: The Five Pillars of the Cloud (The "Why")

Cloud computing is a model for delivering computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the internet. Its purpose is to offer faster innovation, flexible resources, and economies of scale. You pay only for the cloud services you use, helping you lower your operating costs, run your infrastructure more efficiently, and scale as your business needs change.

This article establishes a complete mental model of cloud computing. We will first define its essential structure, then explore each component in detail. The structure consists of four fundamental questions:

  1. The "Why" - The Defining Characteristics: What makes a service a "cloud" service? These are the five essential characteristics that distinguish cloud computing from traditional hosting.
  2. The "How" - The Service Models: How is the cloud delivered to the consumer? This is a spectrum of abstraction, where the provider manages an increasing amount of the technology stack.
  3. The "Where" - The Deployment Models: Where does the cloud infrastructure reside and who owns it?
  4. The "What" - The Core Components: What are the fundamental building blocks that cloud providers offer?

By understanding these four pillars, you will have a comprehensive and durable framework for understanding any cloud technology or service. We will now explore each of these pillars in sequence.

The National Institute of Standards and Technology (NIST) provides the authoritative definition of cloud computing, built upon five essential characteristics. If a service does not exhibit these five traits, it is not true cloud computing; it is likely traditional hosting or virtualization masquerading as cloud. These pillars are the "why" behind the cloud's power and efficiency.

1. On-Demand Self-Service

This principle means a consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.

Think of it as a vending machine for infrastructure. In the pre-cloud era, acquiring a new server was a lengthy process. It involved submitting a request to an IT department, waiting for procurement to purchase the hardware, having technicians rack and stack it in a data center, and finally, getting it configured and provisioned. This could take weeks or months.

With on-demand self-service, a developer can log into a web-based console (like the AWS Management Console or Azure Portal), select the specifications for a virtual machine, and have it running in minutes. They can do this at 3 AM on a Sunday without ever speaking to a salesperson or a support engineer. This radical reduction in friction accelerates development and innovation cycles immensely. The power to provision resources is placed directly in the hands of the people who need them.

2. Broad Network Access

Cloud capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, tablets, laptops, and workstations).

This means you can access your cloud resources from anywhere with an internet connection. The services are not tied to a specific physical location or a private corporate network. This is fundamental to modern work. A developer in London, a data scientist in Tokyo, and a system administrator in San Francisco can all collaborate on the same infrastructure simultaneously. APIs (Application Programming Interfaces) are the primary "standard mechanism" for this access, allowing not just humans but also applications to programmatically interact with and control cloud resources. This characteristic is the enabler of global teams and distributed systems.

3. Resource Pooling

The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter).

This is the engine of the cloud's economic efficiency. Cloud providers build massive data centers, and the resources within them—processors, memory, storage, network bandwidth—form a giant pool. Customers rent a slice of this pool. This is analogous to an apartment building versus a single-family home. Many tenants share the underlying structure (foundation, plumbing, electrical grid), which is far more cost-effective than each person building their own house from scratch.

This multi-tenancy allows providers to achieve enormous economies of scale, purchasing hardware and electricity at prices individuals cannot, and passing those savings on to customers. It also improves resource utilization. A server that is idle for one customer can be assigned to another, ensuring the hardware is always doing productive work.

4. Rapid Elasticity

Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be appropriated in any quantity at any time.

Elasticity is perhaps the most revolutionary characteristic of the cloud. It is the ability to acquire resources when you need them and release them when you do not.

Consider a retail website on Black Friday. In the old model, the company had to purchase and maintain enough servers to handle the absolute peak traffic of the year. For the other 364 days, most of that expensive hardware would sit idle, consuming power and taking up space. This is called provisioning for peak.

In the cloud model, the company can run a minimal number of servers for normal daily traffic. As Black Friday approaches, they can automatically scale up to hundreds or thousands of servers to handle the surge. When the sale is over, the system automatically scales back down to the baseline. The company only pays for the massive capacity for the few hours it was actually needed. This ability to match infrastructure to demand in near real-time eliminates waste and unlocks capabilities that were previously unaffordable for most businesses.

5. Measured Service

Cloud systems automatically control and optimize resource use by leveraging a metering capability at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and the consumer of the utilized service.

This is the pay-as-you-go model. You are billed for exactly what you use, just like a utility bill for electricity or water. If you run a virtual machine for 10 hours, you pay for 10 hours. If you store 500 gigabytes of data, you pay for 500 gigabytes. If your application serves one million requests, you pay for one million requests.

This granular metering provides incredible transparency into costs. Teams can see exactly how much their applications cost to run, leading to better financial accountability and encouraging the design of more efficient software. It transforms capital expenditure (CapEx)—large, upfront investments in hardware—into operational expenditure (OpEx), a predictable, recurring cost that scales with business activity.

Chapter 2: The Service Models: A Spectrum of Abstraction (The "How")

The five characteristics define what the cloud is. The service models define how it is consumed. They represent a spectrum of management and control. As you move from IaaS to SaaS, you give up granular control in exchange for convenience and a reduced management burden. The provider takes on more responsibility for the underlying stack.

1. Infrastructure as a Service (IaaS)

IaaS is the most fundamental level of cloud service. The provider offers the basic building blocks of computing: virtual servers, storage, and networking. You rent the hardware, but you are responsible for managing almost everything else.

Analogy: Renting a Commercial Kitchen. You are given the space, the ovens, the refrigerators, and the gas lines. You are responsible for bringing your own ingredients, recipes, and staff. You must cook the food, manage the inventory, and clean up afterward. You have maximum control over the menu and the cooking process.

What You Manage: You are responsible for the operating system (e.g., Linux, Windows), middleware (e.g., web servers, application runtimes), and your application code and data. What the Provider Manages: The provider manages the physical data center, the networking hardware, the storage hardware, and the virtualization layer (the hypervisor) that creates the virtual machines.

Key Services: Amazon Web Services (AWS) EC2, Azure Virtual Machines, Google Compute Engine. Use Cases: Lift-and-Shift Migrations: Moving existing applications from an on-premises data center to the cloud without significant re-architecture. High-Performance Computing (HPC): Running complex simulations or data analysis that requires massive amounts of raw compute power. Total Control: For companies with specific security, compliance, or operating system requirements that cannot be met by more abstract services.

2. Platform as a Service (PaaS)

PaaS provides a higher level of abstraction. The provider manages not only the infrastructure but also the operating system, middleware, and runtime environment. You, the developer, only need to focus on your application code and data.

Analogy: Ordering Pizza Delivery. You decide the toppings, the size, and the crust. You place the order. The pizza restaurant handles sourcing the ingredients, maintaining the kitchen, cooking the pizza, and delivering it to your door. You get to enjoy the final product without any of the operational overhead.

What You Manage: You are responsible for your application code and its configuration. What the Provider Manages: The provider manages everything from the physical hardware up to the application runtime (e.g., Java, Python, Node.js). This includes patching the OS, managing security, and often, handling automatic scaling.

Key Services: Heroku, AWS Elastic Beanstalk, Google App Engine, Azure App Service. Use Cases: Rapid Application Development: Developers can deploy web applications in minutes without ever thinking about configuring a server, installing a database, or setting up a load balancer. Focus on Code: Ideal for teams that want to maximize their time writing business logic and minimize their time on infrastructure management. API Development: Building and deploying APIs where the underlying scaling and maintenance are handled automatically.

3. Software as a Service (SaaS)

SaaS is the most abstracted model. The provider delivers a complete, ready-to-use software application over the internet. The customer simply consumes the service, typically through a web browser or a mobile app.

Analogy: Dining at a Restaurant. You walk in, sit down, and order a meal from the menu. You don't know or care about the kitchen, the chef, or the supply chain. You simply consume the service as a finished product. The restaurant is responsible for everything.

What You Manage: You manage your user account and the data you put into the application. What the Provider Manages: The provider manages the entire technology stack: the application, the platform, and the infrastructure.

Key Services: Gmail, Salesforce, Dropbox, Microsoft 365, Slack. Use Cases: Business Applications: Customer Relationship Management (CRM), Enterprise Resource Planning (ERP), email, and collaboration tools. Consumer Software: Any web-based application that requires a login is a form of SaaS. Replacing On-Premises Software: Instead of buying and managing a license for software installed on your own servers, you subscribe to a service.

4. Functions as a Service (FaaS) / Serverless

FaaS, often called "serverless" computing, is a further evolution of PaaS. It abstracts the concept of a server away entirely. Instead of deploying an entire application, you deploy individual functions—small, single-purpose pieces of code. These functions are executed in response to events.

Analogy: A Magical Vending Machine. You don't order a pizza; you just think "I'm hungry for a slice of pepperoni pizza." A hot slice instantly materializes in your hand. You don't know where it came from, who made it, or how. You only pay for that one slice, at that one moment. When you are not hungry, nothing exists, and you pay nothing.

What You Manage: You write and upload a function. What the Provider Manages: The provider manages everything about the execution environment. The function is dormant until an event triggers it (e.g., an image is uploaded to a storage bucket, an API call is received). The provider instantly provisions a container to run the function, executes it, and then tears down the container.

Key Services: AWS Lambda, Azure Functions, Google Cloud Functions. Use Cases: Event-Driven Architectures: Processing an image after it's uploaded, sending a welcome email when a new user signs up. Microservices: Building complex applications as a collection of small, independent, and stateless functions. IoT Backends: Handling data streams from thousands of connected devices.

  • Extreme Cost Efficiency: Since you pay only for the milliseconds your code is actually running, it is incredibly cheap for workloads with sporadic or unpredictable traffic. The concept of "scaling to zero" is a key benefit.

Chapter 3: The Deployment Models: Where Does the Cloud Live? (The "Where")

Deployment models define the ownership, location, and access model of the cloud infrastructure. The choice of model depends on an organization's needs regarding security, control, cost, and compliance.

1. Public Cloud

The public cloud is the most common model. The infrastructure is owned and operated by a third-party cloud provider, such as Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP). These providers deliver their services over the public internet. The key characteristic is multi-tenancy: you share the same underlying hardware, storage, and network devices with other organizations, or "tenants."

Pros: Massive Economies of Scale: The lowest possible cost due to the provider's scale. No Capital Expenditure: No need to buy or manage physical hardware. High Reliability and Agility: Providers have global networks of data centers, offering unparalleled scale and resilience.

Cons: Perceived Lack of Control: Some organizations are uncomfortable with their data residing on shared infrastructure.

  • Compliance and Data Sovereignty: Certain industries or governments have strict rules about where data can be physically located.

2. Private Cloud

A private cloud is infrastructure operated solely for a single organization. It can be managed internally by the organization's IT team or by a third party, and it can be hosted either on-premises in the organization's own data center or externally.

Crucially, to be a true private cloud, it must still exhibit the five essential characteristics of cloud computing (self-service, elasticity, etc.). Simply having virtualized servers in your own data center is not a private cloud. You need the management software layer (e.g., OpenStack, VMware vCloud Suite) that provides the cloud-like experience.

Pros: Enhanced Security and Control: The organization has complete control over the hardware and network, which can be critical for sensitive data or strict regulatory requirements. Customization: The infrastructure can be tailored to the specific needs of the organization.

Cons: High Cost: Requires significant capital expenditure and ongoing operational costs. Management Burden: The organization is responsible for managing and maintaining the entire cloud stack.

  • Limited Elasticity: The elasticity is limited to the capacity of the hardware the organization has purchased.

3. Hybrid Cloud

A hybrid cloud combines a private cloud with one or more public cloud services, with proprietary or standardized technology enabling data and application portability between them. This model allows an organization to leverage the best of both worlds.

Common Use Cases: Cloud Bursting: An application runs in the private cloud for day-to-day operations. When a sudden spike in demand occurs (like the Black Friday example), the workload "bursts" and overflows to the public cloud to access its massive elastic capacity. Data Segregation: Keep highly sensitive customer data or intellectual property in the secure private cloud, while running less sensitive workloads like development, testing, or a public-facing website in the public cloud. Disaster Recovery: Use the public cloud as a cost-effective disaster recovery site for private cloud infrastructure.

Hybrid cloud offers flexibility but introduces complexity in managing and securing two different environments.

4. Multi-Cloud

Multi-cloud refers to the use of multiple public cloud computing services from different providers. This is not the same as hybrid cloud. A hybrid cloud involves a mix of public and private, while multi-cloud involves a mix of different public clouds (e.g., using AWS for some services and Azure for others).

Reasons for a Multi-Cloud Strategy: Avoiding Vendor Lock-in: By building applications that can run on any cloud, organizations reduce their dependency on a single provider. Best-of-Breed Services: An organization might choose to use Google Cloud for its superior machine learning services, AWS for its mature data warehousing solutions, and Azure for its integration with Microsoft enterprise products. Resilience: In the unlikely event of a major outage affecting one provider, critical applications can fail over to another provider.

Like hybrid cloud, multi-cloud increases operational complexity, requiring tools and expertise to manage resources across different provider APIs and consoles.

Chapter 4: The Core Components: A Look Under the Hood (The "What")

Regardless of the service or deployment model, all cloud services are built from a set of fundamental components. Understanding these building blocks is essential for designing and operating systems in the cloud.

1. Compute

Compute is the processing power that runs your applications. It is the "brain" of your infrastructure.

Virtual Machines (VMs): This is the foundational compute product (IaaS). A VM is a complete emulation of a physical computer, with a virtual CPU, memory, storage, and networking interface. You choose an operating system (Linux or Windows) and have full control over it. Examples: AWS EC2, Azure VMs, Google Compute Engine.

Containers: Containers are a lighter-weight form of virtualization that operates at the OS level. Instead of virtualizing the entire hardware stack, a container packages an application and all its dependencies (libraries, configuration files) into a single, isolated unit. Multiple containers can run on a single host OS, sharing its kernel. This makes them much faster to start and more resource-efficient than VMs. Docker is the most popular containerization technology. Kubernetes is the de facto standard for container orchestration—managing, scaling, and scheduling large fleets of containers across many machines. Cloud providers offer managed Kubernetes services like AWS EKS, Azure AKS, and Google GKE.

  • Serverless Functions: As discussed in the FaaS model, this is event-driven compute where you run code without provisioning or managing any servers. Examples: AWS Lambda, Azure Functions.

2. Storage

Storage is where your data lives. Cloud providers offer different types of storage optimized for different use cases.

Object Storage: This is for storing vast amounts of unstructured data, such as images, videos, log files, and backups. Data is stored as "objects" in flat "buckets" or "containers." It is accessed via an API, is highly durable, and is effectively infinitely scalable. It is not suitable for running an operating system or a database. Analogy: A valet parking service for your files. You give the valet your file (the object), they give you a ticket (a unique ID), and they park it somewhere in a massive lot. When you want it back, you give them the ticket. You don't know or care where it was parked. Examples: AWS S3, Azure Blob Storage, Google Cloud Storage.

Block Storage: This provides raw storage volumes that can be attached to virtual machines. It behaves just like a physical hard drive (a local disk or a Storage Area Network - SAN). The operating system formats it with a file system (like NTFS or ext4) and uses it to install applications or store data that requires high-performance, low-latency access. It is the storage used for the boot disks of VMs. Examples: AWS Elastic Block Store (EBS), Azure Disk Storage, Google Persistent Disk.

  • File Storage: This provides a shared network file system that can be mounted by multiple virtual machines simultaneously. It is useful for applications that require shared access to files, like a central repository for content management systems or development environments. It operates like a traditional Network Attached Storage (NAS) device. Examples: AWS Elastic File System (EFS), Azure Files, Google Cloud Filestore.

3. Networking

Cloud networking provides the tools to define and control a secure, isolated network for your resources.

Virtual Private Cloud (VPC): This is the foundational networking construct. A VPC is a logically isolated section of the public cloud where you can launch your resources in a virtual network that you define. You have complete control over your virtual networking environment, including selection of your own IP address range, creation of subnets, and configuration of route tables and network gateways.

Subnets: A subnet is a range of IP addresses within your VPC. You can divide your VPC into public subnets (for resources that need to be connected to the internet, like web servers) and private subnets (for backend resources that should not be directly accessible, like databases).

Security Groups / Firewalls: These act as virtual firewalls for your virtual machines to control inbound and outbound traffic. You define rules that specify which protocols, ports, and source/destination IP addresses are allowed.

Load Balancers: A load balancer automatically distributes incoming application traffic across multiple targets, such as multiple VMs. This increases the fault tolerance and availability of your application. If one VM fails, the load balancer redirects traffic to the healthy ones.

  • Content Delivery Network (CDN): A CDN is a globally distributed network of proxy servers that caches content (like images, videos, and web pages) in locations closer to your end-users. When a user requests content, it is served from the nearest cache location, resulting in much lower latency and faster load times. Examples: AWS CloudFront, Azure CDN, Google Cloud CDN.

4. Databases

Cloud providers offer a wide range of managed database services, removing the operational burden of setting up, patching, and backing up database servers.

Relational Databases (SQL): These are traditional databases with a structured schema of tables, rows, and columns. They are excellent for transactional applications and data that requires strong consistency. Managed services handle the administrative tasks for you. Examples: AWS RDS (Relational Database Service), Azure SQL Database, Google Cloud SQL. These services support popular engines like PostgreSQL, MySQL, and Microsoft SQL Server.

NoSQL Databases: These databases are designed for unstructured or semi-structured data and are built for massive scale, high performance, and high availability. They do not use the rigid table structure of relational databases. There are several types: Key-Value: Simple data model of a key pointing to a value. Extremely fast for lookups. (e.g., Amazon DynamoDB, Redis). Document: Stores data in flexible, JSON-like documents. Great for web applications and content management. (e.g., MongoDB, Amazon DocumentDB). Column-Family: Organizes data into columns rather than rows. Optimized for fast queries over large datasets. (e.g., Apache Cassandra, Google Bigtable). Graph: Designed to store and navigate relationships between entities. Used for social networks, recommendation engines, and fraud detection. (e.g., Amazon Neptune, Neo4j).

Conclusion: The Cloud as a Foundational Layer

Cloud computing is not a single technology but a comprehensive model for delivering and consuming IT resources. This model is defined by its five essential characteristics: on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service.

It is delivered through a spectrum of service models—IaaS, PaaS, SaaS, and FaaS—that offer varying levels of abstraction and control, allowing users to choose the right balance between convenience and customization. These services can be deployed in public, private, or hybrid environments, depending on an organization's specific needs for security, cost, and compliance.

Underpinning all of this are the core components of compute, storage, networking, and databases. By mastering this complete schema, you can understand the fundamental principles that govern how modern software is built, deployed, and scaled. The cloud is the foundational layer upon which virtually all contemporary technological advancements—from artificial intelligence and big data analytics to the Internet of Things—are constructed. It is the operating system for the internet.

Make it yours

Make your own animation

Turn your next idea into a visual explanation with Fogsight.

Start creating