Tipps zur Konstruktion von skalierbaren Softwaresystemen

Was du heute kannst besorgen, ...


Die Konstruktion von leistungsfähigen und skalierbaren Applikationen hängt zum einen von den eingesetzten Hardware-, Infrastruktur-, Betriebssystem- und Middleware-Plattformen ab. Trotzdem ist es keine reine Hardwarefrage, denn auch die installierten Softwaresysteme müssen so konstruiert sein, dass sie bei Einsatz von mehr Hardware tatsächlich skalierbar sind. Diese dreiteilige Artikelserie geht auf drei wichtige Themenbereiche ein, auf die man beim Design eines skalierbaren Softwaresystems verstärktes Augenmerk legen sollte. Der Fokus liegt dabei auf Softwaredesign, wobei ich auch Themen wie Datenhaltung und Betrieb streife.

Mithilfe verfügbarer Technologien und Frameworks ist es heute vergleichsweise leicht, sowohl kleine als auch große Softwaresysteme zu entwickeln. Das heißt jedoch nicht, dass sie auch skalierbar sind. Für all jene, die große Softwaresysteme konstruiert haben, ist das Folgende keine Überraschung: Große Softwaresysteme sind Belastungen ausgesetzt, die Verhalten erzeugen, das bei Systemen kleiner und mittlerer Größe nicht sichtbar wird. Die Symptome dieser Belastungen sind in den besten Fällen hohe Antwortzeiten. In den schlimmsten Fällen führen sie zu Systemstillständen oder gar -ausfällen. Natürlich können Systeme mithilfe von Last- und Performancetests gehärtet werden, um erst gar nicht in diese Situation zu kommen. Wurde der Grundstein zur Skalierbarkeit nicht bereits zum Zeitpunkt des Designs gelegt, können Umbauten zu einem späteren Zeitpunkt des Last- und Performancetests zeitaufwendig und teuer werden.

Artikelserie

Teil 1: Grundprinzipien zum Design skalierbarer Software

Teil 2: Skalierbarkeit für Fortgeschrittene: Nutzen Sie das Potenzial von Caches und Asynchronität

Teil 3: Wo selbst beim Datenzugriff und im Betrieb noch Potenzial ver­borgen liegt

Skalierbarkeit

Bei der Konstruktion von skalierbaren Systemen geht es nicht nur darum, mehr Hardware anzuschaffen, sondern auch Systeme zu schaffen, die so gestaltet sind, dass sie mit Einsatz von mehr Hardware auch tatsächlich skalierbar sind. Wie im Kasten „Skalierbarkeit und Durchsatz“ erklärt, ist ein System dann skalierbar, wenn man bei Erhöhung der Last und entsprechender Anpassung der Hardware auch eine Erhöhung des Durchsatzes erreichen kann. In der IT-Architektur-Terminologie unterscheidet man zwei Skalierungsparadigmen:

  • Vertikale Skalierung

  • Horizontale Skalierung

Vertikale Skalierung

Von vertikaler Skalierung sprechen wir dann, wenn die Leistungsfähigkeit eines Knoten...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang