Was ist eigentlich … Skalierbarkeit?

Skalierbar darf als Buzzword neben lean und agile ja in keiner Produktbeschreibung mehr fehlen. Aber was genau verbirgt sich eigentlich hinter dieser Eigenschaft?

Ganz allgemein: Skalierbarkeit ist die Eigenschaft eines Objekts, sich einer Größe anpassen zu können. Eine Schrift in einem Textbearbeitungsprogramm ist meistens skalierbar, ebenso Bilder und andere Objekte, die Sie einfügen und vergrößern oder verkleinern (skalieren) können.

Der Bezahlvorgang in einem Supermarkt ist ebenfalls skalierbar, er passt sich der Menge der Einkäufer an. Will nur eine Person bezahlen, reicht es in der Regel aus, eine Kasse zu öffnen. Bei einem größeren Ansturm werden weitere Kasse geöffnet, um der Menge gerecht zu werden. Eine andere Möglichkeit wäre, die Kassen mit schnelleren Kassierern zu besetzen.

Im Bereich der Produktbeschreibung bezieht sich Skalierbarkeit meist auf eine Software. Auch hier kann die Leistung eines Systems durch das Hinzufügen von Knoten (beispielsweise weitere Kassen, Computer oder Server) gesteigert werden. Man spricht auch von horizontaler Skalierung. Werden zusätzliche Ressourcen (schneller Kassierer, mehr Speicher, …) zu den einzelnen Knoten hinzugefügt, um die Leistung zu steigern, spricht man von vertikaler Skalierung.

skalierbarkeit

Weiterhin kann zwischen Lastskalierbarkeit, räumlicher, zeit-räumlicher und struktureller Skalierbarkeit unterschieden werden. Ein System, welches sich, wie unser Supermarkt, an verschiedene Arbeitslasten anpasst und bei geringer Belastung genauso gut performt wie bei großem Ansturm, bezeichnet man als lastskalierbar. Räumlich skalierbar ist ein System, wenn dessen Speicherbedarf bei hoher Auslastung auf einem akzeptablen Level bleibt (wobei “akzeptabel” auch wieder so eine Definitionssache ist). Zeit-räumliche Skalierbarkeit beschreibt den Umstand, dass sich die hohe Auslastung nicht erheblich auf die Performance auswirkt. Strukturelle Skalierbarkeit steht letztlich für die Eigenschaft eines Systems, eine hohe Auslastung nicht zu behindern.

Dann gibt es noch den Skalierungsfaktor. Dieser beschreibt die Auswirkung einer hinzugefügten Ressource auf die Leistungsfähigkeit des Systems. Oder anders, er beantwortet die Frage, ob das Abkassieren durch öffnen einer zweiten Kasse tatsächlich doppelt so schnell geht. In diesem Fall, hätten wir eine linearen Skalierbarkeit – der Skalierungsfaktor des Systems bleibt beim Hinzufügen einer Ressource gleich (zwei Kassierer = doppelte Leistung). Erhöht sich der Skalierungsfaktor durch hinzufügen einer weiteren Ressource (zwei Kassierer = dreifache Leistung), nennt man das super-lineare Skalierung. Den umgekehrten Fall sub-lineare Skalierung.

Wieder was gelernt.