Compute, storage, networking, and virtual machines
Open a major cloud provider’s catalog and you may find thousands of products.
Underneath that complexity, most cloud infrastructure is built from three foundational resources, and nearly every cloud architecture and cloud bill decomposes into them:
- ComputeConcept · lights on your mapcomputeThe CPU and memory that perform work. The first of the cloud’s three foundational resources, alongside storage and networking. Compute does the work.
- StorageConcept · lights on your mapstorageThe resource that preserves information. The second of the cloud’s three foundational resources, alongside compute and networking. Storage remembers.
- NetworkingConcept · lights on your mapnetworkingThe resource that carries requests, responses, and data between systems. The third of the cloud’s three foundational resources. Networking connects.
You already encountered all three earlier in the curriculum.
Compute corresponds to the CPU and memory that perform work, storage preserves information, and networking allows machines and systems to communicate.
A useful first model is: compute does the work. Storage remembers. Networking connects.
And nearly every cloud architecture uses some combination of these three resources.
Compute
Compute is the processing capacity used to run software.
It commonly includes CPU, memory or RAM, sometimes graphics processors or other specialized accelerators, an operating-system environment, and time during which the resources remain allocated.
Suppose the coffee company runs its backend in the cloud. The backend needs CPU to execute instructions and memory to hold active application state while requests are being processed.
A small backend might rent: 2 virtual CPUs, 8 GB of memory
A larger workload might require: 32 virtual CPUs, 128 GB of memory
The provider offers several machine sizes so customers can select an appropriate amount of compute.
Cloud compute is often priced according to how long the resources run, although exact pricing can also depend on the machine type, the processor architecture, the operating system, the geographic region, any purchase commitment, any specialized hardware, and whether the capacity can be interrupted.
The central idea is: instead of purchasing a physical computer, the customer rents processing capacity.
Storage
Storage preserves information beyond the immediate work happening in memory.
Cloud storage can hold application files, database data, images, videos, logs, backups, documents, and operating-system files.
Storage is commonly priced according to how much data is stored over time.
For example, 500 gigabytes stored for one month may be billed differently from 5 terabytes stored for one month.
The phrase gigabyte-month expresses both the amount of storage and the period for which it is used.
Cloud providers offer several kinds of storage designed for different purposes, and you will later distinguish among block storage, file storage, and object storage.
For now, remember: compute is temporary working capacity. Storage preserves the information the work depends on or produces.
Networking
Networking allows cloud resources to communicate with users and with one another, and it includes more than the physical cables inside a data center.
Cloud networking may involve:
- Sending data to users
- Moving data between services
- Connecting different data centers
- Assigning IP addresses
- Controlling which systems may communicate
- Distributing requests among servers
- Connecting cloud infrastructure to company offices
- Protecting private systems from public access
Cloud providers may charge for certain categories of data transfer, particularly when data leaves their infrastructure or moves between geographic areas.
Additional networking resources, such as load balancers and public IP addresses, may have their own costs.
A useful model is: compute processes the request. Storage holds the data. Networking carries the request and response between them.
The three resources together
Imagine that Erik opens the coffee application and places an order.
Networking carries his request to the cloud.
Compute runs the backend code that validates and processes it.
Storage preserves the resulting order in a database.
Networking then carries the response back to Erik’s device.
The flow is:
Request travels through networking→ compute processes it→ storage preserves the result→ networking returns the responseEvery system architecture consumes these resources in different proportions.
A video platform may require enormous storage and network capacity. A scientific calculation may require heavy compute. A database may require a carefully balanced combination of all three.
Later, when engineers ask “what is the bottleneck?” they are often asking which resource is limiting the system. Perhaps there is not enough compute or not enough memory, the storage is too slow, or the networking cannot carry enough traffic.
The physical-machine problem
Renting these resources raises a physical question. When the coffee company rents compute, which machine actually does the work?
Cloud providers own physical servers inside their data centers. But the provider usually does not wheel one physical computer into a private room and reserve it permanently for each customer.
Instead, the provider often divides the physical machine’s resources among several customers or workloads.
This is made possible by virtualization.
What is virtualization?
Virtualization is the use of software to create isolated computing environments backed by shared physical hardware.
A powerful physical server may contain many processor cores, large amounts of memory, storage connections, and network connections.
Virtualization divides those resources into several smaller environments.
Each environment appears to the software running inside it as its own computer.
A simplified physical server might be divided like this:
Physical server├── Virtual machine A│ ├── 4 virtual CPUs│ └── 16 GB memory├── Virtual machine B│ ├── 8 virtual CPUs│ └── 32 GB memory└── Virtual machine C ├── 2 virtual CPUs └── 8 GB memoryThe virtual machines share the underlying hardware, but each receives an isolated environment.
What is a virtual machine?
A virtual machineConcept · lights on your mapvirtual machineA software-defined computer that behaves like an independent machine: virtual CPUs, memory, disks, network interfaces, and its own operating system, all backed by real hardware shared with other VMs through virtualization. The hardware is real; the boundaries are created in software., or VM, is a software-defined computer that behaves like an independent machine.
A VM can have virtual CPUs, virtual memory, virtual disks, and virtual network interfaces, along with its own operating system and its own applications and processes.
One VM might run Linux, while another VM on the same physical server runs a different Linux distribution or another supported operating system.
The applications inside one VM generally behave as though they have their own computer, and they do not need to know which other customers or virtual machines share the physical server.
This is abstraction in action. The customer sees a machine-shaped interface without needing to manage the physical machine underneath it.
Virtual does not mean imaginary
A virtual machine is not a fake computer with no physical foundation.
Its processing still happens on real CPUs, its memory uses real RAM, and its data ultimately reaches real storage devices and real network hardware.
The virtualization software presents those physical resources through an isolated virtual environment.
A useful distinction is: the hardware is real. The boundaries and machine interface are created through software.
Processes versus virtual machines
In Module 2, you learned that an operating system isolates processes and manages access to hardware.
Virtualization applies a related idea at a different level.
Physical machine→ operating system→ several isolated processesPhysical machine→ virtualization layer→ several virtual machines→ operating system inside each VM→ processes inside each operating systemA process shares its machine’s operating system with other processes, but a virtual machine can run its own operating-system environment.
This stronger separation allows one physical server to support several independent machine environments.
What is a hypervisor?
The software layer that creates and manages virtual machines is called a hypervisor, and it controls how the physical server’s resources are assigned.
It may decide:
- Which CPU time each VM receives
- How much memory each VM may use
- How virtual disks connect to storage
- How network traffic reaches each VM
- How the VMs remain isolated
A simplified model is: physical hardware → hypervisor → virtual machines → operating systems → applications
The customer normally does not manage the provider’s hypervisor.
The cloud provider operates that foundational layer and presents the customer with virtual resources.
Why virtualization matters to cloud providers
Without virtualization, a provider might need to dedicate an entire physical server to every customer, even when the customer needed only a small amount of capacity.
That would waste hardware and make small rentals expensive.
Virtualization allows a large physical server to host several isolated VMs, so the provider can allocate the machine more efficiently. One customer needs a small VM, another needs a medium VM, and a third needs several large VMs.
The provider uses its fleet of physical servers to satisfy those requests without exposing the physical-management details to the customers.
This resource sharing is one of the technologies that makes flexible cloud computing economically possible. Virtualization is not the only technology behind cloud economics, but it is one of the foundational ones.
Isolation between customers
Sharing has an obvious flip side. The same closeness that makes the economics work would, without firm boundaries, let one customer’s workload see another’s.
Serving many customers on shared infrastructure is called multi-tenancy. Each customer or isolated workload can be described as a tenant.
The provider must prevent one tenant from:
- Reading another tenant’s memory
- Accessing another tenant’s storage
- Intercepting another tenant’s network traffic
- Controlling the physical host
- Consuming more resources than permitted
Virtualization provides important boundaries, while cloud providers add many other security and resource controls.
The customer receives the economic benefits of shared infrastructure without intentionally sharing application data with the other tenants.
What is an instance?
A running cloud resource created from a defined configuration is often called an instanceConcept · lights on your mapinstanceOne running occurrence of a cloud resource configuration. “Spin up an instance” means create and start one; “terminate” means remove it. The word captures the cloud’s habit of treating machines as reproducible copies of a type rather than unique objects..
For a virtual machine, an instance is one active occurrence of a chosen machine type.
Suppose the provider offers a machine configuration with: 4 virtual CPUs, 16 GB memory
The customer can create one instance of that configuration: Backend instance 1
It could create more, running a fleet of Backend instance 1, Backend instance 2, and Backend instance 3.
Each one is a separate running environment based on the same general machine type.
The word instance should already feel familiar from ordinary language. It means one specific occurrence of a more general definition.
Spinning instances up and down
Cloud engineers commonly say: “spin up an instance.” This means creating and starting a new computing environment.
They may also say: “terminate the instance.” This means stopping and removing it.
In traditional infrastructure, acquiring another server could involve purchasing, shipping, installing, and configuring hardware, while in the cloud, creating an instance may take only minutes or seconds.
This changes how engineers think about machines.
A server no longer needs to be one permanent physical object that the company carefully preserves for years. It can be a temporary resource created for a workload and removed when it is no longer needed.
Pets versus cattle
Engineers sometimes describe this shift using the phrase: “pets versus cattle.”
A pet is individually named, carefully maintained, and treated as irreplaceable.
A cattle-style server is one member of a group. If it fails, the system replaces it without attempting to preserve that exact machine indefinitely.
This metaphor can sound harsh, but it describes an infrastructure philosophy.
Instead of depending on one unique server named payments-server-gerald, the system might run ten interchangeable payment instances: payments-1 through payments-10.
If one stops working, automation creates another instance from the same configuration.
The application’s important state should live in appropriate persistent systems, not in one particular machine’s local memory.
This disposability becomes important for scaling and reliability.
Disposable does not mean unimportant
Treating instances as replaceable does not mean the work inside them can be careless.
The system still needs secure configurations, monitoring, software updates, logging, reliable deployment, persistent storage where appropriate, recovery procedures, and controlled access.
The difference is that the configuration should be reproducible. The team should be able to create a replacement with the same intended setup, not repair one unique server by hand forever.
This idea later connects to infrastructure as code and automated deployment.
What is EC2?
Amazon Elastic Compute Cloud, commonly called Amazon EC2, is AWS’s major service for renting computing instances.
An EC2 instance commonly provides a virtual machine running on AWS infrastructure.
The customer chooses options such as:
- Machine size
- CPU and memory
- Operating-system image
- Storage
- Network settings
- Geographic region
- Security rules
When someone says “the backend runs on EC2,” they generally mean that the backend runs on one or more compute instances provided through Amazon EC2.
People sometimes informally say: “it’s running on an EC2.” The more precise phrase is: “it’s running on an EC2 instance.”
EC2 also offers specialized configurations, including options that rent an entire physical machine rather than a virtual one. A later section comes back to those.
The core idea remains that EC2 provides rentable compute capacity.
What is a machine image?
When creating a VM, the customer needs an initial operating system and software environment, and a reusable template for that environment is commonly called a machine image.
A machine image might contain a Linux operating system, system libraries, security settings, installed software, and initial configuration.
The team can use the same image to create several similar instances.
This supports the cattle-style approach: one repeatable image → many replaceable instances
The team starts from a known template, not from manual configuration of every new machine.
Virtual machines still require management
A VM removes the need to purchase and maintain the physical server.
However, the customer may still be responsible for much of what happens inside the virtual machine.
That can include:
- Choosing the operating system
- Installing application software
- Applying operating-system security updates
- Configuring firewalls
- Monitoring memory and disk use
- Managing user access
- Installing and updating databases
- Responding when the application crashes
- Configuring backups
- Replacing unhealthy instances
The provider maintains the building and hardware, but the customer still operates the rented computer environment.
This is the shared-responsibility model from the previous lesson applied to compute.
Virtual disks and persistence
A VM may have storage attached to it, but not all attached storage behaves the same way.
Some storage persists even if the instance stops or is replaced. Other local storage may disappear with the instance.
This means teams must understand where important data lives. A replaceable backend instance should not be the only place storing customer orders.
The backend’s important state should usually be placed in a persistent database or storage service designed to survive instance replacement.
A useful principle is: compute instances may be temporary. Important data must have a persistent home.
Bare-metal servers
Virtual machines are common, but cloud providers can also rent entire physical servers.
A bare-metal server gives the customer access to a physical machine without an ordinary shared virtualization layer between the customer’s operating system and the hardware.
Organizations may use bare metal for specialized performance needs, certain licensing requirements, hardware-level control, workloads that cannot tolerate virtualization overhead, and particular security or compliance requirements.
This reinforces an important point: cloud computing does not require that every resource be virtualized.
Cloud describes the on-demand service model. Virtualization is one major way providers deliver that model efficiently.
Seeing the physical and virtual layers
Imagine that the coffee backend runs on an EC2 instance.
The full stack might look like:
AWS data center→ physical server→ hypervisor→ EC2 virtual machine→ Linux operating system→ coffee backend process→ API endpointErik sends a request to the API endpoint.
The backend process runs inside Linux. Linux runs inside the virtual machine. The virtual machine receives resources through the hypervisor. The hypervisor operates on a physical server inside an AWS data center.
Each layer hides some of the complexity beneath it.
This is abstraction stacked several levels deep.
The three cloud dials
A cloud architecture can now be viewed through three foundational resource categories.
Compute
How much processing and active memory does the workload need?
Storage
How much information must remain available, and how quickly must it be retrieved?
Networking
How much communication occurs, between which systems and locations, and with what security requirements?
Every product uses a different combination.
A common infrastructure investigation asks: which resource is currently limiting performance, reliability, or cost?
That question may lead to more compute, more memory, faster storage, better indexes, additional network capacity, fewer unnecessary data transfers, or a different architecture entirely.
Cloud infrastructure makes these resources configurable, measurable parts of the system.
The mental model to remember
Compute provides CPU and memory for running software.
Storage preserves files, database data, backups, and other information.
Networking connects users, machines, services, and locations.
Virtualization divides physical hardware into isolated virtual environments.
A virtual machine, or VM, is a software-defined computer with virtual hardware and its own operating-system environment.
A hypervisor is the layer that creates and manages virtual machines on physical hardware.
An instance is one running occurrence of a cloud resource configuration.
Multi-tenancy allows multiple customers or workloads to use shared provider infrastructure while remaining isolated.
Amazon EC2 is AWS’s major compute-instance service.
The pets-versus-cattle model treats servers as reproducible and replaceable rather than unique machines that must be preserved forever.
You should now understand how cloud providers convert physical data-center hardware into rentable compute, storage, and networking resources — and how virtualization allows one physical server to support several isolated machine environments.
A virtual machine removes the need to own the physical computer, but it still gives the customer a computer to operate.
A startup's site melts under launch-day traffic. Ten years ago the fix was “order more servers, wait weeks.” Today the engineer types a command and capacity doubles in four minutes. Which ideas from this lesson made that sentence possible?
▼ answer the check to continue ▼