Leading With Data· a Bicycle Guide
Guide highlights

The reader will have a clear, data-driven understanding of their system's capacity and limits. They can confidently predict future needs and justify capital expenditures to leadership.

  • Set Clear Goals: Define specific performance, availability, and reliability targets (SLAs) for your application.
  • Measure What Matters: Continuously collect and graph both system-level (CPU, disk I/O) and application-level (user actions) metrics to understand your current system and find its resource ceilings.
  • Forecast the Future: Use historical data and trend analysis to create robust predictions for future needs and establish a timeline for procurement.

Book profile

The Art of Capacity Planning Scaling Web Resources in the Cloud

One book, placed in its field — what John Allspaw Arun Kejariwal's book gets right, where it goes further than the rest, and what the rest of the field adds.

Edited by Mike West

Choose a reading path or an exercise

Suggested sections

Choose a starting point below. Each link opens a section of this guide.

Do this now — Architectural Divisibility

  1. Separate the web, application, cache, and database tiers so each can run on its own hosts and be sized independently.
  2. Instrument every component with its own utilization and throughput metrics before splitting it further.
  3. Identify the component that hits its ceiling first and make that one independently scalable before the others.
  4. Keep state out of the tiers you want to scale horizontally, using shared stores or sessions held outside the web servers.

Then continue in Architectural Divisibility.

Edition 1·Updated 2026-10-03·23 min read

Sources

About this book

An overview of the book, with source information for further reading.

A practical, field-tested guide for web operations professionals on how to measure, plan, and manage the technical resources needed for a growing web application to ensure high performance and availability.

More on this book

This book provides a practical, real-world approach to capacity planning for growing websites and mobile apps, rejecting complex mathematical models in favor of adaptive, empirical methods. It guides engineers, developers, and managers through the entire process: setting performance and availability goals, measuring system and application metrics to find resource ceilings, forecasting future needs based on historical trends, and deploying and managing capacity, including modern practices like cloud-based autoscaling. Instead of getting bogged down in queuing theory, the authors, drawing from their experiences at companies like Twitter and Flickr, offer a common-sense framework for justifying expenditures, managing procurement, and ensuring that infrastructure can handle both expected growth and unexpected traffic spikes, ultimately tying technical capacity directly to business success.

Movement I

Orient

In this part

What this book claims, and who wrote it.

  • — The book's one-line promise
  • — The author and where the book stands

A practical, field-tested guide for web operations professionals on how to measure, plan, and manage the technical resources needed for a growing web application to ensure high performance and availability.

The need-to-know

Capacity planning is an ongoing, adaptive process, not a one-time task. Effective capacity planning is based on empirical measurement of real system usage, not abstract models or artificial benchmarks. System-level statistics (CPU, memory, disk I/O) must be correlated with application-level business metrics (e.g., user signups, photo uploads) to provide context and justify costs.

About this guide

The guide describes these challenges, steps and possible outcomes.

Who it is for

An engineer (systems, software, SRE) or manager responsible for a growing website or mobile application who wants to ensure it remains fast, reliable, and available for users without overspending on infrastructure.

Challenges

  • In practice · The website or app is experiencing or anticipating rapid growth, leading to performance degradation, slow response times, and potential outages that frustrate users and harm the business. It's difficult to know how much hardware or cloud resources to provision, when to do it, and how to justify the cost.
  • For the reader · They feel anxious and reactive, constantly firefighting performance issues and fearing the next traffic spike. They lack the data and a clear process to confidently plan for the future, making them feel unprepared and unable to articulate their needs to business leaders.

Steps to consider

  1. 1Set Clear Goals: Define specific performance, availability, and reliability targets (SLAs) for your application.
  2. 2Measure What Matters: Continuously collect and graph both system-level (CPU, disk I/O) and application-level (user actions) metrics to understand your current system and find its resource ceilings.
  3. 3Forecast the Future: Use historical data and trend analysis to create robust predictions for future needs and establish a timeline for procurement.
  4. 4Deploy and Manage: Implement automated deployment and configuration systems to efficiently bring new capacity online and manage it.
  5. 5Leverage the Cloud: Master autoscaling principles to dynamically manage capacity in a cloud environment, balancing cost and performance.

Risks

The website/app will suffer from slowdowns and frequent outages as traffic grows. Users will become frustrated and abandon the service, damaging the brand and revenue.

Intended result

The reader will have a clear, data-driven understanding of their system's capacity and limits. They can confidently predict future needs and justify capital expenditures to leadership.

Set the record straight

What this book sets straight

The common beliefs this book pushes back on.

The myth

Capacity planning requires complex mathematical models and queuing theory.

The reality

Practical capacity planning is adaptive and based on empirical observation of a live system's usage, not on static theoretical models which are often irrelevant in fast-changing web environments.

The myth

Performance tuning is the same as capacity planning.

The reality

Performance tuning optimizes existing systems, while capacity planning determines what new resources a system needs and when it needs them; you should plan based on current performance and treat future tuning gains as a bonus.

The myth

You can simply buy more powerful hardware (vertical scaling) to solve capacity problems.

The reality

Horizontal and diagonal scaling are often more effective and cost-efficient for web applications, and architectural design has a greater impact on scalability than simply upgrading individual components.

Movement II

Map

The book's main ideas and how they connect.

In this part

The Art of Capacity Planning Scaling Web Resources in the Cloud's own model — and how it sits inside its field.

  • — 11 constructs the book works with
  • — Where it agrees with the field, exceeds it, or fills a gap
What You Design5· the levers you pull
Architectural DivisibilityCapacity Planning Process RigorAutomated Deployment and ConfigurationElastic Provisioning StrategyHardware Selection and Homogeneity
What It Produces1· the states it creates
Resource Headroom
What You Do1· the behaviours that follow
Time to Provision New Capacity

The constructs

Architectural Divisibility

The degree to which a web application's architecture is segmented into independent, single-purpose components (e.g., web servers, database clusters, microservices) that can be measured, managed, and scaled separately.

Capacity Planning Process Rigor

The extent to which an organization systematically and continuously engages in measuring system and application metrics, forecasting future resource needs based on historical trends, and managing the procurement and deployment pipeline.

Automated Deployment and Configuration

The degree to which an organization uses automated tools (e.g., Chef, Puppet, SystemImager) to install operating systems, deploy application code, and manage server configurations consistently and without manual intervention.

Elastic Provisioning Strategy

The approach used to add or remove capacity, including horizontal/diagonal scaling, and the use of cloud-native features like autoscaling to dynamically adjust resources based on real-time load.

Hardware Selection and Homogeneity

The practice of selecting hardware (or virtual instance types) that is appropriate for the specific workload of a given architectural component, and maintaining consistency in hardware configurations for servers performing the same role.

Resource Headroom

The margin of available capacity between the typical peak resource utilization (e.g., CPU, disk I/O) and the established resource ceiling (the point of failure or unacceptable performance degradation).

Time to Provision New Capacity

The total time elapsed from identifying a need for new capacity to having that new capacity fully deployed, configured, tested, and serving production traffic. This is also referred to as the 'procurement pipeline' time.

Operational Efficiencythe outcome

The degree to which infrastructure resources (e.g., compute, memory, power, rack space) are utilized effectively to serve application load, minimizing waste from idle or over-provisioned components.

Application Performance

The speed and responsiveness of the application as experienced by the end-user, typically measured by metrics like response time, latency, and page load time.

Application Availability

The percentage of time that the application is operational and accessible to users, often expressed as a number of 'nines' (e.g., 99.99%) and measured against Service Level Agreements (SLAs).

Cost-Effectiveness of Infrastructure

