Skip to main content

The cloud primer

At its foundation, cloud computing is about renting compute, storage, and networking capacity on demand, rather than purchasing physical servers and racking them in private data centers. Over the past decade, however, major cloud providers—Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP)—have shifted focus toward managed platforms: automated database engines, container orchestrators, event routers, and serverless runtimes.

While each hyperscaler wraps these capabilities in proprietary product names and distinct administrative consoles, the underlying systems architecture is remarkably consistent across all three. Once you understand how software-defined networks route traffic, how block volumes differ from object stores, or how distributed databases partition state, translating that knowledge across providers becomes straightforward catalog lookup rather than learning a new discipline.

This primer focuses on those core systems concepts and practical engineering trade-offs. Each page walks through the architectural mechanics, operational failure modes, and financial implications of a specific component. At the bottom of each page, provider-specific tabs map those concepts directly to AWS, Azure, and Google Cloud implementations.

What you are buying

Cloud services generally fall along a continuum of abstraction. Where a service lands on that spectrum determines how much operational burden remains with your engineering team versus how much is absorbed by the cloud provider:

Abstraction tierWhat the provider managesWhat your team managesTypical service
Infrastructure as a Service (IaaS)Physical hardware, power, physical networking, hypervisor layerOperating system installation, kernel patching, network routing, and application runtimeVirtual machines
Managed platform (PaaS)Hardware, hypervisor, OS maintenance, software patching, automated failoverSchema design, index tuning, query performance, and configuration flagsManaged SQL databases
Serverless (FaaS)Hardware, operating system, container orchestration, automatic scaling down to zeroApplication source code, event routing triggers, and execution timeoutsEvent-driven functions

Higher abstraction levels command a higher price per unit of raw compute or storage, but they drastically reduce ongoing operational overhead. For a small engineering team with limited operational bandwidth, paying that premium to offload patching, high availability, and automated backups is almost always the rational economic choice. Conversely, large engineering organizations running tens of thousands of predictable, high-throughput instances often find that the raw compute savings of bare virtual machines justify maintaining dedicated infrastructure teams.

Shared responsibility

Every provider operates under what the industry terms the . In simple terms, the provider assumes responsibility for the security of the cloud, while you remain responsible for security in the cloud.

The provider protects the physical data centers, manages hypervisor isolation, patches host operating systems, and secures the physical backbones connecting facilities. Your responsibilities scale according to the abstraction tier you deploy. When running a raw virtual machine, your team must patch the guest operating system, configure local firewalls, and rotate access keys. When adopting a managed database or serverless runtime, the provider takes over operating system patching and hardware lifecycle, leaving you to manage access policies, transport security, and application-level secrets.

Critically, data classification and access control never leave your hands. Regardless of whether data sits in an unformatted block storage volume or an S3-compatible object bucket, misconfiguring public permissions or credential policies is your liability. The overwhelming majority of cloud security incidents stem not from hypervisor breaches, but from misconfigured permissions and exposed credentials in customer-managed environments.

Where things live

Providers partition their global footprint into geographic , and further subdivide each region into isolated . A region corresponds to a distinct metropolitan area—such as Northern Virginia, Frankfurt, or Tokyo—designed to keep local latency low and adhere to data residency mandates. Within that region, an availability zone consists of one or more physical data centers equipped with independent power feeds, backup generators, cooling infrastructure, and network links. Zones within the same region sit tens of kilometers apart: close enough to support single-digit millisecond round-trip times for synchronous replication, yet far enough to avoid sharing municipal flood plains or local power grids.

Selecting where to host workloads involves balancing three distinct requirements:

  1. Network latency: Serving users from a region on the opposite side of the globe adds tens to hundreds of milliseconds of physics-dictated transit time to every network handshake.
  2. Regulatory compliance: Many jurisdictions mandate that sensitive financial, healthcare, or personal records never cross sovereign borders.
  3. Failure domains: While hardware components and single zones degrade frequently, an entire region-wide failure is catastrophic. Resilient systems treat the availability zone as the baseline unit of high availability, spreading active compute and database replicas across multiple zones. Multi-region deployments are reserved for business-critical systems that require disaster recovery guarantees or global low-latency edge delivery, as discussed in detail on the high availability page.
