Markdown Editor

Back-of-Envelope Estimation and Capacity Model Template

Reference latency and unit tables, assumptions register, QPS, storage, bandwidth, cache, server and cost formulas, worked example, sensitivity, traceability

Kiến trúc & Thiết kế hệ thốngĐầy đủJeff Dean latency numbers (LADIS 2009)backenvelopeestimationmath
Mở trong editorTải .md

Cách dùng: Use it when a design needs defensible numbers before choosing components. Fill the assumptions register with sources and confidence first, then derive peak QPS, storage, bandwidth and server counts with the formulas. The main pitfall is sizing from averages or trusting 2009 reference latencies instead of benchmarks of your own hardware.

Xem trước

Capacity Estimation Worksheet: [System or feature name]

Back-of-the-envelope estimation and capacity model for a new system or a major change. It gives reference numbers (latency, throughput, storage units, time and availability conversions), a repeatable method, formulas for average and peak QPS, storage growth, bandwidth, cache size, server count and cost, a fully worked example, a sensitivity analysis, common pitfalls and a traceability table that carries each estimate into the design document. Reference latencies follow the widely circulated "numbers everyone should know" list presented by Jeff Dean (Google) in 2009; they are orders of magnitude, not measurements of your hardware. Replace every [bracketed] value and every row marked Example.

Document control

FieldValue
Document ID[CAP-EST-001]
System / feature[Photo sharing service]
Version[0.1]
Status[Draft / In review / Approved / Superseded]
Owner[@owner]
Reviewers[@reviewer-1], [@reviewer-2]
Last updatedYYYY-MM-DD
Classification[Internal]
Planning horizon[12 months from launch]
Linked design document[SDD-PHOTO-001]
Assumptions last validated against production dataYYYY-MM-DD

Approvals

