Cloud Basics: Wie unterscheiden sich Elastizität und Skalierbarkeit im Cloud Computing?

Oft werden Skalierbarkeit (Scalability) und Elastizität (Elasticity) synonym verwendet, sind eigentlich aber nicht ganz dasselbe im Bereich Cloud Computing. In unserem neuen Themenabschnitt Cloud Basics werden wir zukünftig Grundlagen und wichtige Fachbegriffe aus dem Bereich Cloud Computing besprechen.

„Skalierbarkeit“ und „Elastizität“ beziehen sich auf eine Anpassungsfähigkeit an Veränderungen im Umfeld der Cloud-Umgebung, nämlich auf die Fähigkeit, sich bedarfsweise ausdehnen und zusammenziehen zu können. Wenn Workload Volumen zunehmen, erfordert dies die Zuteilung und das Hinzufügen von weiteren Ressourcen bzw. deren Rücknahme oder Umschichtung, wenn die Nachfrage abnimmt/sinkt.
Das Cloud Computing selbst wird auch auf sehr unterschiedliche Weise interpretiert, umfasst aber in der Regel die Anforderungen Self-Service, Ressource Pooling und die Bereitstellung von On-Demand-Computing-Ressourcen, welche Skalierbarkeit und Elastizität gleichermaßen erfordern.

Elastizität

Die Elastizität in Cloud-Infrastrukturen beinhaltet, dass dem Hypervisor ermöglicht wird, virtuelle Maschinen (VMs) oder Container mit den verfügbaren Ressourcen zu erschaffen und so die Echtzeit-Nachfrage zu befriedigen.

Skalierbarkeit

Skalierbarkeit wird oft auf der Anwendungsebene (application layer) diskutiert. Skalierbarkeit hebt die Fähigkeit eines Systems, Netzwerks oder Prozesses hervor, eine wachsende Menge an Workloads zu handhaben bzw. deren Möglichkeit, sich selbst so vergrößern zu können, um das Wachstum zu ermöglichen. Während Skalierbarkeit möglicherweise Elastizität voraussetzen kann, kann sie auch durch Über-Provisioning erreicht werden.

Es werden zwei Arten von Skalierbarkeit unterschieden:

Darstellung

Die erste Variante ist „Scale Vertically oder Scale-Up“ – diese Art von Skalierbarkeit kann mit jeder Anwendung in begrenztem Umfang arbeiten. In einer elastischen Umgebung würde die Skalierung erreicht werden, indem die Anwendung entweder zu einer größeren virtuellen Maschine transferiert wird oder durch eine Vergrößerung der betroffenen VM.

Die zweite Variante ist „Scale Horizontally oder Scale-Out“, bei der weitere Instanzen der Anwendungsebenen auf zusätzliche virtuelle Maschinen provisioniert werden, um dann die Last zwischen ihnen zu teilen.

Horizontale Skalierung ähnelt sehr der Elastizität bzw. wird durch diese bedingt. Horizontale Skalierung ermöglicht die Neuaufteilung von Ressourcen zwischen den Anwendungen durch die automatische Bereitstellung oder Reduzierung von virtuellen Maschinen. Die Zuweisung und Freigabe der Ressourcen läuft dabei in Echtzeit ab und basiert auf Standard-Einstellungen oder vordefinierten Policies. Eine manuelle Steuerung ist nicht mehr notwendig. Horizontale Skalierung wird bedingt durch die Infrastruktur-Elastizität, aber die Anwendung muss ebenfalls skalieren können, indem mehr Nodes hinzugefügt oder Lasten verteilt werden können.

Elastizität und Skalierbarkeit in der Praxis

Für Anwendungen mit ungleichmäßiger Nutzung oder mit aufkommenden „Spikes“ innerhalb bestimmter Zeitabstände, ist die Einbindung von Elastizität und Skalierbarkeit von entscheidender Bedeutung. Diese Applikationen sollten so angelegt sein, dass sie Schwankungen der Real-Time-Nachrfrage nach Ressourcen wie Bandbreite, Speicher (Storage) und Rechenleistung (Compute Power) aufspüren können. Allerdings wurden die meisten Legacy-Anwendungen dafür entwickelt, um auf einer einzigen Maschine zu laufen und erfordern eine Anpassung des vorhandenen Codes, damit sie die notwendige Anpassungsfähigkeit an eine skalierbare und elastische Cloud-Umgebung erhalten.

Danach stellt sich die Frage, wo die Anwendung gehostet werden soll – in einer privaten oder öffentlichen Cloud. Die mögliche Workload-Nachfrage ist eine der Überlegungen, neben der Datensensibilität, Kosten und anderer Faktoren. In der Regel sind sporadisch ansteigende Workloads in einer Public Cloud besser aufgehoben oder innerhalb einer Private Cloud, die „Cloud Bursting“ nutzen kann. Workloads mit stetiger Nutzung profitieren oft, wenn sie innerhalb einer privaten Cloud gehostet werden, sowohl aus Kosten- als auch Leistungsperspektive.

Verwendete Quellen:
Dieser Artikel basiert hauptsächlich auf einer Übersetzung des durch stratoscale im Dezember 2015 veröffentlichten Blog-Artikels [GEEK TALK] What’s the Difference between Elasticity and Scalability in Cloud Computing
Zudem interessant
http://searchcio.techtarget.com/definition/horizontal-scalability
Recommended Posts