Why the Cloud Matters: From Mainframes to Modern Distributed Systems
Why the Cloud Matters: From Mainframes to Modern Distributed Systems
In July 2020, a bug in TikTok's iOS app caused it to silently read every user's clipboard once every few keystrokes. Within hours the story had trended on Twitter, and security researchers were publicly asking whether TikTok was spying on other apps. By the next morning ByteDance had identified the offending code, shipped a fix to Apple's App Store, and begun rolling the patched version out globally through the App Store's phased release system. Most users never saw a glitch. That kind of response time is only possible because TikTok runs entirely in the cloud. Within minutes of a fix being merged, build pipelines in regions around the world produce new artifacts, edge caches invalidate themselves, and the next user request picks up the new code automatically. If TikTok had been hosted on physical servers sitting in a single office, that same update would have taken weeks and a room full of hardware, and the trust damage would have been permanent.
The question this chapter answers is simple: why does cloud computing feel inevitable now, and what does it give us that older models did not? To answer it we are going to travel through about seventy years of computing history. We will start with mainframes in the 1960s, watch the web break them into client-server pairs in the 1990s, see virtualization split one physical machine into many virtual ones in the 2000s, and finally land in the elastic, pay-as-you-go world that teenagers today treat as the obvious default. Along the way we will unpack the five characteristics that define a true cloud according to the US National Institute of Standards and Technology, then break the cloud down into the four most common service models: IaaS, PaaS, SaaS, and FaaS. We will compare deployment models—public, private, hybrid, and multi-cloud—because "cloud" is not one thing, it is a family of choices with different economics. Finally, we will get our hands dirty by deploying a real portfolio site to a public cloud so you can feel elasticity with your own eyes rather than only reading about it.
By the end of this chapter you will be able to explain to a stranger why a fifteen-year-old in São Paulo can ship a product that reaches ten million users without owning a single server. You will also have the substrate knowledge that the rest of this book assumes, because the architectural patterns we will dissect in later chapters—microservices, serverless, and event-driven systems—only make sense once you understand the platform they run on.
1.1 The Shape of Computing Has Changed Every Twenty Years
It is tempting to think of "the cloud" as a single invention, like the smartphone or the World Wide Web. In reality it is the fourth major reshape of how we organize computation, and each reshape was driven by a specific bottleneck in the previous one. Recognizing the cycle is the first step toward understanding why cloud-native architecture looks the way it does, because every architectural choice in this book is, at some level, a response to a constraint that disappeared when the cloud arrived.
Mainframes and time-sharing, 1960s through 1980s. In the early decades of commercial computing, a single refrigerator-sized machine sat in a glass-walled room with raised flooring and dedicated air conditioning. Engineers wrote code on punch cards, fed them in batches, and waited hours for output. A typical corporate "computer" cost the equivalent of a small house and was used by hundreds of employees through dumb terminals—keyboards and screens connected by cables that sent keystrokes to the central machine and brought back rendered characters. The economic model was capital intensive: you bought the hardware, paid a facilities team to keep it cool, hired operators to load tape drives, and billed internal departments for CPU minutes. There was no notion of provisioning a new server, because there was exactly one server, and you politely stood in line. Multiplexing that one machine across many users was an art form called time-sharing, and it is the direct ancestor of every cloud operating system today.
Client-server and the PC era, 1980s through 2000s. Two forces shattered this model almost simultaneously. First, microprocessors got cheap and fast, so personal computers arrived on every desk. Second, the World Wide Web, made practical by Tim Berners-Lee's 1991 specification and Mosaic's 1993 graphical browser, made it trivial for a remote browser to ask a remote server for a document over HTTP. Suddenly the "computer" was split: a thin client on your desk displayed HTML, and a thick server in a back room ran the application logic and talked to a database. This was the three-tier architecture—presentation, logic, data—and it powered Amazon, eBay, PayPal, and the entire first generation of internet companies. The bottleneck moved from the central machine to network bandwidth and database contention. Operations teams learned to keep web servers alive, balance traffic across them, and back up databases every night. The shape of a typical product became a handful of application servers in front of a single (later replicated) database.
Virtualization and the datacenter, 2000s through 2010s. As x86 servers got faster, organizations discovered that a single physical box running one web application was wasting 80 percent of its capacity, because most web traffic is bursty and most CPU cycles are idle at any given moment. VMware, founded in 1998 and popularized in the early 2000s, introduced the hypervisor, a thin layer that sliced one physical machine into many "virtual machines," each behaving like an independent computer with its own operating system. A single 64-core server could host sixty virtual machines, each running a different team's application or even a different operating system. Datacenters filled with these machines, and operations teams learned to provision VMs with scripts and configuration management tools like Puppet and Chef. This era also saw the rise of utility computing precursors: in 2002, Amazon built an internal service to provision infrastructure for its own retail teams, and a few years later that internal tool became the first public cloud. The lesson of this era was that hardware was over-provisioned and software was not; virtualization closed that gap.
Elastic, programmable cloud, 2010 to present. Amazon Web Services launched publicly in 2006 with a single product, Simple Storage Service (S3), followed quickly by Elastic Compute Cloud (EC2) in August of that year. For the first time, a developer could ask a web API for a virtual server and receive one in under a minute. There was no purchase order, no procurement cycle, no hardware delivery, no facilities team to coordinate with. You paid per hour, and you could throw the server away when you were done. This was a fundamental shift because it converted capital expense into operating expense and pushed provisioning from the realm of facilities management into the realm of code. Microsoft Azure followed in 2010, Google Cloud Platform grew out of internal Google infrastructure around the same time, and a long tail of specialty providers filled niches. By 2025, the cloud was the default substrate for new software: the cloud market exceeded $700 billion, and the majority of enterprise workloads had migrated or were migrating.
The pattern is worth absorbing. Each generation of computing was the answer to the bottleneck of the previous one. Mainframes hit a wall on cost and utilization. Client-server hit a wall on geographic distribution and resilience. Virtualization hit a wall on provisioning speed. The cloud removes all four of those walls at once by turning infrastructure into an API. The book you are reading is about the architectural patterns that emerged once infrastructure became programmable, and once those patterns are in your head you will start seeing them every