RoleNameDecisionDate
Tech lead[@name][Approved / Changes requested]YYYY-MM-DD
SRE / capacity owner[@name][Decision]YYYY-MM-DD
Product (traffic assumptions)[@name][Decision]YYYY-MM-DD
Finance / FinOps (cost model)[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First estimate for design review
0.2YYYY-MM-DD[@name]Example: Peak factor raised from 2 to 3 after reviewing launch traffic of a comparable product
0.3YYYY-MM-DD[@name]Example: Replaced reference throughput with benchmark of the chosen instance type
1.0YYYY-MM-DD[@name]Example: Approved together with the design document

Contents

1. Purpose and scope

1.1 Decisions this estimate informs

IDDecisionOutput that drives itThreshold that would change the decision
DEC-01Example: Single relational database or sharded store for metadataWrite QPS, metadata size after 12 monthsAbove about 5 000 writes/s or 5 TB, consider sharding
DEC-02Example: Serve images from a CDN or from originPeak egress bandwidthOrigin egress above 5 Gbit/s
DEC-03Example: Size of the application tier for launchPeak read QPS, per-server capacityMore than 50 instances suggests a different runtime or caching layer
DEC-04Example: Storage class for originalsStorage growth per year, cost per GBStorage above 40% of monthly cost
[DEC-nn][Decision][Output][Threshold]

1.2 Scope

  • In scope: [Example: upload, feed rendering, image serving, metadata storage]
  • Out of scope: [Example: search indexing, machine learning pipelines, internal analytics]
  • Horizon: [Example: launch plus 12 months, with a year-3 projection in section 7]

2. Reference numbers

2.1 Latency orders of magnitude

The first two columns reproduce the values shown in Jeff Dean's LADIS 2009 talk. Hardware has moved since then: caches and memory changed little, while solid-state storage and data-centre networks improved by orders of magnitude. Use the "Use for" column to reason about relative cost, and the last column to record what you measured.

OperationValue in the 2009 listOrder of magnitudeUse forYour measured value
L1 cache reference0.5 nsNanosecondsIn-process data structures are effectively free[ ]
Branch mispredict5 nsNanosecondsTight loops only[ ]
L2 cache reference7 nsNanosecondsHot working set fits in cache[ ]
Mutex lock and unlock25 nsTens of nsUncontended locks are cheap; contended locks are not[ ]
Main memory reference100 nsHundreds of nsPointer-heavy structures cost memory latency[ ]
Compress 1 KB with a fast codec (Zippy, now Snappy)3 µsMicrosecondsCompression before network or disk usually pays[ ]
Send 2 KB over a 1 Gbit/s network20 µsTens of µsSerialisation time on the wire[ ]
Read 1 MB sequentially from memory250 µsHundreds of µsScanning in memory is fast but not free[ ]
Round trip within the same data centre500 µsSub-millisecondBudget for each remote call on the critical path[ ]
Disk seek (spinning disk)10 msMillisecondsAvoid random reads on HDD[ ]
Read 1 MB sequentially from spinning disk20 msTens of msHDD suits sequential, large reads[ ]
Packet round trip California to Netherlands150 msHundreds of msCross-continent calls cannot be on a tight path[ ]

Two rules follow from the table and still hold: a main memory reference is thousands of times faster than a network round trip, and a cross-continent round trip is a few hundred times slower than a round trip inside one data centre.

2.2 Throughput and bandwidth conversions

QuantityConversion
1 Gbit/s125 MB/s
10 Gbit/s1.25 GB/s
25 Gbit/sabout 3.1 GB/s
1 MB/s sustained for a dayabout 86 GB/day
1 Gbit/s sustained for a 30-day month324 TB/month
Requests per second to requests per daymultiply by 86 400 (round to 10510^{5} for a first pass)

2.3 Storage units

Decimal units (powers of ten) are used throughout this worksheet; binary units (KiB, MiB, GiB) differ by about 2.4% at the kilo level and about 10% at the tera level. State which you use.

DecimalBytesBinaryBytesDifference
KB10310^{3}KiB210=1 0242^{10} = 1\,0242.4%
MB10610^{6}MiB2202^{20}4.9%
GB10910^{9}GiB2302^{30}7.4%
TB101210^{12}TiB2402^{40}10.0%
PB101510^{15}PiB2502^{50}12.6%

Typical sizes to sanity-check inputs: a UUID is 16 bytes in binary form or 36 characters as text; a 64-bit integer is 8 bytes; a short JSON metadata record is usually hundreds of bytes to a few kilobytes.

2.4 Time and availability conversions

PeriodSeconds
Minute60
Hour3 600
Day86 400
30-day month2 592 000
365-day year31 536 000
AvailabilityDowntime per 365-day yearDowntime per 30-day month
99%87.6 h7.2 h
99.9%8.76 h43.2 min
99.95%4.38 h21.6 min
99.99%52.6 min4.32 min
99.999%5.26 min25.9 s

3. Method

  1. Name the decisions the estimate must support (1.1). Stop estimating a quantity once it is clearly on one side of the decision threshold.
  2. Write down the inputs as assumptions with IDs, values, units and sources (section 4). Prefer production data from a comparable feature, then market or product forecasts, then explicit guesses marked as such.
  3. Derive request rates: daily volume, average QPS, then peak QPS using a stated peak factor. Separate reads from writes; they scale differently.
  4. Derive data volumes: bytes per write, daily growth, retention, then storage after replication or erasure coding.
  5. Derive bandwidth: ingress and egress at average and peak, before and after CDN or cache offload.
  6. Size caches from the working set, not from total data.
  7. Size compute from peak load divided by measured per-server capacity at a target utilisation, then add redundancy for the failure you must survive.
  8. Price it with unit costs from your provider's price list or your contract, and show the cost drivers.
  9. Test the sensitivity of the outputs to the most uncertain inputs (section 7) and record which decisions flip.
  10. Publish the summary in the design document, link to this worksheet and schedule a re-check against real traffic after launch.

Round consistently: round inputs to two significant figures, keep full precision through the arithmetic, and round results up for capacity and to the nearest sensible unit for reporting.

4. Assumptions register

IDInputSymbolValueUnitSourceConfidence
AS-001 (Example)Daily active usersUU10 000 000usersProduct forecast for month 12Medium
AS-002 (Example)Photos viewed per user per dayvv50views/user/dayComparable app analyticsMedium
AS-003 (Example)Share of users who upload on a given dayff10%fractionComparable app analyticsLow
AS-004 (Example)Photos uploaded per uploading user per dayuu2photos/dayComparable app analyticsMedium
AS-005 (Example)Peak-to-average ratiokpk_{p}3ratioHourly traffic curve of current productMedium
AS-006 (Example)Stored size per photo (original 2 MB plus renditions 0.5 MB)sps_{p}2.5MBSample of 1 000 uploadsHigh
AS-007 (Example)Upload size sent by the client (original only)sus_{u}2MBSample of 1 000 uploadsHigh
AS-008 (Example)Average bytes served per view (feed rendition)svs_{v}200KBRendition specificationHigh
AS-009 (Example)Metadata per photo including indexessms_{m}1KBSchema draftMedium
AS-010 (Example)Storage overhead factor (erasure coding)ρ\rho1.5ratioObject store documentationHigh
AS-011 (Example)CDN cache hit ratio for imageshh90%fractionCurrent CDN reportsMedium
AS-012 (Example)Hot fraction of daily read items to cachecc20%fractionPopularity distribution of current productLow
AS-013 (Example)Read capacity of one application server at saturationqrq_{r}2 500req/sLoad test on target instance typeHigh
AS-014 (Example)Upload capacity of one upload worker at saturationqwq_{w}50uploads/sLoad test including rendition generationMedium
AS-015 (Example)Target utilisation at peakη\eta60%fractionSRE policyHigh
AS-016 (Example)Zones, of which one may failzz3zonesDeployment standardHigh
AS-017 (Example)Object storage pricepsp_{s}0.02USD per GB-monthProvider price list, region [x]High
AS-018 (Example)CDN egress pricepep_{e}0.01USD per GBContractMedium
AS-019 (Example)Compute price per instancepcp_{c}150USD per instance-monthProvider price listHigh
[AS-nnn][Input][Symbol][Value][Unit][Source][High / Medium / Low]

5. Formulas

5.1 Request rates

Daily read and write volumes, average QPS and peak QPS:

Dr=U×v,Dw=U×f×uD_{r} = U \times v, \qquad D_{w} = U \times f \times u
Qavg=D86 400,Qpeak=Qavg×kpQ_{avg} = \frac{D}{86\,400}, \qquad Q_{peak} = Q_{avg} \times k_{p}

Use a peak factor from your own hourly curve where you have one. Daily traffic with a strong evening peak often shows a peak-to-average ratio of two to three; launches, campaigns and live events can be far higher, so treat them as separate scenarios.

5.2 Storage growth

Daily growth, growth over the planning horizon TT days, and raw storage after the redundancy overhead ρ\rho:

Gday=Dw×sp,ST=Gday×T,Sraw=ST×ρG_{day} = D_{w} \times s_{p}, \qquad S_{T} = G_{day} \times T, \qquad S_{raw} = S_{T} \times \rho

If retention is shorter than the horizon, storage plateaus at Gday×retention daysG_{day} \times \text{retention days}. Add metadata separately: it is small but sits on more expensive storage.

5.3 Bandwidth

Begress=Q×sv,Bingress=Qw×su,Borigin=Begress×(1−h)B_{egress} = Q \times s_{v}, \qquad B_{ingress} = Q_{w} \times s_{u}, \qquad B_{origin} = B_{egress} \times (1 - h)

Convert bytes per second to bits per second by multiplying by 8 before you compare with network links.

5.4 Cache size

A first-pass upper bound treats every read in a day as a distinct item and caches the hot fraction cc:

C=Dr×c×sitemC = D_{r} \times c \times s_{item}

This overstates the need when reads repeat, which they usually do; refine it with the number of distinct items read per day when you have it.

5.5 Servers needed

Divide peak load by usable per-server capacity, round up, then add capacity to survive the loss of one of zz zones:

N=⌈Qpeakq×η⌉,Nzone=⌈N×zz−1⌉N = \left\lceil \frac{Q_{peak}}{q \times \eta} \right\rceil, \qquad N_{zone} = \left\lceil N \times \frac{z}{z - 1} \right\rceil

5.6 Cost

Costmonth=Sraw×ps+Emonth×pe+Ntotal×pc\text{Cost}_{month} = S_{raw} \times p_{s} + E_{month} \times p_{e} + N_{total} \times p_{c}

where EmonthE_{month} is the monthly egress volume in GB. Include support, licences, data transfer between zones and regions, and operational staff in the total cost model of the design document; this formula covers only the variable infrastructure drivers.

6. Worked example

The example sizes a photo sharing service at month 12 using the Example assumptions AS-001 to AS-019. All values are illustrative.

6.1 Request rates

Dr=107×50=5×108 views/day,Dw=107×0.1×2=2×106 uploads/dayD_{r} = 10^{7} \times 50 = 5 \times 10^{8} \ \text{views/day}, \qquad D_{w} = 10^{7} \times 0.1 \times 2 = 2 \times 10^{6} \ \text{uploads/day}
Qr,avg=5×10886 400≈5 787 req/s,Qr,peak=5 787×3≈17 361 req/sQ_{r,avg} = \frac{5 \times 10^{8}}{86\,400} \approx 5\,787 \ \text{req/s}, \qquad Q_{r,peak} = 5\,787 \times 3 \approx 17\,361 \ \text{req/s}
Qw,avg=2×10686 400≈23.1 uploads/s,Qw,peak=23.1×3≈69.4 uploads/sQ_{w,avg} = \frac{2 \times 10^{6}}{86\,400} \approx 23.1 \ \text{uploads/s}, \qquad Q_{w,peak} = 23.1 \times 3 \approx 69.4 \ \text{uploads/s}

The read-to-write ratio is 250 to 1, so the read path dominates compute and bandwidth while the write path dominates storage.

6.2 Storage

Gday=2×106×2.5 MB=5 TB/day,S365=5×365=1 825 TBG_{day} = 2 \times 10^{6} \times 2.5 \ \text{MB} = 5 \ \text{TB/day}, \qquad S_{365} = 5 \times 365 = 1\,825 \ \text{TB}
Sraw=1 825×1.5=2 737.5 TB≈2.74 PB after one yearS_{raw} = 1\,825 \times 1.5 = 2\,737.5 \ \text{TB} \approx 2.74 \ \text{PB after one year}

Metadata grows by 2×106×1 KB=22 \times 10^{6} \times 1 \ \text{KB} = 2 GB per day, or 730 GB per year: a single replicated relational database holds it, which answers DEC-01 for the first year.

6.3 Bandwidth

Begress,avg=5 787×200 KB≈1.16 GB/s≈9.3 Gbit/sB_{egress,avg} = 5\,787 \times 200 \ \text{KB} \approx 1.16 \ \text{GB/s} \approx 9.3 \ \text{Gbit/s}
Begress,peak=17 361×200 KB≈3.47 GB/s≈27.8 Gbit/sB_{egress,peak} = 17\,361 \times 200 \ \text{KB} \approx 3.47 \ \text{GB/s} \approx 27.8 \ \text{Gbit/s}
Borigin,peak=27.8×(1−0.9)≈2.8 Gbit/sB_{origin,peak} = 27.8 \times (1 - 0.9) \approx 2.8 \ \text{Gbit/s}
Bingress,peak=69.4×2 MB≈139 MB/s≈1.1 Gbit/sB_{ingress,peak} = 69.4 \times 2 \ \text{MB} \approx 139 \ \text{MB/s} \approx 1.1 \ \text{Gbit/s}

Peak egress of 27.8 Gbit/s needs a CDN; with a 90% hit ratio the origin serves about 2.8 Gbit/s, below the DEC-02 threshold.

6.4 Cache

Caching rendered metadata for the hot fraction of the day's views:

C=5×108×0.2×1 KB=100 GBC = 5 \times 10^{8} \times 0.2 \times 1 \ \text{KB} = 100 \ \text{GB}

This upper bound fits in a small in-memory cache cluster (for example three nodes with 64 GB of memory each, leaving room for replication and overhead).

6.5 Servers

Read tier, usable capacity 2 500×0.6=1 5002\,500 \times 0.6 = 1\,500 req/s per server:

Nr=⌈17 3611 500⌉=⌈11.6⌉=12,Nr,zone=⌈12×32⌉=18N_{r} = \left\lceil \frac{17\,361}{1\,500} \right\rceil = \lceil 11.6 \rceil = 12, \qquad N_{r,zone} = \left\lceil 12 \times \frac{3}{2} \right\rceil = 18

Upload tier, usable capacity 50×0.6=3050 \times 0.6 = 30 uploads/s per worker:

Nw=⌈69.430⌉=⌈2.3⌉=3,Nw,zone=⌈3×32⌉=⌈4.5⌉=5N_{w} = \left\lceil \frac{69.4}{30} \right\rceil = \lceil 2.3 \rceil = 3, \qquad N_{w,zone} = \left\lceil 3 \times \frac{3}{2} \right\rceil = \lceil 4.5 \rceil = 5

Total compute: 23 instances, well below the DEC-03 threshold.

6.6 Monthly egress volume

Eday=5×108×200 KB=100 TB/day,Emonth=100×30=3 000 TB=3×106 GBE_{day} = 5 \times 10^{8} \times 200 \ \text{KB} = 100 \ \text{TB/day}, \qquad E_{month} = 100 \times 30 = 3\,000 \ \text{TB} = 3 \times 10^{6} \ \text{GB}

6.7 Cost at month 12

DriverCalculationMonthly cost (USD)
Object storage (Example)2 737 500 GB x 0.0254 750
CDN egress (Example)3 000 000 GB x 0.0130 000
Compute (Example)23 instances x 1503 450
Total variable infrastructure88 200

Storage is 62% of the variable cost and keeps growing every month, which crosses the DEC-04 threshold: a lifecycle rule that moves originals older than 90 days to an infrequent-access class is worth designing now.

6.8 Summary

QuantityAveragePeakDesign consequence
Read QPS5 78717 361Stateless read tier, 18 instances across 3 zones
Upload QPS23.169.4Asynchronous rendition workers, 5 instances
Storage after 12 months1 825 TB logical2.74 PB rawObject storage with lifecycle tiers
Metadata after 12 months730 GBSingle replicated relational database
Egress9.3 Gbit/s27.8 Gbit/sCDN mandatory; origin peak about 2.8 Gbit/s
Cache100 GBThree-node in-memory cache
Monthly variable costUSD 88 200Storage is the main driver

7. Sensitivity analysis

7.1 One-at-a-time variation

ScenarioChanged inputOutput affectedBaselineNew valueDecision flipped?
SEN-01 (Example)Peak factor 3 to 5 (AS-005)Read servers with zone redundancy18⌈28 935/1 500⌉=20\lceil 28\,935 / 1\,500 \rceil = 20, then 30No (DEC-03 still below 50)
SEN-02 (Example)CDN hit ratio 90% to 80% (AS-011)Origin peak egress2.8 Gbit/s5.6 Gbit/sYes: DEC-02 threshold exceeded, add an origin shield
SEN-03 (Example)Daily users doubled (AS-001)Raw storage after one year2.74 PB5.48 PBNo, but storage cost doubles to USD 109 500 per month
SEN-04 (Example)Stored size per photo 2.5 MB to 4 MB (AS-006)Raw storage after one year2.74 PB2×106×4 MB×365×1.5=4.382 \times 10^{6} \times 4 \ \text{MB} \times 365 \times 1.5 = 4.38 PBNo
SEN-05 (Example)Upload share 10% to 20% (AS-003)Upload workers with zone redundancy5⌈138.9/30⌉=5\lceil 138.9 / 30 \rceil = 5, then 8No
[SEN-nn][Input change][Output][Baseline][New][Yes / No]

7.2 Growth projection

HorizonDaily usersRaw storage (cumulative)Peak read QPSNote
Month 12 (Example)10 million2.74 PB17 361Baseline
Month 24 (Example)15 million2.74 + 4.11 = 6.85 PB26 042Storage grows faster than traffic because nothing is deleted
Month 36 (Example)20 million6.85 + 5.48 = 12.33 PB34 722Revisit retention and lifecycle policy

Year-2 storage added is 1.5×1071.5 \times 10^{7} users times the same per-user rates: 1.5×107×0.1×2×2.5 MB×365×1.5≈4.111.5 \times 10^{7} \times 0.1 \times 2 \times 2.5 \ \text{MB} \times 365 \times 1.5 \approx 4.11 PB; year 3 at 2×1072 \times 10^{7} users adds about 5.48 PB. The projection assumes users reach the stated count at the start of each year, which is conservative for storage.

7.3 Scenarios outside the model

List events the formula does not capture and how the design handles them:

  • [Example: a viral post that sends 10 times normal traffic to one image: handled by the CDN, not by origin capacity]
  • [Example: a marketing launch in a new region: separate estimate with its own peak factor]
  • [Example: a backfill job that re-renders all photos: scheduled off-peak with its own worker pool]

8. Common pitfalls

IDPitfallConsequencePrevention
PIT-01Using average load to size capacitySaturation every evening peakAlways size from peak, with a stated peak factor
PIT-02Mixing decimal and binary unitsErrors of 5 to 12% at large scalesState the unit convention once and keep it
PIT-03Forgetting replication, erasure coding, indexes or compaction spaceStorage under-provisioned by 1.5 to 3 timesApply an explicit overhead factor per store
PIT-04Bits and bytes confusedBandwidth wrong by a factor of 8Write the unit on every bandwidth number
PIT-05Sizing to 100% utilisationNo headroom for spikes, garbage collection or failoverDivide by a target utilisation and add zone redundancy
PIT-06Using reference latencies as factsDesigns tuned to 2009 hardwareBenchmark the chosen instance type and network
PIT-07Ignoring fan-outOne user request becomes many backend callsMultiply by the fan-out of each request type
PIT-08Ignoring retries and background workReal load exceeds user-driven loadAdd retry amplification, batch jobs and replication traffic
PIT-09False precisionReviewers trust five-digit numbers built on guessesRound results and keep confidence labels
PIT-10Estimate never revisitedCapacity plan drifts from realitySchedule a check against production at 30 and 90 days

9. Feeding results into design documents

9.1 Traceability matrix

EstimateValueAssumptionsConsumed bySectionDecision recorded
Peak read QPS (Example)17 361 req/sAS-001, AS-002, AS-005System design document (architecture/system-design-document)3, 8Read tier size and autoscaling floor
Raw storage after one year (Example)2.74 PBAS-001, AS-003, AS-004, AS-006, AS-010Database design (architecture/database-design)StorageObject store with lifecycle tiers
Origin peak egress (Example)2.8 Gbit/sAS-008, AS-011Infrastructure design (architecture/infrastructure-design)NetworkCDN with origin shield
Monthly variable cost (Example)USD 88 200AS-017 to AS-019TCO analysis (architecture/tco-analysis)Run costsBudget request
Instances per zone (Example)6 read, 2 upload (rounded up)AS-013 to AS-016Capacity plan (ops/capacity-plan)HeadroomLaunch capacity and review dates
[Estimate][Value][AS-nnn][Document][Section][Decision]

9.2 How to present the estimate

  • Put the summary table (6.8) in section 3 of the design document and link to this worksheet for the derivation.
  • State the two or three assumptions that matter most and their confidence.
  • Show the sensitivity result that flips a decision and the mitigation.
  • Record the date the estimate was made and the date it will be compared with production telemetry.
  • Use the system design templates in this collection, such as the rate limiter (architecture/design-rate-limiter), news feed (architecture/design-news-feed), URL shortener (architecture/design-url-shortener), distributed key-value store (architecture/design-distributed-kv-store) and message queue (architecture/design-message-queue), as models of how an estimate is turned into component choices.

9.3 After launch

CheckWhenCompared withAction if off by more than 30%
Peak QPSDay 30Section 6.1Update AS-005 and re-run section 6.5
Storage growthDay 30 and day 90Section 6.2Update AS-006 and the lifecycle policy
CDN hit ratioDay 30AS-011Review cache keys and TTLs
CostFirst two invoicesSection 6.7Feed into FinOps review

10. Review checklist

  • Every formula input has an assumption ID with source and confidence.
  • Reads and writes are estimated separately.
  • Peak, not average, drives compute and bandwidth sizing.
  • Storage includes replication or erasure coding, indexes and retention.
  • Bandwidth figures state bits or bytes and are compared with link sizes.
  • Cache size is derived from a working set, and the method is stated.
  • Server counts divide by target utilisation and include zone redundancy.
  • Reference numbers are replaced or confirmed by benchmarks.
  • At least three sensitivity scenarios are recorded with decision impact.
  • The summary is copied into the design document with a link back.
  • A post-launch comparison date is scheduled.

11. Glossary and references

11.1 Glossary

TermMeaning
QPSQueries or requests per second
Peak factorRatio of the busiest interval's rate to the daily average rate
Working setData accessed often enough in a period that caching it pays
Erasure codingRedundancy scheme that stores parity fragments instead of full copies; overhead below plain replication
Target utilisationHighest planned use of a resource at peak, leaving headroom
Zone redundancyExtra capacity so that losing one availability zone does not overload the rest
Significant figureDigit that carries meaning in a rounded number

11.2 References

ReferenceUse
Jeff Dean, "Designs, Lessons and Advice from Building Large Distributed Systems", LADIS 2009 keynote (slide "Numbers everyone should know")Latency orders of magnitude in 2.1
Jeff Dean, "Software Engineering Advice from Building Large-Scale Distributed Systems", lecture slides (copy hosted at cs.princeton.edu, COS 518 reading list)Same list and the practice of estimating on the back of an envelope
Your cloud provider's instance and storage documentationReplacement values for 2.1 and 2.2
Your provider's price list or contractUnit costs AS-017 to AS-019
Capacity plan (ops/capacity-plan)Ongoing capacity management after launch

Standard and licence note

Based on common engineering practice for back-of-the-envelope estimation and on the latency figures publicly presented by Jeff Dean in 2009, reproduced here as short factual values with attribution and labelled as orders of magnitude that change with hardware. The method, formulas, worked example and guidance are original text written for this collection; all numbers in the example are illustrative. Check current hardware benchmarks and your provider's current prices before relying on any figure. Template licence: MIT.

Template liên quan