Placing a workload

Select regions based on compliance and user latency, then use zones for fault tolerance.

  1. Deploy workloads into the region closest to the majority of active users, verifying that local data privacy regulations permit that choice.
  2. Distribute all stateful services and stateless compute pools across at least two independent availability zones within that region.
  3. Adopt multi-region active replication only when business requirements justify the additional egress bandwidth costs, data synchronization latency, and architectural complexity.

How you pay

Cloud billing structures hinge on three core dimensions: compute duration, data transfer, and storage consumption:

  • Compute allocation: Standard virtual machines bill for allocated CPU cores and memory by the second, regardless of whether the guest operating system is running at full capacity or sitting idle. Serverless functions and event-driven containers break this model by billing strictly for execution duration and consumed memory, scaling to zero cost when idle.
  • Network data transfer: Ingress traffic—data flowing into a provider's data center—is almost universally free. In contrast, outbound traffic leaving for the public internet or transiting between distinct regions incurs metered charges known as . Cross-zone traffic within the same region also carries small per-gigabyte costs. Egress frequently catches engineering teams off guard, especially when streaming large datasets, serving heavy media files without a content delivery network, or setting up uncompressed replication across regions.
  • Storage and read/write operations: Disks and object stores bill for total gigabytes stored per month, combined with charges per thousand API read/write operations and provisioned IOPS. High-performance tiers cost significantly more per gigabyte, while archival cold tiers reduce storage rates at the expense of steep retrieval fees, as outlined on the storage page.

Managed against self-run

Virtually every infrastructure component—from relational databases and message brokers to Kubernetes clusters—can either be provisioned as a fully managed cloud service or deployed manually across bare virtual machines. For example, running PostgreSQL on a raw virtual machine gives complete control over custom extensions, local filesystem tuning, and configuration parameters, but places the burden of automated failover, point-in-time backups, minor version patching, and replication monitoring entirely on your team.

A managed database charges an hourly premium over the raw compute instances it provisions under the hood. However, that price differential generally pales in comparison to the engineering hours spent troubleshooting broken replication slots, testing recovery scripts, or responding to midnight storage exhaustion alerts. Unless a workload requires specific kernel modifications, unsupported database extensions, or massive scale where managed margins become prohibitive, defaulting to managed services preserves engineering focus for core business applications.

Talking to it

Every resource in a cloud platform is governed by control plane APIs. The web console and command-line utilities (CLIs) are simply HTTP clients issuing requests against those endpoints. While the graphical console is invaluable for interactive troubleshooting and initial exploration, configuring production environments manually through the browser introduces drift and human error.

Repeatable infrastructure relies on (IaC). Declarative frameworks such as Terraform, OpenTofu, AWS CloudFormation, and Pulumi allow teams to define networks, compute instances, database clusters, and access control policies in version-controlled configuration files. Treating infrastructure like application source code enables peer review, automated pull-request validation, reproducible staging environments, and rapid disaster recovery orchestration.

How this primer is organised

The primer is arranged into four sections, building upward through the infrastructure stack. Each page assumes familiarity with the foundations established in preceding chapters:

SectionCore architectural questionStarting page
ComputeWhere does application code execute, and how do compute abstractions balance control against automation?Virtual machines
Data and messagingHow is durable state stored and accessed, and how do distributed services communicate asynchronously?Storage
Network and identityHow are software-defined boundaries established, and how are machine and human permissions enforced?Networking
OperationsHow do systems survive the loss of individual components, physical data centers, or entire geographic regions?High availability
PageKey topic addressed
Virtual machinesSizing, lifecycle, persistent block attachments, immutable images, and scaling pools.
Containers and KubernetesProcess isolation, image registries, declarative orchestration, and cluster resource scheduling.
ServerlessEvent-driven function execution, cold start mechanics, concurrency limits, and managed container runtimes.
StorageObject buckets, network-attached block volumes, shared network filesystems, and lifecycle tiering.
SQL databasesAutomated patching, point-in-time recovery, multi-zone failover, and connection pooling.
NoSQL databasesHorizontal partitioning, partition key selection, hot partitions, and eventual consistency models.
Messaging and streamingPoint-to-point worker queues, pub/sub topics, append-only event logs, and dead-letter queues.
NetworkingVirtual private clouds, CIDR planning, public versus private subnets, and security groups.
Identity, access, and secretsHuman and service identities, least privilege policies, workload federation, and secrets managers.
High availabilityFailure domains, multi-zone active-passive setups, multi-region replication, and recovery objectives.

