Flexibilität ist gefragt

Was ist Skalierbarkeit?

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

In der IT gelten Prozesse als skalierbar, wenn sie mit den vergebenen Aufgaben wachsen oder zurückentwickeln können.
In der IT gelten Prozesse als skalierbar, wenn sie mit den vergebenen Aufgaben wachsen oder zurückentwickeln können. (Bild: © djama - stock.adob.com)

Mit Skalierbarkeit wird die Fähigkeit einer IT-Anlage oder eines Systems verstanden, sich den wachsenden oder auch schrumpfenden Anforderungen hinsichtlich der Leistungsfähigkeit auf Hardware- und Software-Ebene anpassen zu können. In der Praxis bedeutet Skalierung jedoch: Wachstum.

Eine IT-Anlage oder ein System, das erfolgreich skaliert wurde, funktioniert auch dann noch, wenn sie oder es in Größe oder Volumen verändert wurde, um die neuen Anforderungen eines Betreibers zu erfüllen. Doch Skalierbarkeit bedeutet nicht nur, dass die neu skalierte Anlage oder Anwendung funktioniert, sondern dass auch dessen Vorteile nutzbar sind.

So gilt beispielsweise eine Anwendung als skalierbar, wenn sie von einem kleineren auf ein größeres Betriebssystem übertragen werden kann, um von den Vorteilen eines umfangreicheren Betriebssystems in Form von kürzeren Antwortzeiten oder einer größeren Anzahl von Usern zu profitieren.

Im Grunde gestaltet sich eine Skalierung nach oben einfacherer als nach unten. Dies ist der Tatsache geschuldet, dass die Entwickler dafür oftmals sämtliche Ressourcen eines Systems bedienen müssen. Eine Skalierung nach unten zeigt unter anderem, ob eine ähnliche Performance auch in einer „kleineren“ Umgebung realisierbar sein kann.

Vertikale versus horizontale Skalierung

Die Leistung eines Systems kann auf zwei verschiedene Arten gesteigert werden:

Vertikale Skalierung (scale up)

Werden Ressourcen innerhalb einer logischen Einheit hinzugefügt, so liegt eine vertikale Skalierbarkeit (Scale up) vor. Das heißt, die Leistungssteigerung entsteht durch das Hinzufügen von Ressourcen zu einem Knoten/Rechner innerhalb des Systems.

Beispiele dafür wären: das Vergrößern von Speicherplatz, das Hinzufügen einer CPU, Aufrüstung von Arbeitsspeichern, der Einbau einer leistungsstärkeren Grafikkarte oder das Ersetzen von weniger leistungsfähigen Bauteilen. Für das Cloud Computing bedeutet das beispielsweise, dass die Virtual Machines (VM) erweitert werden.

Bei einer vertikalen Skalierung lässt sich die Software sehr leicht anpassen oder eine Anpassung ist bisweilen überhaupt nicht erforderlich. Meist muss keine Zeile Code geändert werden, um eine Leistungssteigerung durch vertikales Skalieren zu erhalten. Jedoch stößt man früher oder später an eine Grenze, bei der ein Rechner nicht weiter aufrüstbar ist, weil bereits die beste Hardware verwendet wird.

Horizontale Skalierung (scale out)

Aus der Sicht der Hardware sind bei der horizontalen Skalierung (scale out) im Gegensatz zur vertikalen Skalierung keine Grenzen gesetzt. Denn hier ist die Leistungssteigerung eines Systems durch das Hinzufügen zusätzlicher Rechner/Knoten gemeint. Andererseits hängt die Effizienz dieser Skalierung stark von der Implementierung der Software ab, da sich nicht jede Software gleich gut parallelisieren lässt.

Anders gewendet könnte man sagen, eine horizontale Skalierung liegt dann vor, wenn weitere Instanzen hinzukommen, damit die steigende Workload mit gleichbleibender Performance verarbeitet werden kann. In einem Rechenzentrum verteilen sich dann die anstehenden Aufgaben auf mehrere Rechner oder Server. Dies wird in der Praxis dadurch gelöst, dass ein Rechner davon als Verteiler für die Workloads der anderen agieren muss.

Die Koordination als Lastverteiler ist immer dann nötig, wenn viele Ressourcen-Einheiten zusammen in einer horizontalen Skalierung arbeiten sollen. Daher ist der so genannte Skalierbarkeitsfaktor (Verhältnis von zusätzlicher Leistung zu zusätzlich eingesetzten Ressourcen) bei einer horizontalen Skalierbarkeit im Allgemeinen niedriger.

Die horizontale Skalierung ist häufig kostengünstiger als eine vertikale Skalierung. Wobei eine vertikale Skalierung hinsichtlich der Overheads vielfach wesentlich effizienter ist als eine horizontale Skalierung.

Schichtenmodell erleichtert Skalierung

Damit sich ein System möglichst gut skalieren lässt, sollte es idealerweise als ein Schichtenmodell aufgebaut sein. Auf diese Weise werden einzelne Schichten logisch voneinander abgetrennt und jede einzelne Schicht kann für sich skaliert werden.

So ist beispielsweise im Web-Bereich eine 3-Schichten-Architektur sehr populär. Wichtig dabei: Jede der drei Schichten muss so aufgebaut sein, dass sie eine hohe Skalierbarkeit ermöglicht.

Die Präsentationsschicht erlaubt eine relativ einfache horizontale Skalierung. Bei der Logikschicht ist dagegen eine eigens dafür ausgerichtete Implementierung des Codes unabdingbar. Gleichzeitig muss ein möglichst großer Anteil der Logik parallelisierbar sein. Für die Datenhaltungsschicht kommt eine horizontale Skalierung zur Anwendung.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46000030 / Definitionen)