The financial efficiency of the infrastructure, reflecting the balance between operational expenditure (OpEx) and capital expenditure (CapEx) against the performance and availability delivered.

How they connect (12)
  • Architectural Divisibility → influences → Resource Headroom
  • Capacity Planning Process Rigor → influences → Resource Headroom
  • Elastic Provisioning Strategy → influences → Resource Headroom
  • Automated Deployment and Configuration → influences → Time to Provision New Capacity
  • Hardware Selection and Homogeneity → influences → Time to Provision New Capacity
  • Capacity Planning Process Rigor → influences → Operational Efficiency
  • Hardware Selection and Homogeneity → influences → Operational Efficiency
  • Elastic Provisioning Strategy → influences → Operational Efficiency
  • Resource Headroom → influences → Application Performance
  • Resource Headroom → influences → Application Availability
  • Time to Provision New Capacity → influences → Application Availability
  • Operational Efficiency → influences → Cost-Effectiveness of Infrastructure

Where this book diverges from the corpus

  • exceeds The field folds capacity planning (forecasting, headroom, provisioning) into one broad construct, while the book treats it as a continuous measure-forecast-manage process in its own right, with more operational depth.
  • fills gap Matching hardware or instance types to component workloads and keeping configurations homogeneous is not covered by any field construct.
  • exceeds The field mentions headroom only as part of capacity planning, while the book defines it as a margin between peak utilization and a ceiling, which makes it usable as a concrete measure.
  • fills gap The field's delivery lead-time measures concern code changes, not the procurement-to-production time for new infrastructure capacity, so this is uncovered.

Movement III

Master

Explore the book's ideas, examples and practical tools.

In this part

How the author makes the case — section by section, with the book's own tools.

  • — 11 sections, in the book's order
  • — The book's frameworks, checklists, and worked cases
Resource Headroom
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section defines how much spare capacity to hold between your peak load and the point where service degrades. It shows how to set that margin deliberately instead of by instinct.

Resource Headroom

The margin of available capacity between the typical peak resource utilization (e.g., CPU, disk I/O) and the established resource ceiling (the point of failure or unacceptable performance degradation).

Why it matters. Too little headroom turns a traffic spike or a node failure into an outage, while too much quietly drains budget.

Myth

If average utilization is low, you have plenty of headroom.

Reality

Headroom is measured against peak load and the real ceiling, not the average. The ceiling is usually below 100%, because latency often degrades well before a resource is exhausted. Losing a node also removes its share of capacity, so remaining machines absorb more than the average suggests.

Tools for this
The least you need to know
  • Headroom is peak load against a tested ceiling, never average load against theoretical maximum.
  • Size the margin to survive one node loss and the growth that arrives while new capacity is being built.
  • Monitor every resource per tier, because the first to saturate sets your real headroom.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Resource Headroom Worksheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 13 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Time to Provision New Capacity
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section breaks down the full path from recognizing a capacity need to serving production traffic on the new resource. It shows where the delay hides and how to shorten it.

Time to Provision New Capacity

The total time elapsed from identifying a need for new capacity to having that new capacity fully deployed, configured, tested, and serving production traffic. This is also referred to as the 'procurement pipeline' time.

Why it matters. Provisioning time determines how far ahead you must forecast and how long you remain exposed if demand outruns your headroom.

Myth

Lead time is mostly the vendor's delivery or boot time, so it's outside your control.

Reality

In most organizations the delay is internal: approvals, rack-and-cable work, OS installs, configuration, and testing. Even in the cloud, the instance boots in minutes but the process of validating and routing traffic to it can take days. Mapping each stage usually reveals that the longest waits are queues, not machine time.

Tools for this
The least you need to know
  • Measure lead time from the moment the need is identified to production traffic, not from the purchase order.
  • Waiting in approval and handoff queues often outweighs the technical build time.
  • Your forecast horizon should be at least as long as your realistic, not best-case, provisioning time.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Procurement Pipeline Lead-Time Log” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 7 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Operational Efficiency
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section looks at how well you convert provisioned compute, memory, power, and rack space into served load. It shows where idle and over-provisioned capacity accumulates.

Operational Efficiency

The degree to which infrastructure resources (e.g., compute, memory, power, rack space) are utilized effectively to serve application load, minimizing waste from idle or over-provisioned components.

Why it matters. Efficiency determines how much of what you pay for does useful work, and that feeds directly into the cost of running the service.

Myth

High utilization is always the goal, so the fewer idle resources, the better.

Reality

Pushing utilization toward the ceiling removes the headroom that protects performance and availability. Efficiency means minimizing waste while keeping the margin you have deliberately chosen. A fleet at 40% peak utilization with planned headroom can be more efficient than one at 90% that fails under a spike.

The least you need to know
  • Efficiency is waste removed beyond your intended headroom, not maximum utilization.
  • Idle capacity outside peak hours is often the largest recoverable waste, and elasticity addresses it.
  • Measure efficiency per tier, because a fleet-wide average hides over-provisioned components.
Master this◆ Paid

The deep drill-down: 9 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Tier Efficiency Audit Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Application Performance
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section ties user-facing speed, meaning response time, latency, and page load, to the capacity decisions behind it. It explains how to read performance as an early warning of capacity trouble.

Application Performance

The speed and responsiveness of the application as experienced by the end-user, typically measured by metrics like response time, latency, and page load time.

Why it matters. Users judge the service by how fast it feels, so performance is where capacity shortfalls first become visible and costly.

Myth

If servers are not maxed out on CPU, the application's performance cannot be a capacity problem.

Reality

Latency typically climbs well before any resource hits 100%, as queues form in connection pools, disks, or locks. Performance degrades along a curve as headroom shrinks, so slowdowns can appear while dashboards still look healthy.

Tools for this
The least you need to know
  • Latency rises before resources are exhausted, so use it as an early indicator of shrinking headroom.
  • Percentile response times reveal capacity problems that averages conceal.
  • Derive your capacity ceiling from the load at which latency crosses your target.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Application Performance Requirement and Gap Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 4 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Application Availability
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section connects uptime targets and SLAs to the two capacity factors that most threaten them: thin headroom and slow provisioning. It helps you see where capacity causes downtime.

Application Availability

The percentage of time that the application is operational and accessible to users, often expressed as a number of 'nines' (e.g., 99.99%) and measured against Service Level Agreements (SLAs).

Why it matters. Each additional nine of availability allows far less downtime, so capacity shortfalls that were once tolerable can breach your SLA.

Myth

Availability problems come from failures such as crashed servers and bad deploys, not from capacity.

Reality

Running out of capacity looks like an outage to users, since overloaded systems time out or reject requests. Slow provisioning stretches that outage, because you can't add capacity until the pipeline delivers it. Capacity shortfalls are a routine cause of SLA breaches.

Tools for this
The least you need to know
  • Saturation is experienced by users as downtime, so capacity belongs in your availability analysis.
  • Redundancy delivers availability only if the survivors can carry peak load.
  • Faster provisioning shortens the duration of capacity-driven outages.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Availability Red-Line Worksheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 5 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Cost-Effectiveness of Infrastructure
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section frames infrastructure spending, both CapEx and OpEx, relative to the performance and availability it delivers. It shows how to judge whether the money is well spent.

Cost-Effectiveness of Infrastructure

The financial efficiency of the infrastructure, reflecting the balance between operational expenditure (OpEx) and capital expenditure (CapEx) against the performance and availability delivered.

Why it matters. Judging cost on the bill alone leads you to cut spending that protects service quality, or to keep paying for capacity that serves no one.

Myth

Moving to the cloud's pay-as-you-go model automatically lowers infrastructure costs.

Reality

OpEx pricing removes up-front outlay but not waste: idle or oversized instances are billed continuously, and steady baseline load can be cheaper on reserved or owned capacity. Cost-effectiveness depends on how efficiently resources are used and on matching the pricing model to the load pattern.

Tools for this
The least you need to know
  • Cost-effectiveness is spend relative to delivered performance and availability, not a lower bill.
  • Match pricing models to the load shape: commitments for baseline, on-demand for peaks.
  • Gains here come mainly from operational efficiency, so reducing idle capacity moves cost the most.
Master this◆ Paid

The deep drill-down: 9 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Cost-vs-Delivered-Performance Review Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 3 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Architectural Divisibility
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section shows how splitting an application into separately measurable tiers determines where capacity can be added. It also shows how that choice shapes the headroom you can maintain.

Architectural Divisibility

The degree to which a web application's architecture is segmented into independent, single-purpose components (e.g., web servers, database clusters, microservices) that can be measured, managed, and scaled separately.

Why it matters. A monolith forces you to scale everything to relieve one bottleneck, so headroom is expensive and you can't tell which part is running out.

Myth

Breaking an application into microservices automatically makes it easier to scale.

Reality

Divisibility pays off only when each component has its own metrics, its own ceiling, and a clean interface. Without them you have more moving parts and the same blind spots. The benefit comes from being able to scale the database tier without touching the web tier, not from the number of services.

The least you need to know
  • A component is only divisible if you can measure it and add capacity to it in isolation.
  • Divide first along the lines of your actual bottlenecks, since that is where independent scaling saves money.
  • A shared stateful backend undoes the divisibility of the tiers in front of it.
Master this◆ Paid

The deep drill-down: 9 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Component Ceiling Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Capacity Planning Process Rigor
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section covers the measure-forecast-procure loop that turns raw metrics into decisions about future resources. It explains what separates a continuous practice from an occasional spreadsheet exercise.

Capacity Planning Process Rigor

The extent to which an organization systematically and continuously engages in measuring system and application metrics, forecasting future resource needs based on historical trends, and managing the procurement and deployment pipeline.

Why it matters. Without a repeatable process you buy capacity after the traffic arrives, which leaves you with outages when you underbuy and idle spend when you overbuy.

Myth

Capacity planning is a forecasting exercise: get the growth curve right and the rest follows.

Reality

A forecast is only as good as the measurements feeding it and the pipeline that acts on it. A perfect prediction delivered to a team with a six-week procurement cycle still arrives too late. Rigor lies in the loop, meaning continuous measurement, regular re-forecasting, and a tested path to deployment.

Tools for this
The least you need to know
  • The value of capacity planning is the closed loop of measure, forecast, and act, not any single forecast.
  • Forecast against business drivers, then check the forecast against actuals every cycle.
  • Subtract your provisioning lead time from the forecasted ceiling date to get the real deadline.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Capacity Planning Cycle Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 2 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Automated Deployment and Configuration
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section explains how scripted OS installs, code deploys, and configuration management make new servers identical and quick to add. It focuses on the effect on how fast capacity can arrive.

Automated Deployment and Configuration

The degree to which an organization uses automated tools (e.g., Chef, Puppet, SystemImager) to install operating systems, deploy application code, and manage server configurations consistently and without manual intervention.

Why it matters. If building a server involves manual steps, every capacity increase is slow and error-prone, and your plan is only as fast as your slowest hand-built machine.

Myth

Automation is a convenience for large fleets and isn't worth the effort for a handful of servers.

Reality

The payoff comes at the moment you need capacity urgently, when manual builds are the most likely to drift or fail. Automation also records how a correct server looks, so every new node starts in a known state. That matters at five servers as much as at five hundred.

Tools for this
The least you need to know
  • Automation shortens provisioning only if the entire build is scripted, with no manual steps.
  • Rebuilding servers from scratch regularly is the only reliable test that your automation works.
  • Consistent builds also make servers interchangeable, which simplifies troubleshooting and capacity math.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Provisioning Lead-Time and Automation Audit” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 2 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Elastic Provisioning Strategy
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section compares ways to add and remove capacity: scaling out, scaling up, mixing the two, and letting the cloud adjust resources automatically. It helps you pick a method that matches your load pattern.

Elastic Provisioning Strategy

The approach used to add or remove capacity, including horizontal/diagonal scaling, and the use of cloud-native features like autoscaling to dynamically adjust resources based on real-time load.

Why it matters. The strategy you choose sets how closely capacity follows demand, which decides whether you pay for idle servers or watch performance collapse during a surge.

Myth

Turning on autoscaling means you no longer need to plan capacity.

Reality

Autoscaling reacts to load that has already arrived, and new instances take time to boot and warm up. It also cannot fix a bottleneck in a non-scaling component such as a database, and it can run up costs if limits aren't set. You still need to know your ceilings, minimums, and maximums.

Tools for this
The least you need to know
  • Autoscaling is a mechanism within a plan, and it works only if you know the limits of what sits behind it.
  • Choose scaling triggers from the resource that saturates first, and tune them to your boot and warm-up time.
  • Set hard maximums so a traffic anomaly or runaway loop can't produce an unbounded bill.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 6 failure modes, and the “Elastic Scaling Policy Sheet” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 3 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Hardware Selection and Homogeneity
strong · 1 source
  • The Art of Capacity Planning Scaling Web Resources in the Cloud
In this section

This section covers choosing the right server or instance type for each role and keeping servers in a role identical. It links those choices to faster provisioning and less waste.

Hardware Selection and Homogeneity

The practice of selecting hardware (or virtual instance types) that is appropriate for the specific workload of a given architectural component, and maintaining consistency in hardware configurations for servers performing the same role.

Why it matters. A mismatched or sprawling hardware mix makes capacity planning guesswork, slows every build, and leaves expensive resources idle.

Myth

Buying the biggest, most powerful machines for every role is the safe choice.

Reality

A workload's dominant resource differs by role: a cache wants memory, a database wants disk I/O, a web tier wants CPU. Oversized general-purpose machines waste the resources the role doesn't use, and a mixed fleet makes per-node capacity inconsistent. Fit and uniformity matter more than raw size.

Tools for this
The least you need to know
  • Pick hardware to match the resource that limits each role, not the biggest option available.
  • A uniform fleet lets you express capacity as a known number of load units per node.
  • Change standards by role, as a whole, rather than allowing a patchwork of one-off upgrades.
Master this◆ Paid

The deep drill-down: 8 operational steps, a worked example from the source, 5 decision rules, 5 failure modes, and the “Role Configuration Card” tool. Included when you buy this guide.

The rest of this section

the full written section · 4 how-to steps · 2 pitfalls to watch for · 5 tools for this section. Included when you buy this guide.

Grounded in: The Art of Capacity Planning Scaling Web Resources in the Cloud

Movement III · The run-it-now depth

The Playbook

Practical tools and examples from this guide.

Frameworks

Frameworkfree

Application Availability

How this mechanism is run, step by step, as the literature describes it.

  1. 1Write the availability target as a number tied to a contract. State the percentage (for example 99.99 percent), then translate it into allowed unavailability: 99.99 percent means 0.01 percent of the time the service can be down and still meet the SLA. Record what counts as 'unavailable' before anyone measures anything.
  2. 2Separate availability from performance in the requirement. Define load and capacity requirements with specific metrics: response times, consumable capacity, and peak-driven processing. Peak-driven processing is the workload your web servers, databases and other resources carry at peak usage. A service that responds too slowly under peak is effectively failing, so set the 'degradation affects end-user experience' point explicitly.
  3. 3Map the backend and treat each component as its own availability risk. A typical modern app has a cache, persistent storage, a queue, a search service and an authentication service. Plan capacity for each service or microservice individually, and account for upstream and downstream services in an SOA or microservice architecture.
  4. 4Find each component's red line. For each piece, such as a database server, determine how many queries per second it can serve before performance degradation affects users. Adjust for periodic spikes, subtract a comfortable percentage of headroom (safety factor), and keep the resulting single number per configuration and role.
  5. 5Use the red line to set alert thresholds and growth triggers. The red line tells you the load that makes the component unresponsive or forces a fail-over. It also tells you what to expect from adding or removing similar servers, and when to begin sizing the next order of capacity.
  6. 6Include the failure point in every calculation. Treat the point of failure as mandatory input, not optional. Run a segmented architecture so you can isolate the limits of each part of the backend.
  7. 7Plan for spikes using past events, then question the cost. Compare the magnitude of past spikes to normal traffic for a first-cut estimate of the next one. Decide explicitly whether to deploy capacity for one-time events that sit idle most of the year, and decide how you will handle unplanned events such as a power failure.
  8. 8Cover Disaster Recovery and failover as availability inputs, and re-run the process continuously. The source says expected availability shapes capacity planning in part through DR and failover. It also says that in an Agile environment planning is continuous, flexible and adaptive, and that static theoretical models fail.
Framework◆ Paid

Application Performance

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Architectural Divisibility

How this mechanism is run, step by step, as the literature describes it.

◆ The full 9-step framework — included with this guide purchase

Framework◆ Paid

Automated Deployment and Configuration

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Capacity Planning Process Rigor

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Cost-Effectiveness of Infrastructure

How this mechanism is run, step by step, as the literature describes it.

◆ The full 9-step framework — included with this guide purchase

Framework◆ Paid

Elastic Provisioning Strategy

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Hardware Selection and Homogeneity

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Operational Efficiency

How this mechanism is run, step by step, as the literature describes it.

◆ The full 9-step framework — included with this guide purchase

Framework◆ Paid

Resource Headroom

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Framework◆ Paid

Time to Provision New Capacity

How this mechanism is run, step by step, as the literature describes it.

◆ The full 8-step framework — included with this guide purchase

Checklists

Checklistfree

Application Availability — decision rules

  • If the SLA promises a percentage such as 99.99 percent, then convert it into the allowed 0.01 percent unavailability and treat any component whose failure alone could consume that allowance as a priority for redundancy or failover.
  • If a component's load approaches its red line (measured capacity minus spike adjustment and headroom), then begin sizing new capacity and alert before the point where it becomes unresponsive or fails over.
  • If an event is predictable (Super Bowl, a show launch), then estimate the spike from past spikes relative to normal traffic, and weigh the idle-capacity cost against the downtime risk before provisioning.
  • If you have only a week to prepare for unknown extra traffic, then do not build a queuing model; measure each component's limit, apply headroom, and fix the weakest point first, since models go stale as code and usage change.
  • If the architecture is SOA or microservices, then compute capacity per service with its upstream and downstream dependencies included, because one service's ceiling caps the availability of what depends on it.
Checklist◆ Paid

Application Performance — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Architectural Divisibility — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Automated Deployment and Configuration — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Capacity Planning Process Rigor — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Cost-Effectiveness of Infrastructure — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Elastic Provisioning Strategy — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Hardware Selection and Homogeneity — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Operational Efficiency — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Resource Headroom — decision rules

◆ All 5 checkpoints — included with this guide purchase

Checklist◆ Paid

Time to Provision New Capacity — decision rules

◆ All 5 checkpoints — included with this guide purchase

Case studies — including what didn't work

Case studyfree

Application Availability

Context

The source's real example is Twitter and the FIFA World Cup. Before the 2014 World Cup, Twitter's recurring story was that the service became unavailable during the previous tournament: every time Brazil or Japan scored, the tweet-volume spike took the service down, and the Fail Whale became the symbol of those availability problems. The 2014 goal was therefore stated as absolute zero downtime, alongside a fast mobile app for photo sharing. The method the source suggests is to analyze the magnitude of past spikes relative to normal traffic and derive a first-cut estimate of the next spike. It then raises the cost question: should you deploy capacity for such one-time events when it will mostly sit underutilized? It also points to unplanned events, such as the power failure during Super Bowl XLVII in 2013, which no traffic forecast covers. The conclusion is that high availability in these moments requires a systematic approach to both architectural design and capacity planning, not a larger server count alone.

Case study◆ Paid

Application Performance

Context

Before the 2014 FIFA World Cup, Twitter had a recurring performance and availability problem. In the previous World Cup, every time Brazil or Japan scored, the spike in tweet volume took the service down, and the Fail Whale became popular as a result. The 2014 goals were zero downtime and a blazingly fast mobile app for sharing photos. The source's first-cut method is to analyze the magnitude of past spikes relative to normal traffic and project the next one. It then raises the cost question: should you deploy capacity for one-time events when it will sit underutilized most of the year? It also raises the unplanned case, such as the power failure during Super Bowl XLVII in 2013. The answer is a systematic approach to architectural design and capacity planning, not a one-off fix. Write the target as a number, measure each backend component against it, and size for the estimated spike.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Architectural Divisibility

Context

The source's MySQL example isolates one user database during a peak hour. The metrics are connections and INSERT/UPDATE/DELETE/SELECT rates, with a replication-lag graph beneath them. Most metrics show a few spikes, but only one stands out: replication lag peaks at more than 80 seconds. With all user queries going to slaves, a user could annotate a photo, click Submit, and not see the comment, which is an out-of-sync defect. Because the database is a separate, measurable component, the next question is which resource caused the lag. Disk utilization (reported every 60 seconds from iostat's %ioutil) hit 100 percent more than once. Lag jumped only when %iowait exceeded 40 percent. So the real ceiling is I/O wait, not raw disk utilization. The planner ties that ceiling to a user-level unit, photos per user per database, and forecasts when databases will cross it. None of this analysis is possible if the database shares a box and a metric stream with the web tier.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Automated Deployment and Configuration

Context

The source's own arithmetic: your capacity forecast says you run out in six weeks, and adding new hardware takes three weeks, so you have only three weeks of breathing room. Of the stages (ordering, shipping, physical installation, OS/application/configuration installation, testing, production), the one you control most is integrating machines onto the network and beginning operations. Automated deployment and configuration compresses that stage. Suppose you pull a machine out of the crate and it needs OS, application, settings, and data. With a Chef/Puppet-style tool driven from one version-controlled repository, those steps run from code rather than by hand. You then ramp the machine by raising its weight in the load-balanced pool while measuring its capacity as in Chapter 3. The gain is not a fixed number of days; it is a shorter, more predictable install segment inside the three weeks, which widens your margin before the six-week exhaustion date.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Capacity Planning Process Rigor

Context

The source's Flickr example shows the measure-to-forecast loop. Two days of data (Saturday and Sunday) put total CPU next to the photo processing rate. Sunday's peaks ran more than 20 percent higher, but in the evening its rate fell below Saturday's at the same time of day. Distilling the two series showed that every 30 photos processed per minute corresponded to an additional 25 percent CPU utilization. The authors call this extremely rough and based on a small sample, and say confirming the 25:30 ratio rigorously would mean looking at a larger range of traffic and upload rates. Even so, it gave a starting point for determining ceilings. With web traffic and upload rate both tracked, you can work out how many machines are needed if both processes run on each machine. The approach worked for more than a year in planning Flickr's web server capacity. Eventually image processing got its own dedicated cluster that could use multicore CPUs.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Cost-Effectiveness of Infrastructure

Context

The Ellen DeGeneres Oscar tweet in 2014 produced a huge spike in views and retweets in a short time, and the outage that followed traced to a missing architecture component in one data store and in the search tier. The cost lesson is that always-on capacity for such a burst is not financially sound, yet an under-designed architecture fails anyway. The fix the passage points to is not buying more hardware but load testing the specific scenario (more than a million people searching for the same tweet and then retweeting it), which would have exposed the gap. Burst handling then comes from queuing and caching, which alleviate the capex overhead, rather than from permanent peak-sized servers. Capacity for the baseline is sized from measured per-component workloads and forecast growth. The spike becomes a forcing function to revisit the design, so the money goes to the architecture gap and not to idle machines.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Elastic Provisioning Strategy

Context

Take the single Apache web server in the passages. Its hourly graph shows no pattern, its daily graph a smooth decline and rise, and its weekly graph shows Monday as the highest-traffic day. Memory, disk I/O and network all stay far from their limits at the Monday peak, so the binding resource is CPU. You set the web tier's upper limit at 85 percent CPU, leaving a 15 percent safety margin for spikes. You place the servers behind a load balancer and push a controlled share of live traffic to one node to confirm where its ceiling sits. The scale-out trigger is then CPU approaching 85 percent during the Monday peak cycle, adding identical, automatically configured nodes. If this were a datacenter, a three-week hardware lead time against six weeks of remaining headroom would leave only three weeks, so you would order early. In the cloud, the same trigger can fire an automated add, bounded by cost reporting.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Hardware Selection and Homogeneity

Context

The source's own example is a database server answering queries from frontend web servers. Step one is to isolate that role. Step two is to fix one hardware configuration for it and ask how many QPS that configuration can serve before end users feel degradation. Suppose the measured point is Q QPS. You adjust for periodic spikes and subtract a headroom percentage H, which gives a single red-line number R for 'this database configuration in this role.' That number gives you three things: the alert threshold, the expected effect of adding or removing similar database servers (roughly N servers of the same configuration, so about N×R, though system performance does not scale linearly with traffic, so verify by measurement), and the trigger date to start sizing the next order, given long lead times. You take the request to finance as: 'if we get these new database servers, pages are X percent faster and pageviews, with ad revenue, can rise up to Y percent.' The counter-example is the 2014 Oscars tweet outage. A missing architecture component in a data store and the search tier, never exercised by load testing a million people searching for and retweeting one tweet, caused it. The lesson is to test each role's configuration against the extreme scenario, not only the average.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Operational Efficiency

Context

The source's web tier shows the method. The team picks CPU as the single defining capacity metric because it tracks the work Apache does. They cap total CPU at 85 percent, which leaves headroom for occasional spikes while still using servers efficiently. They find CPU usage to busy Apache processes runs about 1:1, so either number can be computed from the other. That ceiling then becomes the yardstick for the cluster. Any host sitting well below 85 percent at peak is a candidate for consolidation or a smaller instance type. The source's pricing tables show why this matters: moving from AWS m4.large ($0.10 on-demand) to m4.16xlarge ($3.20) multiplies the hourly price 32 times, and GCE n1-standard-1 ($0.05) to n1-standard-64 ($3.04) is roughly 61 times. A database case adds a caution. Disk utilization hit 100 percent several times, but replication lag spiked only when I/O wait passed 40 percent. The tier's real limit is I/O wait, not the headline utilization number.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Resource Headroom

Context

The source's own example sets web servers at 85 percent CPU as the upper limit, reserving 'enough headroom to handle occasional spikes'. That leaves a 15 percent margin of safety. The ceiling for forecasting is 85 percent, not the 100 percent at which the server fails. Say your busiest observed peak on a web server is 70 percent CPU. Against the 85 percent working ceiling you have 15 points of headroom. Against 100 percent you would wrongly count 30. The source asks why 15 percent and not 10 or 20, and answers that the number is a slippery educated guess. You justify it by looking at the spikes you have seen. The same logic applies to the database example. Find the QPS at which end-user experience degrades, subtract a comfortable percentage for periodic spikes, and the resulting single number characterizes that configuration for that role. That number sets the alert threshold and tells you when to start sizing new database capacity.

◆ What happened, and the outcome — included with this guide purchase

Case study◆ Paid

Time to Provision New Capacity

Context

The book describes an operations engineer told they have one week to prepare for an unknown amount of extra traffic, for instance from a new feature launch or a link from a major site. Twitter's 2014 FIFA World Cup goal of zero downtime is a comparable case, since its match-driven tweet spikes once took the service down. Run the pipeline test against a one-week window. On the cloud path, the provisioning clock is short, but you must still size correctly and get approval. The pricing table shows why: an m4.4xlarge costs $0.80/hour on-demand versus $0.496/hour on a 1-year reserved term, so the reserved rate is about 62% of on-demand. A reserved commitment is itself a procurement decision that needs sign-off. On the owned-datacenter path, long supply-chain cycles and provisioning overhead mean a one-week window is almost certainly too short, so the choice is already made by the lead time. Before the event, add and remove a single server through the load balancer to find the per-server limit. Then divide the forecast spike by that limit to get the unit count. The book also asks whether to deploy capacity for a one-time event that will sit underutilized most of the year. Answer that question while timing the stages, not after.

◆ What happened, and the outcome — included with this guide purchase

Templates

Templatefree

Availability Red-Line Worksheet

Template◆ Paid

Application Performance Requirement and Gap Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Component Ceiling Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Provisioning Lead-Time and Automation Audit

◆ The fillable template — included with this guide purchase

Template◆ Paid

Capacity Planning Cycle Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Cost-vs-Delivered-Performance Review Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Elastic Scaling Policy Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Role Configuration Card

◆ The fillable template — included with this guide purchase

Template◆ Paid

Tier Efficiency Audit Sheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Resource Headroom Worksheet

◆ The fillable template — included with this guide purchase

Template◆ Paid

Procurement Pipeline Lead-Time Log

◆ The fillable template — included with this guide purchase

Items marked Paid are included when you buy this guide.

Movement IV

Reflect

Consider the book's evidence, limitations and how it compares with other sources.

In this part

How good is it — where the book stands against the field, what it leaves open, and when to trust it.

  • — Its positioning, its critique, its blind spots
  • — When to apply it — and when not
  • — The evidence behind the advice

Book profile · in the corpus

This book’s model, against the corpus

9 of 11 constructs align with the field · 2 the book adds · 2 where it diverges · the field spans 28 constructs across 11 books

shared with the corpusthis book's own emphasisthe corpus adds (other sources)where it diverges

Shared with the corpus — corroborated by other sources

Architectural DivisibilityCapacity Planning Process RigorAutomated Deployment and ConfigurationElastic Provisioning StrategyResource HeadroomOperational EfficiencyApplication PerformanceApplication AvailabilityCost-Effectiveness of Infrastructure

This book's own emphasis — where it's the authority

Hardware Selection and HomogeneityTime to Provision New Capacity

Where it diverges — the book and the field pull apart

Capacity Planning Process RigorResource Headroom

The corpus adds — from 10 other sources this book doesn't cover

The full field guide folds in ideas this book doesn’t reach — drawn from 10 further sources and cited in the full model.

This book’s place in the corpus

1 of 11
sources in this corpus
11
constructs contributed
9
corroborated by others
2
unique to this book

Why the corpus guide, not just this book

The book stands on the shoulders of web-operations and capacity-engineering practice, and it is the authority on concrete infrastructure scaling: headroom, hardware homogeneity, provisioning lead time, and capacity-planning process. The reconciled field-guide still adds the human, cultural and measurement context (observability, incident response, leadership, cognitive load, business alignment) that the book largely leaves out.