Each page concludes with a glossary of introduced terms. The complete glossary references every term back to the page where it was first introduced, and the quiz bank provides interactive checkpoints to validate your understanding of the concepts.

Terms introduced

  • Shared responsibility model: the split between what the provider secures and what you secure.
  • Region: a geographic area with its own set of data centres, chosen for latency and law.
  • Availability zone: an isolated data centre or group of them inside a region, the unit of everyday resilience.
  • Egress: data leaving the provider's network or a region, billed per gigabyte.
  • Infrastructure as code: describing cloud resources in versioned files and letting a tool make the provider match them.

How providers do it

While AWS, Microsoft Azure, and Google Cloud share the same foundational systems architecture, they organize resource hierarchies, regional boundaries, and administrative tooling differently. Understanding these structural distinctions is essential when migrating workloads or operating multi-cloud estates.

ConceptAWSAzureGoogle Cloud
Isolation and billing boundaryAccount, organized under AWS OrganizationsSubscription, grouped under Management GroupsProject, organized within Folders and an Organization
RegionRegionRegion, historically coupled in regional pairsRegion
Availability zoneAvailability zone (e.g. us-east-1a)Availability zone (numbered 1–3; available in designated regions)Zone (e.g. europe-west2-b)
Broader geographic scopeRegional or Global servicesRegional or Global servicesDual-region, Multi-region, and Global resources
Infrastructure as codeCloudFormation, AWS CDK, TerraformBicep, ARM templates, TerraformTerraform, Google Cloud Infrastructure Manager
Command-line interfaceaws CLIaz CLIgcloud CLI

Every provider name and mapping above is confirmed against official documentation. The provider tabs below provide in-depth configuration details and specific operational notes, including metered egress pricing.

Two key structural differences stand out across the platforms:

  1. Azure Resource Groups: Azure introduces an explicit grouping container between subscriptions and resources. A resource group manages the collective lifecycle of related services; deleting a resource group automatically deprovisions every resource contained within it.
  2. Google Cloud API Activation: Unlike AWS and Azure where services are generally accessible once IAM permissions are granted, Google Cloud requires individual service APIs to be explicitly enabled per project before resources can be provisioned.

What this maps to: AWS is the oldest and largest of the three. Most of the vocabulary on these pages was set by it, so where another provider uses a different word, the core page usually sticks with the AWS one.

ConceptOn AWSStatus
Region and availability zoneThe same words. A region has several AZs, named like us-east-1a. The letter-to-zone mapping differs per accountconfirmed
Unit of isolation and billingAn account. Accounts sit under AWS Organizations, which rolls up billing and pushes policies downconfirmed
Shared responsibility modelPublished by AWS under that nameconfirmed
Infrastructure as codeCloudFormation (YAML or JSON templates) and the CDK, which generates CloudFormation from code. Terraform is widely used and fully supportedconfirmed
Console, CLI, APIThe console, the aws CLI, and SDKs all call the same APIsconfirmed
EgressInbound traffic is free. Outbound to the internet and between regions is charged per GB, with a small free allowance per monthunconfirmed; check current pricing

Their vocabulary

Standard termTheir term
Account or projectAccount
OrganisationOrganization
Managed serviceUsually the service name with no qualifier, e.g. "RDS" rather than "managed RDS"

Where to look

The AWS Well-Architected Framework is the provider's own guide to the rungs, resilience, and cost trade-offs on this page. Billing and Cost Management shows spend by service and region.

Last verified: never.


Check your understanding

0 of 4 answered

  1. You run a managed database. Whose job is it to decide which identities can read the data?
  2. What does putting a database's second copy in another availability zone protect against?
  3. A team of three engineers must run a new HTTP service. Which rung should they start on, and why?
  4. A design copies a large dataset from one region to another every night. Which line on the bill grows because of it?