Frage

Wenn man über Frameworks Lesen (.net. Ruby on Rails, django, Feder, etc.), halte ich sehen, so und so tut oder skaliert nicht gut.

Was bedeutet es, wenn jemand sagt, dass ein Rahmen „skaliert gut“ und was bedeutet es, einen Rahmen zu sagen „nicht skaliert gut“?

Danke.

War es hilfreich?

Lösung

Wenn Sie eine Ressourcennutzung (Speicher, Zeit, Speicherplatz, Netzwerkbandbreite) plotten gegen gleichzeitige Benutzer, erhalten Sie eine Funktion, die beschreibt, wie die Anwendung auf verschiedenen Skalenfaktoren arbeitet.

Kleine - ein paar Benutzer -. Verwendet einige Ressourcen

Groß - eine große Anzahl von Benutzern -. Verwendet eine große Anzahl von Ressourcen

Die entscheidende Frage ist „wie nahe linear die Skalierung ist?“ Wenn es linear skaliert, dann 2000 gleichzeitige Benutzer dienen kostet 2 mal so viel wie Portion 1.000 Benutzer und 4-mal so viel wie Portion 500 Benutzer. Dies ist ein Werkzeug / Rahmen / Sprache / Plattform / Betriebssystem, das gut skaliert. Es ist vorhersehbar, und die Vorhersage ist linear.

Wenn es nicht linear skaliert, dann 4.000 Benutzer dienen kostet 1.000-mal so viel wie 2.000 Benutzer dient, die das 100-fache kosten dienen 500 Benutzer. Das ist nicht gut skalieren. Etwas ist schief gelaufen als Nutzung stieg; es nicht vorhersehbar erscheinen, und es ist nicht linear.

Andere Tipps

Es bedeutet, dass ein bestimmte Rahmen tut (oder nicht) erfüllt die steigende Nachfrage, die mehr Nutzer auf sie. Wenn Sie eine Anwendung geschrieben in VBScript haben, kann es nicht eine gute Arbeit des Umgangs mit den 40 Millionen Nutzer von Facebook, zum Beispiel tun.

Dieser Blog-Eintrag erklärt einige die Skalierbarkeit Schmerzen erlebte Twitter ein Jahr oder so vor. Es könnte etwas mehr Einblick in die Antwort auf Ihre Frage geben.

Manchmal Mangel an Skalierbarkeit verwendet, um eine Sprache oder Rahmen, schlecht zu machen, so dass für aufpassen. Halten Sie sich an Studien, die realen Messwerte zeigen. Dies gilt für mein VBScript Beispiel im vorigen Absatz als auch.

Wenn ein Rahmen oder eine Anwendung gut skaliert, bedeutet dies, dass sie größere Lasten bewältigen können. Wie Sie Ihre Website wird pro Tag mit mehr Besuchern und mehr Treffer immer beliebter, ein Framework, das gut skaliert die größere Last der gleiche Griff, da sie eine geringere Belastung verarbeitet. Ein Rahmen, der gut skaliert wird das gleiche handeln, wenn es 200.000 Zugriffe pro Stunde erhält, wie es tut, wenn er bekommt 1 Stunde getroffen. Nicht nur trifft, sondern auf mehrere Server eingesetzt werden, möglicherweise hinter den Lastausgleich, möglicherweise mit mehreren verschiedenen Datenbankservern. Ein Rahmen, der gut skaliert kann diese steigenden Anforderungen gut behandeln.

Zum Beispiel twitter explodierte fast über Nacht im letzten Jahr. Es wurde mit Ruby on Rails entwickelt, und es wurde in der laufenden Debatte über heiß kennzeichnet, ob Rails skaliert gut oder nicht.

ersetzen den Ausdruck "Griff Expansion" für "Skala"

Es gibt einige Elemente, um es in meinem Kopf. Die erste ist die offensichtlichste - Leistungsskalierung. Kann Ihr Framework System mit hohem Durchsatz zu bauen Höhe Kapazität verwendet werden, oder es kann nur verwendet werden, kleinere Anwendungen zu bauen. Werde es vertikal auf Hardware (parallele Bibliotheken zum Beispiel) skalieren und wird es horizontal (Web-Farmen, zum Beispiel) skaliert werden.

Die zweite ist, kann es zu größeren Teams oder Unternehmen skalieren. Das heißt, es funktioniert gut mit großen Codebasen? Große Entwicklungsteams? Hat es eine gute Werkzeugunterstützung? Wie einfach ist es zu implementieren? Können Sie Dutzende oder Hunderte oder sogar Tausende von Benutzern ausrollen? Den ganzen Weg nach unten, ist es einfach, Leute zu mieten, die diese Fähigkeit haben. Denken Sie an versucht, ein Entwicklungsteam von 20 oder 50 Personen zusammen zu stellen, dass alle Arbeiten an diesem Rahmen. Wäre es einfach, oder so gut wie unmöglich sein?

IMHO und sagte, dass ein Rahmen „skaliert gut“ in der Regel bedeutet, dass jemand in der Hörensagen Kette der Lage war, es zu benutzen, viel Volumen zu behandeln.

In der parallelen Programmierung Skalierbarkeit ist in der Regel verwendet, um zu beschreiben, wie ein Algorithmus durchführt, wie es parallelisiert wird. Ein Algorithmus, der ein 1: 1 hat Speedup ist ein seltenes Tier aber in der Leistung auf das Doppelte der Hardware / CPU, Höhen auf dreimal die Hardware / CPU, etc ...

verdoppeln

Nach meiner Erfahrung kann praktisch jeder Rahmen gegeben ausreichende Expertise maßstab gemacht werden.

Je einfacher ist der Rahmen, desto größer ist die Chance zu nutzen, dass ein Entwickler mit ungenügendem Fachwissen in Skalierbarkeit Probleme laufen wird.

Es bedeutet, dass einige angesehenes Unternehmen etwas Ernstes mit ihm tut, und ist nicht mit keine Probleme mit ihm.

Die Skalierung bedeutet, wie einfach es mehr Nachfrage zu befriedigen, indem mehr Hardware verwenden ist.

Beispiel: Sie haben eine Website in einer Sprache geschrieben, die 1000 Besucher pro Tag bekommt. Sie erhalten in einigen prominenten magazin und die Anzahl der Nutzer wächst gekennzeichnet. Plötzlich haben Sie 1000000 Besucher pro Tag, das ist 1000-mal so viel. Wenn Sie nur 1000 mehr Server verwenden, um den gewachsenen Bedarf an Ressourcen gerecht zu werden, skaliert gut Ihre Website. Wenn auf der anderen Seite fügen Sie 2000-Server, aber immer noch können Benutzer keine Verbindung herstellen, da die Datenbank nur 1000 Anfragen pro Tag verarbeiten kann, als Ihre Website nicht gut skalierbar.

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