Kapazitätsplanung ist die Kunst, die Zukunft vorauszusagen. Dabei geht es darum, herauszufinden, wie Sie ihre Sicht der Vergangenheit als Metrik auf die zukünftige Planung anwenden können.
Die Kapazitätsplanung ist unglaublich wertvoll, denn die Kapazitätserweiterung kann ein langsamer und teurer Prozess sein, selbst angesichts der modernen Technologie. Da wir in der Hierarchie der Zuverlässigkeit immer weiter nach oben rücken, sprechen wir jetzt über die Zukunft. Wie planen wir sie, wie sieht sie aus, und wie bewerten wir die Risiken und Probleme, die auftreten können?
Warum planen?
Der Grund für diese Planung und Vorbereitung liegt darin, dass es keinen Spaß macht, blindlings auf eine dunkle Straße zu rennen. Es mag die wahre Definition von Chaos sein, aber es ist vermeidbar .
Planung ist mühsam. Sie erfordert , dass Ihre Überwachungssysteme zuverlässig und umfassend sind. Sie erfordert ein gewisses Maß an Belastungstests. Sie erfordert Gespräche mit allen relevanten Personen im Unternehmen, von den Entwicklern, die den Code schreiben, über die Produktmanager und Führungskräfte , die die Ausrichtung des Unternehmens planen, bis hin zu den Vertriebsmitarbeitern (um den Strom der eingehenden Kunden zu verstehen und zu wissen,wie sich der Umfang des Produkts ändern wird) und den Finanzverantwortlichen, um zu verstehen, wie viel Geld wir haben und wie viel wir ausgeben können.
Festlegen eines Plans
Die Ausarbeitung eines Plans besteht aus einer Reihe von Schritten. Jeder Schritt erfordert die Bewertung einer Frage, um die Antwort zu finden:
1. Wie hoch ist unsere derzeitige Kapazität?
Es gibt viele Möglichkeiten, die Kapazität Ihrer Infrastruktur zu bestimmen. Sie können aggregierte Metriken wie CPU-Nutzung , Festplattenspeicherverfügbarkeit, Anfragen pro Minute, Pakete pro Sekunde oder beliebige Anwendungsmetriken verwenden. Normalerweise sollten Sie sich auf die Ressourcen konzentrieren, die Sie am meisten nutzen oder die für Sie am wichtigsten sind. Was am wichtigsten ist, ergibt sich oft aus Ihren SLOs und den dahinter stehenden SLIs (Service Level Indicators). Beachten Sie, dass es sich bei den Kennzahlen nicht unbedingt um serverseitige Kennzahlen handeln muss.
2. Wann wird unsere Kapazität erschöpft sein?
Sobald Sie über Metriken verfügen, die die aktuelle Kapazität definieren, besteht der nächste Schritt darin, herauszufinden, wann die Kapazität erschöpft sein wird.
Sie fragen sich vielleicht , warum wir uns die Mühe machen, diese Vorhersage zu treffen, wenn wir wissen, dass user System nicht statisch ist und sich mit der Zeit verändern wird. Die Antwort auf diese Frage lautet, die Zukunft zu ignorieren. Wir können nur wissen , wie unser Dienst jetzt funktioniert. Wir sagen nicht voraus, wie wir unseren Dienst verändern oder wie wir mehr oder weniger effizient werden, sondern vielmehr, wo unser Dienst angesichts des derzeitigen Wachstums im Laufe der Zeit stehen wird.
Angesichts dieser Daten wird unser Ziel hoffentlich nicht darin bestehen, die Leistung zu verbessern, sondern eher darin, für das Wachstum zu planen. Das heißt nicht, dass wir keine Daten verwenden sollten, um zu entscheiden, ob wir die Leistung unseres Systems verbessern sollten, aber es ist eine schlechte Idee, die Hoffnung auf Leistungsverbesserungen an unsere Kapazitätspläne zu knüpfen.
Einige hypothetische Beispiele dafür, warum dies eine schlechte Idee ist, sind:
=> Ihre neue Systemarchitektur verschlechtert die Leistung
=> Neue Funktionen verändern die Leistung drastisch
=> Niemand kann herausfinden, wie man die Leistung schnell verbessern kann
3. Wie sollten wir unsere Kapazität verändern?
Da wir nun einen groben Zeitplan haben, wann unsere Kapazität erschöpft sein wird, sollten wir einen Plan ausarbeiten, um dies zu verhindern. Es ist schwierig, darüber zu sprechen, weil sich die einzelnen Dienste in so vielen Punkten unterscheiden , aber wir können ein paar Dinge ansprechen, die Ihnen bei der Entscheidungsfindung helfen könnten.
Zunächst einmal geht es darum, wie man skaliert.
4. Führen Sie den Plan aus
Wenn Ihr Plan solide ist und Sie die Genehmigung für das Geld erhalten haben, können Sie beginnen, ihn umzusetzen. Ich lege alle Schritte des Plans gerne als separate Tickets in einem Ticket Tracker ab und füge dann für jedes Ticket Ereignisse in meinen Kalender
Architektur - woher die Leistungsänderungen kommen
Einer der häufigsten Gründe für drastische Leistungsänderungen sind Änderungen an der Infrastruktur. Man kann in den code eintauchen und Bugs finden oder tiefgreifende Untersuchungen zur Optimierung durchführen, aber in den meisten Fällen reicht es aus, einen Cache an der richtigen Stelle zu platzieren oder eine Abhängigkeit zu entfernen, um die Leistung um Größenordnungne zu verbessern. Ein schnelles Beispiel wäre eine einfache Webanwendung, der ein Content Distribution Network (CDN) vorangestellt wird. Dies ermöglicht eine globale Zwischenspeicherung von Inhalten, wodurch die Belastung Ihrer eigentlichen Anwendungen verringert wird, vorausgesetzt, die Inhalte können tatsächlich zwischengespeichert werden.
Aufgrund dieser erheblichen Leistungsveränderung können Architekturentscheidungen auch dramatische Auswirkungen auf die Kapazitätsplanung haben. Es wird dringend empfohlen, dass Sie versuchen, in die Planungsphasen für Architekturänderungen einbezogen zu werden. Hierfür gibt es zwei Gründe:
1. Sie wissen genau, wie die Infrastruktur funktioniert und wie der Code darauf läuft. Aufgrund dieser Kenntnisse können Sie die Dinge im Planungsprozess oft aus einer neuen Perspektive betrachten.
2. Die getroffenen Entscheidungen können und werden sich wahrscheinlich darauf auswirken, wie viele Ressourcen für andere Systeme zur Verfügung stehen. Einige Architekturentscheidungen könnten sich dramatisch auf andere Systeme auswirken oder die kosten Ihrer Infrastruktur in einem Maße erhöhen, das Sie sich nicht leisten können.
Technik als Profitcenter und Beschaffung
Die Technik kan je nach Unternehmen als Profitcenter oder als Kostenstelle betrachtet werden. Wenn die Technologie das Produkt ist , das Sie verkaufen , ist Ihr Team in der Regel ein Profitcenter, und wenn die Technologie Ihrem Unternehmen zum Erfolg verhilft, sind Sie stattdessen eine Kostenstelle. Wenn dies Ihrem Team zu sehr unter die Nase gerieben wird, kann es sich wie eine Beleidugung anfühlen. Ingenieure sind Konstrukteure und kreative Typen, und manche fühlen sich vielleicht unmotiviert oder deprimiert, wenn sie als nicht integraler Bestandteil des Unternehmenserfolgs angesehen werden. Das ist völliger Unsinn, aber es kommt vor. Eine Möglichkeit, dies aus den Köpfen Ihres Teams zu verbannen, besteht darin, härter für ein größeres Budget zu kämpfen. Oft bemerken Ingenieure den Unterschied erst, wenn sie feststellen, dass sie Dinge, die sie gerne tun würden, nicht tun können, weil sie nicht im Budget enthalten sind.
Fazit:
All dies ist für SRE wichtig, denn ein Mangel an Kapazität führt zu Serviceausfällen. Indem Sie mit Ihren Mitarbeitern zusammenarbeiten, können Sie Ihre langfristige Zuverlässigkeit verbessern, indem Sie einen Plan für künftige Ausfälle erstellen. Denken Sie daran, zunächst Ihre aktuelle Kapazität zu bestimmen, zu sehen, wie sie sich im Laufe der Zeit verändert, und sich dann Zugang zum Budget zu verschaffen, um sicherzustellen, dass Sie das prognostizierte Wachstum bewältigen können.
Keine Kommentare:
Kommentar veröffentlichen