Infrastructure Capacity Planning
Infrastructure capacity planning predicts the computing resources a workload needs to meet its performance and reliability targets. It connects expected demand with tested limits so you can avoid both shortages and waste.
itInfrastructure and operations | OpenSkills.info
Intro
Infrastructure Capacity Planning
Capacity planning answers a practical question: what resources must your workload have, and when must they be ready?
The answer is not “keep CPU below a fixed percentage.” A workload can run out of database connections while CPU remains quiet. It can meet average demand yet fail during a launch. It can also own enough total hardware but place that capacity in the wrong region.
A useful plan connects four things:
- Service targets define acceptable throughput, latency, availability, and degradation.
- Demand forecasts estimate the workload you expect during normal periods, peaks, launches, and failures.
- Tested capacity shows how much useful work each resource unit can serve while targets still hold.
- Provisioning decisions place enough usable capacity before the demand or failure arrives.
You repeat this loop because demand, software efficiency, dependencies, and delivery dates change.
Start with the service
Capacity is useful work delivered within a target. Ten servers are not a service capacity statement. “Ten servers sustain the forecast transaction rate while latency remains within target” is closer.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://sre.google/sre-book/introduction/
Supports
- Capacity planning as an SRE responsibility
- Organic and inorganic demand forecasting
- Forecast horizon beyond provisioning lead time
- Load testing to correlate raw resources with service capacity
- Capacity, demand, software efficiency, provisioning, and cost relationships
- https://learn.microsoft.com/en-us/azure/well-architected/performance-efficiency/capacity-planning
Supports
- Capacity planning definition and performance-target focus
- Historical data, workload patterns, peak demand, and scenario forecasting
- CPU, memory, storage, network, personnel, application, and service limits
- Bottleneck identification from throughput and response behavior
- Pilots, expert judgment, and external evidence for new workloads
- Autoscaling, quotas, scaling limits, monitoring, and testing
- Underprovisioning and overprovisioning tradeoffs
- https://sre.google/sre-book/service-best-practices/
Supports
- N plus two capacity policy
- Forecast validation against actual demand
- Load testing as evidence for resource-to-capacity ratios
- Launch demand differing from steady-state demand
- Graceful degradation and load shedding during overload
- https://sre.google/sre-book/addressing-cascading-failures/
Supports
- Capacity planning coupled with performance testing
- Capacity calculation from peak load, tested breaking point, and redundancy
- Limits of capacity planning as a cascading-failure defense
- Queue effects, breaking-point testing, and gradual versus impulse load
- Load shedding, retries, and uneven load as overload concerns
- https://sre.google/sre-book/software-engineering-in-sre/
Supports
- Capacity planning as a repeated forecast and allocation cycle
- Location, redundancy, dependency, budget, and priority constraints
- Intent-based requirements and allocation planning
- Resource units in different locations not always interchangeable
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the curated Awesome Site Reliability Engineering list
- https://github.com/dastergon/awesome-sre
Supports
- Discovery of capacity-planning resources and the Awesome SRE Tools list
- https://github.com/SquadcastHub/awesome-sre-tools
Supports
- Discovery of k6 and Gatling as continuous-testing tools
- Discovery of Prometheus as a continuous-monitoring tool
- https://grafana.com/docs/k6/latest/
Supports
- k6 load-test types including average, stress, soak, spike, and breakpoint tests
- API and protocol performance testing
- Test-result exports and dashboard integrations
- https://docs.gatling.io/
Supports
- Gatling as a code-driven load-testing tool
- Workload models, protocol testing, automation, and result analysis
- https://prometheus.io/docs/introduction/overview/
Supports
- Prometheus collection and storage of timestamped metrics
- Dimensional queries, graphing, dashboards, and alerting
- Request, connection, and application measurements used to understand system behavior