This guide stands on the shoulders of this book and 10 other sources — every claim cited, the disagreements named.

Read the reconciled It Analytics guide →

Read it closely

The book, examined

Not a summary — a close analytical reading: how the book is built, what it leaves open, and where it falls short.

How it’s built — the argument in order

  1. 01
    Preface: the problem and the premise — Names the frustration of engineers and developers who have nowhere to turn when asked how much capacity the site needs. Defines the basic concepts: enough resources for expected and unexpected load, a defined procurement and approval system, justification of spending to the business, and a system to manage resources once deployed.
  2. 02
    Why the book was written and revised (case against the existing literature) — Argues that earlier capacity-planning books were built on queuing theory and on manufacturing or industrial-engineering assumptions. Says these do not fit web timelines, where code and usage change faster than a model can be built (the Google commit-volume example). Argues that Agile makes capacity planning a continuous, adaptive process. Says the authors learned more from colleagues, conferences such as Velocity and Fluent, and blogs, which is why the second edition adds Readings and Resources sections.
  3. 03
    Focus and topics (scope and stance) — States what the book will not do: build models and simulations, run benchmarks repeatedly, or teach Little's Law, Markov chains or Poisson arrivals. States what it will do: cover measurement, procurement and deployment for growing sites with real tools, kept platform-agnostic and using examples to illustrate the process. The flat-tire analogy and the 'common sense is good' claim set the adaptive-not-theoretical tone.
  4. 04
    Performance vs. capacity, and common-sense steps — Separates performance tuning (optimizing the existing system) from capacity planning (determining what a system needs and when, using current performance as the baseline). Argues that real-world observation beats artificial benchmarks, using SPEC CPU2006 and SPEC Cloud IaaS 2016 as examples of poor representativeness. Warns that tuning can become an endless time sink.
  5. 05
    Goals and architecture (per the book's overview) — Sets performance and availability goals. Argues that a site's architecture must be divisible and measurable so that planning is possible at all (flagged for Chapter 4).
  6. 06
    Measurement — Collects system statistics (CPU, memory, disk I/O) and correlates them with application and business metrics such as signups and photo uploads. This gives context and justifies cost, and it locates the resource ceiling of each architectural component.
  7. 07
    Forecasting — Uses historical trends to predict when ceilings will be reached. Turns this into justification for hardware or cloud spending and ties technical capacity to business success.
  8. 08
    Deployment and management — Covers procurement, time to provision, hardware selection and homogeneity, and automated deployment and configuration. These keep a growing fleet manageable and efficient.
  9. 09
    Cloud and autoscaling — Extends the process to elastic provisioning. Autoscaling is powerful but needs carefully designed policies to balance cost, performance and reliability. Handles unexpected spikes while keeping the whole effort tied to business outcomes.

What it leaves unsolved

How should a team prepare when it has only a week to absorb an unknown amount of extra traffic (a feature launch, or a link from a major site)?

The preface poses this scenario to show that queuing models don't help. It offers 'adaptive' practice as the alternative but doesn't say how to size for a truly unknown surge.

How can historical trends forecast demand across discontinuities such as new features, redesigns or outside social events?

The authors admit that deploys and real-world events can change usage characteristics and make models irrelevant. Their own method relies on past observation, so the same limit applies to it, and they do not say how far a trend can be trusted.

Is there any role for queuing theory or modeling, and where exactly does it become useful?

They concede that queuing models can show how large a spike the built-in queues can absorb without hurting availability. They then set the approach aside without saying when that insight is worth the effort.

How can a resource ceiling be found for each component without exposing real users to failure or distorting results with artificial tests?

The book prizes empirical measurement over artificial benchmarks and wants ceilings found 'before users experience them'. It also admits that benchmarks have some value, but the passages don't reconcile the two or show how to test safely.

How should autoscaling policies be designed to balance cost, performance and reliability?

The book says careful policy design is required but gives no decision rule for the trade-off. The right answer depends on the application and the business.

How much headroom is enough, and how do you set the performance and availability targets that drive it?

Headroom, time to provision and cost-effectiveness pull against each other. The framing is 'common sense', with no stated way to price the risk of under-provisioning against the cost of idle capacity.

How can capacity planning succeed when the architecture is not divisible or measurable?

The book makes architectural divisibility a prerequisite for planning. It doesn't say what to do with inherited monoliths or systems that can't be decomposed or instrumented.

How general are the lessons across different databases, web servers, caches and storage systems?

The authors keep the discussion platform-agnostic and use only illustrative examples, and they admit that covering every technology is out of scope. How well the process transfers to specific systems is left to the reader.

Where it falls short — a fair critique

illogical

The case against theory is partly self-undermining. The authors say models go stale because usage changes faster than a model can be built. Yet their own approach, forecasting from historical measurement and per-component ceilings, is equally exposed to code deploys and changed usage. The argument shows that any capacity estimate needs continual refreshing. It does not show that models are inferior to trend extrapolation.

illogical

The flat-tire analogy sets up a false dichotomy between endless analysis and 'just install the spare'. The choice is not between obsessing over theory and ignoring it. Light modeling alongside measurement is a middle path, and the authors themselves grant that queuing theory can estimate spike absorption.

uninformed

The dismissal of earlier literature is a sweeping generalization. 'Most books' are said to assume that manufacturing and industrial-engineering concepts apply uniformly, but no specific works or passages are cited. That makes the framing of the field a straw man that is hard to check.

incomplete

The evidence base is anecdote and professional networks: conversations with colleagues, conference talks, and experience at companies like Twitter and Flickr. Its main support for 'change is too fast to model' is the Google monorepo figure of 16,000 human commits a day. That is an extreme case and may not be typical. The advice may skew toward large, fast-moving web companies and fit smaller, slower-changing, or regulated organizations less well.

incomplete

The critique of SPEC benchmarks is asserted, not shown. The passages say the benchmarks' characteristics differ from web applications 'based on workload analysis', but give no data. Cloud IaaS 2016 is judged unrepresentative in a sentence. The slide from 'general-purpose benchmarks mislead' to 'avoid artificial environments' also overlooks load testing of your own application on production-like systems, which is neither a SPEC suite nor purely theoretical.

incomplete

The book promotes correlating system metrics with business metrics (signups, uploads) to justify spending. The passages don't address that such relationships may be nonlinear or confounded, or break down as features change. They also don't say how to show that a business metric causes resource use rather than merely tracking it.

misinformed

Calling the approach 'common sense' and 'adaptive' while warning against 'detailed and rigorous capacity investigations' sits uneasily with the book's own emphasis on process rigor (procurement systems, justification, deployment management). If rigor is in the process but not the analysis, the book should say where the line falls. Otherwise 'it's all common sense' risks understating how hard measurement, ceiling-finding and forecasting are.

Before you apply it

Using it well

Where the method fits, who it’s for, and the honest case for and against — so you apply it where it works.

Is this book for you?

For you if

  • You are an operations engineer, developer, or manager responsible for a growing website or mobile app's performance and availability
  • You must justify infrastructure spending or procurement to the business
  • You want a practical, platform-agnostic process rather than math-heavy theory
  • You work in an Agile environment where capacity planning must be continuous and adaptive

Skip it if

  • You want a rigorous treatment of queuing theory, Little's Law, or Markov models
  • You are looking for tuning guides for a specific database, web server, or cache
  • You need benchmark-driven comparisons of hardware

Need first

  • Basic monitoring and metrics collection in place, for system statistics and application-level business metrics
  • Familiarity with your architecture's components and how they can be divided and measured
  • Clear performance and availability goals to plan against
  • Some historical usage data, or the ability to start collecting it

When it applies — and when it doesn’t

Use it
  • A fast-growing web app or mobile app with frequent deploys, where usage patterns shift week to week — the adaptive, empirical approach suits an environment where change outpaces detailed modeling
  • Facing a traffic spike with only a week's notice (feature launch, link from a major site) — the book aims at this: measure real ceilings, add headroom, and act without waiting for a model
  • Justifying hardware or cloud spend to finance or management — correlating system stats with business metrics (signups, uploads) gives a defensible case for expenditure
Adapt it
  • Spending long cycles tuning or re-benchmarking in artificial environments — tuning is addictive and can become an endless time sink; it is a different task from capacity planning
  • Enabling cloud autoscaling as a hands-off fix — it needs carefully designed policies to balance cost, performance, and reliability
  • A monolithic or hard-to-measure architecture — the method relies on divisible, measurable components to find per-component resource ceilings, so architecture work may come first
  • Predicting needs for a brand-new product with little or no historical data — forecasting depends on historical trends, so early estimates will be rough and need frequent revision
  • Judging how large a spike your queues can absorb without an outage — the authors concede queuing theory can help here, though the book does not teach it
  • Stable, slow-changing industrial or non-web systems — the book targets web environments and argues that manufacturing-style rigor does not map to short web timelines
Not here
  • Choosing hardware based on published benchmarks like SPEC CPU — the authors say these workloads differ from web applications and can skew decisions to the business's harm
  • Scaling a growing fleet by hand-configuring servers — the book treats automated deployment and configuration as essential to managing capacity efficiently
  • Deriving queuing-theory or Markov models for your system — the authors reject this for web settings, since code and usage change before a model is finished

The honest case

Strongest case for

  • Web systems change too fast for static models; with thousands of code changes a day, a model is stale before it is finished
  • Real production measurements capture actual workload characteristics that artificial benchmarks like SPEC miss
  • Tying CPU, memory, and I/O to business metrics turns capacity into a business-justified, defensible expenditure
  • Finding each component's resource ceiling lets you predict when capacity runs out before users feel it
  • Automation and divisible architecture make capacity scale repeatably and cut operational toil
  • The simple, common-sense framing is usable in a crisis, like the spare-tire analogy, when there is no time for deep analysis

Strongest objection

  • Rejecting modeling may forgo useful tools; queuing theory can estimate how big a spike the system can absorb
  • Extrapolating historical trends fails under nonlinear shifts, such as viral events or architectural changes, so forecasts may mislead
  • Empirical measurement of production gives no insight into untested failure modes unless load is deliberately pushed to find ceilings
  • The advice can seem like common sense with little rigor, and the 'adaptive' label may excuse under-planning
  • Ceilings measured on one code version quickly go stale as deploys change resource profiles
  • Cloud autoscaling and managed services reduce the need for much manual planning, making parts of the process less relevant
Source notes

The model's constructs are drawn from the source element(s); load-bearing constructs are corroborated across the shelf, emerging ones are flagged.

Ideas covered by the source notes

  • Architectural Divisibility
  • Capacity Planning Process Rigor
  • Automated Deployment and Configuration
  • Elastic Provisioning Strategy
  • Hardware Selection and Homogeneity
  • Resource Headroom

Movement V

Measure

Use available assessments to reflect on what you have learned.

In this part

A way to gauge yourself against the book's model, and the instruments it gives you.

  • — A self-check built from the book
  • — Instruments and what you'd measure next

Learning curriculum

After this book, you can…

The book's learning objectives, classified by Bloom's taxonomy and ordered so each builds on the ones before it.

01Foundational — know & understand
  1. explain
    After this book you can explain why capacity planning for growing web applications should be an adaptive, empirical, continuous process rather than a one-time exercise based on queuing theory, static models, or artificial benchmarks.
    Check: Short written explanation contrasting adaptive and theoretical approaches, using a scenario such as a one-week warning before a feature launch or a traffic spike from a major link.
  2. distinguish
    After this book you can distinguish performance from capacity, and define measurable performance and availability goals (response time, latency, 'nines' of uptime) that capacity must support.
    Check: Given a site description, write performance and availability targets and explain how they differ from the capacity needed to meet them.
02Working — apply
  1. select
    After this book you can select the essential system-level metrics (CPU, memory, disk I/O, network) and application-level metrics (e.g., signups, uploads) to collect continuously for each component of a web architecture.
    Check: Produce a metrics collection plan for a sample architecture, naming the tools, data points, and collection intervals for each tier.
  2. determine
    After this book you can determine the resource ceiling of each architectural component using real production data and controlled testing, and define safe operating limits and headroom.
    Check: Analyze load and utilization data for a server role to identify its limiting resource, ceiling, and the headroom to preserve before the ceiling.
  3. forecast
    After this book you can forecast future capacity needs by applying trend analysis to historical data, and predict when each component will reach its ceiling.
    Check: Given several months of usage data and a growth assumption, produce a forecast with a projected date for exhausting capacity, and state its uncertainty.
03Advanced — analyze & judge
  1. correlate
    After this book you can correlate system resource usage with application and business metrics to give context to load and justify infrastructure spending.
    Check: Given paired time-series data (e.g., CPU use vs. photo uploads), compute the relationship and write a business-oriented justification for added capacity.
04Mastery — synthesize & create
  1. evaluate
    After this book you can evaluate whether an architecture is divisible and measurable (segmented into single-purpose, independently scalable components) and recommend changes that improve capacity planning.
    Check: Critique a monolithic architecture diagram and propose a split into tiers (web, application, database, cache) with reasoning about how each can be measured and scaled.
  2. plan
    After this book you can plan for unexpected load, such as traffic spikes and launches, by sizing headroom and contingency capacity against the risk to availability and performance.
    Check: Develop a spike-readiness plan for a scenario in which the site is linked from a major news site, including headroom, degradation options, and quick-add capacity.
  3. select
    After this book you can select hardware or virtual instance types suited to each component's workload, and weigh the trade-offs of homogeneity for efficiency and manageability.
    Check: Given workload profiles (CPU-bound web, I/O-bound database), choose instance or hardware types and justify the choice using utilization and cost data.
  4. build
    After this book you can build a procurement and approval plan that justifies capital and operational expenditures, and that accounts for the time needed to provision new capacity.
    Check: Write a capacity request with a forecast, cost comparison (CapEx vs. OpEx), lead-time schedule, and business justification for management.
  5. design
    After this book you can design an automated deployment and configuration workflow (e.g., Chef, Puppet, SystemImager) that shortens time to provision and keeps systems consistent.
    Check: Specify an automated pipeline from bare server or image to a configured, tested node in production, estimating the time saved over manual installation.
  6. design
    After this book you can design and justify cloud autoscaling policies, and horizontal or diagonal scaling strategies, that balance cost, performance, and reliability.
    Check: Write an autoscaling policy (metrics, thresholds, cooldowns, min and max sizes) for a given workload and analyze its cost and performance trade-offs under simulated load.
  7. assess
    After this book you can assess ongoing infrastructure efficiency (use of compute, memory, power, and rack space) and revise the capacity plan continuously as usage and code change.
    Check: Review a quarter of utilization and cost data, identify waste or risk, and propose revisions to forecasts, headroom, and provisioning.

How to measure it

Turning each idea into a measure

For each construct: how to operationalize it, the observable signals to look for, and how well it holds up.

Architectural Divisibility

Assessment of the system architecture based on the number of distinct, independently scalable service tiers or clusters. A higher score indicates greater segmentation and fewer monolithic components.

Observable signals
  • Presence of multiple, role-specific server clusters in monitoring dashboards.
  • Architectural diagrams showing distinct service boundaries.
  • Ability to scale one part of the system (e.g., image servers) without affecting another (e.g., database servers).
Capacity Planning Process Rigor

Frequency and quality of capacity planning reviews, accuracy of past forecasts, and the degree to which decisions are based on trend data from monitoring systems. Can be scored using a rubric assessing measurement, forecasting, and procurement planning maturity.

Observable signals
  • Regularly updated capacity forecast documents or dashboards.
  • Use of trend lines and curve-fitting on historical data to justify new hardware.
  • Existence of a defined process for tracking the procurement pipeline.
  • Correlation of system metrics with business metrics.
Automated Deployment and Configuration

The percentage of production servers whose configuration is fully managed by an automated system. This is inversely related to the frequency of manual SSH logins for configuration changes.

Observable signals
  • Use of tools like Puppet, Chef, Ansible, or CFEngine.
  • Presence of a version control repository (e.g., Git) for configuration files.
  • Ability to provision a new server from bare metal to production-ready without manual login.
Elastic Provisioning Strategy

The extent to which the infrastructure utilizes horizontal scaling and dynamic autoscaling policies versus relying on manual provisioning and vertical scaling. Can be measured by the number of services governed by autoscaling rules.

Observable signals
  • Presence of autoscaling groups (ASGs) in cloud environments.
  • Load balancers distributing traffic across multiple identical nodes.
  • Historical data showing server counts fluctuating with daily/weekly traffic patterns.
Hardware Selection and Homogeneity

The number of distinct hardware or instance-type profiles used per functional role (e.g., web server, database server). A lower number indicates higher homogeneity. Appropriateness is assessed by comparing resource bottlenecks (e.g., CPU, I/O) with hardware specifications.

Observable signals
  • Inventory lists showing few hardware variations for servers in the same cluster.
  • Procurement records indicating purchases of I/O-heavy machines for databases and CPU-heavy machines for web servers.
  • Documentation of a 'diagonal scaling' hardware refresh strategy.
Resource Headroom

The percentage of a key resource (e.g., CPU, disk I/O wait) that remains unused during peak traffic periods, calculated as (Ceiling - Peak Utilization). The ceiling is determined through load testing or observation of performance degradation.

Observable signals
  • Monitoring graphs showing peak utilization well below 100% or other defined ceilings.
  • The 'safety factor' percentage used in capacity forecasting calculations.
  • Absence of performance degradation during predictable traffic spikes.
Time to Provision New Capacity

The average time, measured in days or weeks, from the approval of a hardware/cloud resource purchase to the point where the new resource is successfully serving production traffic.

Observable signals
  • Timestamps on purchase orders, delivery receipts, and deployment tickets.
  • The lead time used in capacity forecast models to trigger procurement.
  • For cloud resources, the time from API call to instance being healthy in a load balancer.
Operational Efficiency

The average utilization percentage of key resources (like CPU) across a cluster over a given period. Higher average utilization, without compromising performance, indicates greater efficiency.

Observable signals
  • Monitoring graphs showing average CPU utilization across a cluster.
  • Reduction in server count after a 'diagonal scaling' hardware refresh.
  • Cloud billing data showing reduced costs from autoscaling down during off-peak hours.
Application Performance

Key performance indicators measured by external monitoring services or internal application instrumentation, such as 95th percentile page load time, time to first byte (TTFB), or API response latency.

Observable signals
  • Dashboards from Real User Monitoring (RUM) tools.
  • Response time metrics in web server logs.
  • Reports from external services like Catchpoint or Keynote.
  • A low number of user complaints about site speed.
Application Availability

The uptime percentage calculated from data provided by external monitoring services that check application accessibility from multiple geographic locations at frequent intervals.

Observable signals
  • SLA compliance reports.
  • Public status pages showing service health.
  • Number of outage alerts triggered per month.
  • Absence of 'Fail Whale' or similar error pages shown to users.
Cost-Effectiveness of Infrastructure

The total infrastructure cost (hardware amortization, cloud bills, power, cooling) divided by a key business metric (e.g., number of active users, transactions processed, or ad views served) over a specific period.

Observable signals
  • Monthly cloud provider bills.
  • Quarterly financial reports on capital expenditure for hardware.
  • Business intelligence reports correlating infrastructure costs with user growth or revenue.

Self-assessment

Where would you like to improve?

This is a structured self-diagnostic built from the model — a mirror for reflection, not a validated psychometric scale. For validated measurement, see the instruments below.

1 = Strongly Disagree · 7 = Strongly Agree

Capabilitythe practices and skills you deploy
  • Our web application is split into independent, single-purpose components, such as separate web servers, database clusters, and services, that can each be scaled on their own.
  • We plan capacity mostly by reacting to slowdowns or outages rather than by regularly measuring metrics and forecasting future resource needs.
  • We use automated tools to install operating systems, deploy application code, and manage server configuration, with little manual work.
  • We add and remove capacity automatically, using horizontal scaling or autoscaling, as application load changes.
  • We choose hardware or instance types to match each component's specific workload and keep the number of different configurations small.
Alignmentthe outcomes you steer toward
  • Our compute, memory, power, and rack space are used effectively, with very little idle or wasted capacity.
  • Our application's response times and page loads are often slow enough that end users notice.
  • Our application consistently meets its availability target, such as 99.99% uptime, as measured against our service level agreements.
  • Our infrastructure spending is well balanced against the performance and availability our application delivers.
Motivationthe states you cultivate in others
  • At peak load, our systems keep a comfortable margin between their highest resource utilization and the point where they would fail.
0 of 10 answered

Proposed measures — starter instruments where no validated one was found

Architectural Divisibility Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. Each major function of the web application (e.g., web serving, application logic, database, caching, file storage) runs on its own separately deployable component.
  2. Any individual component can be scaled, replaced, or moved to different hardware without requiring changes to the other components.
  3. Each component has a documented single purpose and a defined interface through which other components interact with it.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Capacity Planning Process Rigor Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. System and application metrics (e.g., CPU, memory, disk, network, request rates) are collected continuously and retained for trend analysis.
  2. Growth forecasts are produced on a regular, scheduled cadence and are explicitly tied to observed metric trends and business projections.
  3. Capacity forecasts result in documented resource acquisition or scaling decisions that are reviewed against actual usage afterward.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Automated Deployment and Configuration Index (Proposed)

proposed · not validated

Rated for your team or hiring process — not a personal self-check.

  1. New servers have their operating systems installed and configured through automated tools without manual step-by-step intervention.
  2. Application releases are deployed to production through a scripted or tool-driven process that is version-controlled and repeatable.
  3. Server configuration is defined in central code or templates, and configuration drift is detected or corrected automatically.

Scale: 1–7 (Strongly Disagree → Strongly Agree), rated by an evaluator or the team. Average the items; treat ≤3 as a gap to close in the process.

Sources

The cheat sheet

Everything, on one page

One key takeaway from each section, with links to read more.

Publication details

Consult the sources listed in this guide for further reading. Edition 1 · Updated 2026-10-03.

Explore related books and profiles in the library.

Take it with you

The main guide above is free to read. This purchase includes 40 additional tools and examples — 10 frameworks, 10 checklists, 10 case studies and 10 templates — plus the full sections and the ebook itself: an epub and a PDF covering all 11 sections. Every format, yours to keep — permanently, including every future update. When this guide is deepened, you get the new edition at no cost.

One payment. The main guide stays free to read.

Get one letter a month: the new guides worth your time, and where the books disagree.

One letter a month from Leading With Data, plus a short welcome. Your address is used for this letter only. Unsubscribe any time.