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:
[mk_image src=”https://www.scaleuptech.com/de/wp-content/uploads/2016/09/ScaleUp_und_ScaleOut_2.png” image_width=”900″ image_height=”478″ crop=”false” lightbox=”false” frame_style=”simple” target=”_self” caption_location=”inside-image” align=”left” caption=”© ScaleUp Technologies” margin_top=”52″ margin_bottom=”32″]
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 notwendigen Ü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. Kombinierte Lösungen wären die Hosted Private Cloud und die Managed Private Cloud. Hier stellt der Provider, entweder in seinem eigenen Rechenzentrum (Hosted Private Cloud) oder vor Ort beim Kunden (Managed Private Cloud), die Cloud Infrastruktur bereit und übernimmt neben der Bereitstellung auch Wartung, Updates und den Support.