Frage

Tag auch,

Ich habe den Artikel gelesen Quantifizieren im Buch „97 Dinge, die jeder Softwarearchitekt wissen sollte“ (Bereinigter Amazon-Link) und ich fragte mich, wie man die Skalierbarkeit quantifizieren kann.

Ich habe für ein großes britisches Rundfunkunternehmen zwei Systeme entwickelt, die es gewohnt sind:

  1. das Herkunftsland eingehender HTTP-Anfragen ermitteln, oder
  2. Bestimmen Sie die geeigneten Videoformate für die Bildschirmgeometrie und den aktuellen Verbindungstyp eines Mobiltelefons.

Beide Designs mussten Skalierbarkeit gewährleisten.

Meine Entwürfe für beide Systeme sind horizontal skalierbar hinter Caching-Lastausgleichsschichten, die dazu dienen, eingehende Anfragen für diese beiden Dienste zu verarbeiten und sie auf mehrere Server zu verteilen, die den Dienst selbst tatsächlich bereitstellen.Anfängliche Erhöhungen der Servicekapazität werden durch das Hinzufügen weiterer Server hinter der Lastausgleichsschicht erreicht, daher der Begriff „horizontale Skalierbarkeit“.

Die Skalierbarkeit dieser Architektur ist jedoch begrenzt, wenn die Lastausgleichsschicht Schwierigkeiten hat, den eingehenden Anforderungsverkehr zu bewältigen.

Ist es also möglich, die Skalierbarkeit zu quantifizieren?Wäre es eine Schätzung, wie viele zusätzliche Server Sie hinzufügen könnten, um die Lösung horizontal zu skalieren?

War es hilfreich?

Lösung

Ich denke, es ist in manchen Kontexten möglich ist - zum Beispiel Skalierbarkeit einer Web-Anwendung in Bezug auf der Anzahl der Nutzer, die Zahl der gleichzeitigen Anforderungen quantifiziert werden kann, Mittelwert und Standardabweichung der Antwortzeit, etc. Sie auch in der allgemeinen bekommen Zahlen für Bandbreiten- und Speicher, Transaktionen pro Sekunde und Wiederherstellungszeiten (für Backup und Disaster Recovery).

Sie können auch oft geben Zahlen in der Anwendungsdomäne - sagen wir mal das System zu kommentieren unterstützt, können Sie quantifizieren, was der Größenordnung der Anzahl der Kommentare ist, dass es zu speichern, in der Lage sein muss,

.

Es ist jedoch zu bedenken, dass nicht alles, was zählt, gemessen werden kann, und nicht alles, was zählt, gemessen werden kann. : -)

Andere Tipps

Ich denke, das kommt darauf an, was die Skalierbarkeit bedeutet, in einem bestimmten Kontext und daher wäre die Antwort es hängt .

Ich habe Dinge Skalierbarkeit Anforderungen gesehen, die einfach noch nicht vorhanden war. Zum Beispiel, dass ein neuer Kreditantrag Tool speziell benötigen rief auf dem iPhone und anderen mobilen Geräten in der Zukunft zu arbeiten.

Ich habe auch Skalierbarkeit gesehen verwendet, um potenzielle Erweiterung von mehr Rechenzentren und Web-Servern in verschiedenen Bereichen der Welt zu beschreiben die Leistung zu verbessern.

Die beiden obigen Beispiele können quantifizierbar sein, wenn es ein bekanntes Ziel für die Zukunft ist. Aber Skalierbarkeit kann nicht quantifizierbar sein, wenn es wirklich kein bekanntes Ziel oder Plan ist, das es sich um ein sich bewegendes Ziel macht.

Das richtige Maß für die Skalierbarkeit (nicht das einfachste;-) ist eine Reihe von Kurven, die den Ressourcenbedarf (CPUs, Arbeitsspeicher, Speicher, lokale Bandbreite usw.) und die Leistung (z. B.Latenz) geliefert, wenn die Last wächst (z. B.B. in Bezug auf Abfragen pro Sekunde, aber für einige Anwendungen können auch andere Maßnahmen wie der erforderliche Gesamtdatendurchsatz angemessen sein.Entscheidungsträger werden in der Regel fordern, dass solche genauen, aber komplexen Messungen auf ein paar Schlüsselzahlen (bestimmte Punkte auf einigen der verschiedenen Kurven) reduziert werden, aber ich versuche immer, genauere statt einfacher verständliche Messungen davon auszuhandeln Schlüsselkennzahlen!-)

Wenn ich an Skalierbarkeit denke, denke ich an Folgendes:

  • Leistung – wie reaktionsschnell die App für eine bestimmte Last sein muss
  • wie groß die Auslastung der App sein kann und zu welchen Stückkosten (wenn sie pro Server Software, Support usw. beinhaltet)
  • wie schnell Sie die App skalieren können und wie viel Puffer Sie über die Spitzenauslastung hinaus wünschen (wir können in 2–3 Stunden 50 % mehr Bandbreite hinzufügen und benötigen einen Puffer von 30 % über der geplanten Spitzenauslastung)

Redundanz ist etwas anderes, sollte aber ebenfalls einbezogen und berücksichtigt werden.

„Das System soll Skalierung als eine lineare Beziehung von X für Kosten / Benutzer zu halten“.

Hier ist eine Art und Weise:

„davon aus, dass ein einzelner Prozessor 100 Arbeitseinheiten pro Sekunde verarbeiten kann ...“

http://www.information-management.com/ Fragen / 19971101 / 972-1.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top