Was Allspaws Buch löst
Die Disziplin, nicht auszugehen
John Allspaw schrieb 'The Art of Capacity Planning' (O'Reilly, 2008; zweite Auflage 2017) nach dem Betrieb von Operationen bei Flickr durch Jahre explosiven Wachstums. Seine These: Capacity Planning ist keine einmalige Tabellenkalkulationsübung. Es ist eine kontinuierliche Disziplin, die Messung, Prognose & technisches Urteilsvermögen verbindet. Lassen Sie einen dieser drei weg, & Sie laufen entweder in der Produktion aus der Kapazität oder verbrennen Geld für Hardware, die untätig ist.
Capacity Planning sitzt zwischen zwei Ausfallmodi:
- Unterversorgung: Dienste laufen heiß, die Latenz steigt, die Fehlerquoten klettern, Kunden gehen weg. Der schnellste Weg, Benutzer in einer Wachstumsphase zu verlieren.
- Überversorgung: Hardware läuft bei 10% Auslastung, die Finanzabteilung fragt, warum das Budget immer weiter wächst, ohne dass der Umsatz mitgeht. Der schnellste Weg, Personalbestand in einer Budgetprüfung zu verlieren.
Die Kunst liegt darin, den Korridor zwischen diesen beiden Klippen zu finden & darin zu bleiben, während sich die Arbeitslast ändert.
Drei Kernfragen treiben jede Capacity-Übung voran:
- Was haben wir? Aktuelle Kapazität in konkreten Einheiten: Anfragen pro Sekunde, Abfragen pro Minute, Gigabyte Speicher, gleichzeitige Verbindungen.
- Was brauchen wir? Prognostizierte Nachfrage zu einem zukünftigen Datum mit expliziten Unsicherheitsgrenzen.
- Wann müssen wir handeln? Vorlaufzeit für Beschaffung, Bereitstellung oder Skalierung. Cloud reduziert dies auf Minuten; On-Premise kann Monate bedeuten.
Warum es keine Tabellenkalkulation sein kann
Ein E-Commerce-Unternehmen plant Kapazität einmal im Jahr im November durch lineare Extrapolation der vorherigen 12 Monate des Verkehrs. Sie betreiben dedizierte Server mit einer Beschaffungsvorlaufzeit von 6 Wochen. Ihr Verkehr zeigt starke Wochensaisonalität (3x Wochenendspitze), starke Jahressaisonalität (5x Black Friday) & ist in den letzten drei Jahren um 40% pro Jahr gewachsen.
Workload versus Auslastung
Zwei verschiedene Nummern, beide erforderlich
Capacity Planning schlägt fehl, wenn Teams nur eine der zwei wesentlichen Dimensionen messen.
Workload: Die Nachfrage an das System von außen. Anfragen pro Sekunde, Transaktionen pro Minute, Megabyte pro Sekunde, gleichzeitige Benutzer. Workload beschreibt, was die Welt von Ihnen verlangt.
Auslastung: Wie voll das System läuft, während es diese Nachfrage bedient. CPU-Prozent, verwendeter Speicher, Queue-Tiefe, Netzwerkbandbreite, Disk-IOPS. Auslastung beschreibt, wie das System diese Nachfrage anfühlt.
Workload allein sagt Ihnen, was kommt, aber nicht, ob Sie es bedienen können. Auslastung allein sagt Ihnen, wie voll Sie sind, aber nicht, was morgen erwartet. Sie brauchen beides, nebeneinander aufgetragen, um Capacity-Entscheidungen zu treffen.
Kapazitätsverhältnis = Workload / Auslastung. Wenn Sie 1.000 Anfragen pro Sekunde bei 50% CPU bedienen, ist Ihr Kapazitätsverhältnis 2.000 RPS pro 100% CPU pro Server. Dieser Umrechnungsfaktor ermöglicht es Ihnen, prognostizierte Workload in erforderliche Serveranzahl zu übersetzen.
Allspaw betont das Messen mit der richtigen Granularität. Eine Stichprobe pro Minute verbirgt 30-Sekunden-Spitzen. Eine Stichprobe pro Stunde verbirgt alles. Echte Capacity-Arbeit braucht Sub-Minuten-Auflösung für Peak-Events und Minuten-Auflösung für Trends. Alles Gröbere erzeugt gefährliches falsches Vertrauen.
Was instrumentiert werden soll
Ihr Team startet Capacity-Instrumentierung auf einem neuen Produktstart (ein Video-Transcodierungsdienst). Sie können bis zu 8 Metriken mit Sub-Minuten-Auflösung verfassen. Der Dienst nimmt Video-Uploads auf, reiht sie ein, transcode zu mehreren Formaten & schreibt Ausgaben in Object Storage.
Trend, Saisonalität, Unsicherheit
Drei Schichten jeder Prognose
Allspaw & das Google SRE-Buch sind sich einig über die Struktur einer nützlichen Prognose: Trend, Saisonalität & Unsicherheitsgrenzen. Lassen Sie eine weg & die Prognose wird täuschend.
Trend: Die Steigung der Nachfrage über Monate oder Jahre. Oft modelliert mit linearer Regression für kurze Fenster, exponentiell oder stückweise linear für Kompoundwachstum. Die Trendlinie beantwortet 'Wohin geht die Nachfrage im Allgemeinen?'
Saisonalität: Die zyklischen Muster auf mehreren Zeitskalen. Täglich (Spitzenverkehr am Nachmittag), wöchentlich (Wochenendspitzen), jährlich (Black Friday, Steuersaison, Schuljahr). Multiplikative Saisonalität skaliert mit dem Trend; additive Saisonalität addiert einen konstanten Versatz.
Unsicherheitsgrenzen: Der Prognosekegel. Eine Prognose ohne Grenzen ist eine Vermutung. Echte Prognosen veröffentlichen eine zentrale Schätzung mit expliziten Ober- & Untergrenzen, typischerweise bei 90% oder 95% Konfidenz. Der Kegel verbreitert sich, je weiter Sie in die Zukunft projizieren. Eine 4-Wochen-Prognose könnte ±10% Grenzen haben; eine 12-Monats-Prognose hat oft ±50%.
Geschäftswachstum von technischer Nachfrage entkoppeln: Capacity Planning prognostiziert technische Workload, aber Geschäftsteams prognostizieren Umsatz, Anmeldungen oder Kampagnen. Die Aufgabe des Capacity-Planers ist es, Geschäftsprognosen in technische Nachfrage zu übersetzen: Ein 30%-Anmeldungswachstum könnte 30% mehr API-Aufrufe bedeuten, aber es könnte 80% mehr sein, wenn neue Benutzer das System intensiver nutzen, oder nur 15%, wenn sie mit niedrigeren Raten konvertieren. Das Umrechnungsverhältnis ist genauso wichtig wie die zugrunde liegende Geschäftsprognose.
Prognose des Feiertagsverkehrs
Ihr Dienst bedient eine E-Commerce-Website. Der Black-Friday-Verkehr letzten Jahres war 5x der November-Durchschnitt, über 12 Stunden aufrechterhalten. Das Geschäft ist um 40% pro Jahr gewachsen. Marketing startet eine bezahlte Promotion, die voraussichtlich einen zusätzlichen 20% zum Black-Friday-Verkehr in diesem Jahr hinzufügen wird.
Kennen Sie Ihr Ceiling
Finden Sie das Ceiling, bevor die Produktion es tut
Prognose sagt Ihnen, was kommt. Ceiling-Tests sagen Ihnen, ob das System es bedienen kann. Allspaw behandelt Ceiling-Tests als unverzichtbaren Input für Capacity Planning: Sie kennen Ihre echte Kapazität nicht, bis Sie sie unter kontrollierter Last getestet haben.
Drei Arten von Ceiling-Tests:
- Synthetischer Last-Test: Ein Last-Generator (k6, Locust, JMeter, vegeta) treibt Verkehr bei einem Zieldienst im Staging. Erhöhen Sie die Last, bis etwas bricht. Der Bruchpunkt ist das Ceiling. Am besten für isolierte Dienst-Tests.
- Produktions-Feuerlösch-Übung: Reduzieren Sie die Kapazität in der Produktion (leeren Sie einen Prozentsatz von Servern, töten Sie eine Region) & beobachten Sie, wie die verbleibende Kapazität mit echtem Verkehr umgeht. Testet echtes Produktionsverhalten einschließlich unerwarteter Interaktionen. Höchstes Vertrauen, aber höchstes Risiko.
- Shadow Load: Replay echten Produktionsverkehr bei einem Zieldienst, der parallel zur Produktion läuft. Erfasst echte Workload-Muster (seltene Abfrage-Mix, komische User-Agenten), ohne Benutzer zu beeinflussen. Starker Mittelweg.
Headroom ist der Puffer zwischen aktuellem Load & dem Ceiling. SRE-Faustregeln:
- 50% Headroom im stetigen Zustand für einen Dienst mit einzelner Region (sodass ein Region-Fehler die überlebende Region nicht ausschöpft)
- 30% Headroom für einen Mehrregion-Dienst mit N+2 Redundanz
- 100%+ Headroom beim Nähern bekannter Peak-Events (Black Friday, Sportfinale)
Headroom ist kein Abfall. Es ist der Preis, um keine Ingenieure um 3 Uhr morgens anzurufen, keine Kunden während eines Spike zu verlieren & keine Kaskadenfehler zu erleiden, wenn eine Region ausfällt. Finance-Teams pushen manchmal, Headroom zu reduzieren; Capacity-Ingenieure müssen die Kosten des eng laufens artikulieren, um dieses Gespräch sachlich statt emotional zu machen.
Entwerfen Sie einen Ceiling-Test
Sie erben einen Dienst ohne dokumentiertes Capacity-Ceiling. Aktueller Produktion-Load ist 800 Anfragen pro Sekunde über 12 Server, durchschnittliche CPU 35%. Marketing kündigt eine Kampagne in 6 Wochen an, die Verkehr auf 3.000 RPS Spitze voraussichtlich treibt.
Auf, Raus oder Diagonal
Wann Leistung hinzufügen, Boxen hinzufügen oder beides
Drei Kern-Skalierungsstrategien, jeweils mit unterschiedlichen Kosten- & Zuverlässigkeitsprofilen:
Vertikale Skalierung (Aufskalierung): Größere Maschinen. Ersetzen Sie 8-Kern-Server mit 32-Kern-Servern. Einfachster Weg; funktioniert, bis Sie einzelne Maschinenlimits treffen. Single Point of Failure bleibt. Die Kosten wachsen nicht-linear: Eine 32-Kern-Maschine kostet oft mehr als das 4-fache einer 8-Kern.
Horizontale Skalierung (Auswärts-Skalierung): Mehr Maschinen. Fügen Sie Server hinter einem Load-Balancer hinzu. Die Kapazität skaliert linear mit der Serveranzahl. Ausfallmodi verschieben sich: Sie müssen verteilte Koordination verarbeiten, aber ein einzelner Server-Fehler zerstört den Dienst nicht mehr. Die operative Komplexität erhöht sich.
Diagonale Skalierung (Allspaws Begriff): Skalieren Sie zuerst nach oben auf eine komfortable Größe pro Server, dann skalieren Sie von dort aus aus. Kombiniert einfachere Operationen großer Server mit der Redundanz mehrerer Server. Die meisten Produktionsdienste leben in Diagonale-Skalierungs-Territorium.
Reservierte versus On-Demand-Preisgestaltung: Cloud-Anbieter belohnen Vorhersehbarkeit. Reservierte Kapazität ist 30-60% billiger als On-Demand, erfordert aber eine 1-3-Jahres-Verpflichtung. Capacity-Planer sperren typischerweise stetigen Kapazitäts-Bedarf mit reservierter Kapazität & platzen in On-Demand für Spitzen. Eine Fehleinschätzung dieser Split kann Geld verschwenden (über-reserviert) oder Budget zu Überraschung exponieren (unter-reserviert während Spitzen).
Spot-Instanzen & unterbrechbare Workloads: 60-90% billiger als On-Demand, können aber mit Minuten-Anmerkung zurückgefordert werden. Geeignet für Batch-Jobs, Analytik, Training-Workloads oder jeden Dienst mit anmutiger Unterbrechung. Produktions-Benutzer-Facing-Verkehr vermeidet typischerweise Spot.
Wahl eines Skalierungspfads
Ihr Video-Transcodierungsdienst läuft auf 8 mittleren Cloud-Instanzen (8 Kerne jeweils). Sie erwarten 3x Wachstum über die nächsten 6 Monate. Die Workload ist CPU-gebunden, parallelisierbar pro Video, & jedes Video-Transcode dauert 90 Sekunden Ende-zu-Ende. Reservierte Instanzen kosten 50% von On-Demand. Spot-Instanzen kosten 30% von On-Demand, können aber mit 2-Minuten-Anmerkung beendet werden.
Capacity Planning Karrieren
Wo die Capacity Planning Fähigkeiten Lohn zahlen
Capacity Planning ist selten ein Job-Titel an sich. Die Fähigkeiten erscheinen unter mehreren Rollen:
Site Reliability Engineer: Capacity Planning ist eine Kern-SRE-Verantwortung. Die meisten SRE-Teams haben ein oder zwei Ingenieure, die sich auf Capacity spezialisieren, besitzen die Prognose-Modelle, Ceiling-Tests & Bereitstellungs-Automatisierung.
Cloud-Kosten / FinOps Engineer: Eine neuere Rolle, die sich auf Cloud-Ausgabenoptimierung konzentriert. Kombiniert Capacity Planning mit finanzieller Modellierung, Vertragsverhandlung & reservierte-Instanz Portfolio-Verwaltung. Bezahlt extrem gut bei großen Cloud-nativen Unternehmen, da Cloud-Rechnungen oft der zweitgrößte Ausgabenposten nach Lohnkosten sind.
Performance Engineer: Konzentriert sich auf Pro-Knoten-Effizienz & Ceiling-Tests. Die Aufgabe: Extrahieren Sie mehr Kapazität aus der gleichen Hardware durch Profiling, Optimierung & architektonische Änderungen. Schwere Systeme & Sprachruntime-Kenntnisse.
Capacity Planning Specialist: Bei sehr großen Unternehmen (Google, Meta, Amazon, Netflix) existieren dedizierte Capacity Planning Teams. Sie besitzen Prognose-Modelle über die gesamte Fleet, verhandeln Beschaffung in großem Maßstab & koordinieren mit Finanzen über Multi-Jahres-Hardware-Roadmaps.
Fähigkeiten, die zusammensetzen: Zeitreihen-Analyse (R, Python statsmodels, Prophet), Warteschlangen-Theorie (M/M/1, M/M/c, Little's Law), mindestens ein Konfigurationsmanagement-Werkzeug, mindestens ein Cloud-Kosten-Dashboard & die Fähigkeit, einen Prognosebericht zu schreiben, den ein CFO verstehen & handeln kann. Die technischen Fähigkeiten bringen Sie zum Interview; die Kommunikationsfähigkeiten bringen Sie zum Budget.
Zusammenfassung
Was Sie jetzt wissen
Capacity Planning ist eine kontinuierliche Disziplin, nicht eine jährliche Übung. Sie haben abgedeckt:
- Der Korridor zwischen Unterversorgung & Überversorgung
- Workload versus Auslastung als die zwei Dimensionen der Messung
- Trend, Saisonalität & Unsicherheitsgrenzen als die drei Schichten jeder Prognose
- Ceiling-Tests (synthetisch, Shadow, Feuerlösch) als die einzige Weise, echte Kapazität zu kennen
- Headroom-Puffer & warum sie kein Abfall sind
- Diagonale Skalierung & die reserviert/On-Demand/Spot Preis-Entscheidung
- Karriere-Pfade, wo diese Fähigkeiten Budgetautorität verdienen
Zwei Ideen sind am wichtigsten. Prognose mit Grenzen, nie mit einzelnen Punkten. Und messen Sie Ihr Ceiling, bevor die Produktion es tut. Nehmen Sie diese beiden mit & der Rest folgt.
Empfohlenes Lesen: Allspaws 'The Art of Capacity Planning' (O'Reilly, 2017 zweite Auflage), die relevanten Kapitel in Googles SRE-Buch (kostenlos bei sre.google/books/) & Brendan Greggs 'Systems Performance' für die zugrunde liegende Systemarbeit. Die Geometrie-Companion-Lektion geht tiefer auf die visuelle Struktur: Little's Law als Fläche, Warteschlangen-Kurven, Trend-Neigungen & Headroom-Umhüllungen.