Horizontal Scaling

Concept

Was das ist

Horizontal Scaling ist eine Technik, bei der die Kapazität eines Systems durch das Hinzufügen weiterer Nodes erhöht wird, anstatt einzelne Nodes mit mehr Rechenressourcen auszustatten (letzteres wird als vertikale Skalierung bezeichnet). Angenommen, wir haben ein System mit 4 GB Arbeitsspeicher und wollen seine Kapazität auf 16 GB RAM erhöhen. Horizontal Scaling bedeutet also, dass wir 4 x 4 GB RAM hinzufügen, anstatt auf ein System mit 16 GB RAM umzusteigen.

Dieser Ansatz erhöht die Leistung einer Anwendung, indem neue Instanzen oder Nodes hinzugefügt werden, um die Arbeitslast besser zu verteilen. Einfach ausgedrückt, soll so die Last auf dem Server verringert werden, anstatt die Kapazität des einzelnen Servers zu erhöhen.

Probleme, die damit gelöst werden

Wenn die Nachfrage nach einer Anwendung die aktuelle Kapazität der Anwendungsinstanz übersteigt, müssen wir einen Weg finden, das System anzupassen (die Kapazität zu erhöhen). Wir können entweder mehr Nodes zum System hinzufügen (Horizontal Scaling) oder mehr Rechenressourcen zu den bestehenden Nodes hinzufügen (Vertical Scaling).

Wie es hilft

Horizontal Scaling ermöglicht es den Anwendungen, sich an die Grenzen des zugrunde liegenden Clusters anzupassen. Wenn du dem System weitere Instanzen hinzufügst, kann die Anwendung eine größere Anzahl von Anfragen bearbeiten. Wenn ein einzelner Node 1.000 Anfragen pro Sekunde bewältigen kann, sollte jeder zusätzliche Node die Gesamtzahl der Anfragen um etwa 1.000 Anfragen pro Sekunde erhöhen. So kann die Anwendung mehr Arbeit gleichzeitig erledigen, ohne dass die Kapazität eines bestimmten Knotens erhöht wird.