Herausforderungen an den Storage Cloud-native Anwendungen brauchen Cloud-native Speichersysteme
Anbieter zum Thema
Die Art und Weise, wie Unternehmen Software-Anwendungen entwickeln und betreiben, hat sich durch Cloud-native Anwendungen grundlegend verändert. Doch dieser Wandel hat nicht nur die App-Entwicklung selbst beeinflusst, sondern wirkt sich auch entscheidend auf die damit verbundene Infrastruktur aus.

Neue Technologien wie Containerisierung, serverloses Computing und Microservices zählen zu den Kernkompetenzen von Cloud-nativen Umgebungen. Unternehmen, die planen, solche modernen, Cloud-nativen Umgebungen, einschließlich der dazugehörigen Technologien, zu unterstützen, müssen sich darüber im Klaren sein, dass traditionelle Speicherinfrastruktur einfach nicht mehr ausreicht.
Stattdessen müssen Unternehmen für Cloud-native Anwendungen auch Cloud-native Speicherplattformen verwenden. Doch was bedeutet „Cloud-native“ überhaupt? Der Begriff ist nämlich so weit gefasst, dass er selbst Anwendungen umfasst, die gar nicht wirklich Cloud-native sind.
Cloud-native – mobil, skalierbar und dynamisch
Die Cloud Native Computing Foundation (CNCF) beschreibt Cloud-native Anwendungen als „skalierbare Anwendungen in modernen, dynamischen Umgebungen, wie etwa Public, Private und hybriden Clouds“. In der Praxis heißt das: Anwendungen, die über mehrere Standorte verteilt, leicht skalierbar und containerisiert sind und mittels Kubernetes verwaltet werden.
Cloud-native Speichersysteme müssen mobil und skalierbar sein und dieselben Technologien unterstützen, die auch von Cloud-nativen Umgebungen üblicherweise unterstützt werden. Oder anders ausgedrückt: Diese Systeme müssen in der Lage sein, Daten für „stateful“ Apps ordnungsgemäß zu verwalten. Gleichzeitig müssen die üblichen Herausforderungen von Cloud-nativen Umgebungen bei der Datenspeicherung bewältigt werden können. Dazu gehören beispielsweise die Herausforderungen, die mit der Verwaltung von Daten für Kubernetes-basierte Anwendungen verbunden sind.
Um möglichst effektiv zu sein, muss der Cloud-native Speicher in den folgenden sechs Kategorien überzeugen: Skalierbarkeit, Leistung, Konsistenz, Haltbarkeit, Bereitstellbarkeit und Verfügbarkeit.
Skalierbarkeit
Skalierbarkeit ist ein entscheidendes Merkmal, sowohl für Cloud-native Anwendungen als auch Umgebungen. Daher ist es selbstverständlich, dass auch Cloud-nativer Speicher einfach skalierbar sein muss. Die Gesamtskalierbarkeit einer Speicherplattform lässt sich anhand der folgende vier Kriterien einschätzen: Klientenskalierbarkeit (wie gut beziehungsweise leicht sich die Anzahl der Klienten oder Nutzer, die auf das Speichersystem zugreifen, erhöhen lässt), Kapazitätsskalierbarkeit (wie leicht die Speicherkapazität in einer einzigen Bereitstellung von Speichersystemen erhöht werden kann), Durchsatzskalierbarkeit (die Fähigkeit, mehr Durchsatz zu erzielen oder pro Sekunde größere Datenmengen zu verarbeiten) und Clusterskalierbarkeit (die Fähigkeit, einen Speichercluster durch die Bereitstellung zusätzlicher Komponenten zu vergrößern). Ein Cloud-nativer Speicher muss in allen dieser vier Bereiche stark skalierbar sein.
Leistung
Die Leistungsfähigkeit Cloud-nativer Speicherplattformen hat maßgebenden Einfluss auf Cloud-native Umgebungen, da diese in der Lage sein müssen, Lese- oder Schreibvorgänge schnell abzuschließen und eine beträchtliche Anzahl von Speicheroperationen pro Sekunde auszuführen. Außerdem müssen sie hohen Datendurchsatz liefern, der in MB/s oder GB/s gespeichert oder abgerufen werden kann.
Konsistenz
Ein weiterer wesentlicher Faktor für Cloud-native Speichersysteme ist Konsistenz. Plattformen gelten als konsistent, wenn Lesevorgänge nach dem Schreiben, Aktualisieren oder Löschen von Daten ohne Verzögerungen die aktuellste Version ausgibt, wobei gilt: Je schneller die Aktualisierung erfolgt, umso konsistenter das System. Stehen die Daten erst verzögert zur Verfügung, dann wird das System als nur bedingt konsistent eingestuft. In diesem Fall kann die Verzögerung als RPO (Recovery Point Objective) betrachtet werden, also der Ausgangszeitpunkt für die Wiederherstellung von Daten, da sie im Falle eines Komponentenausfalls das maximale Ausmaß des Datenverlusts darstellt.
Dauerhaftigkeit
Cloud-native Speicherlösungen müssen über eine lange Lebensdauer verfügen und vor Datenverlusten schützen. Langlebigkeit bedeutet jedoch mehr als nur ein zuverlässiges System – wirklich langlebige Plattformen müssen garantieren können, dass Daten über längere Zeiträume sicher gespeichert werden. Diese Systeme sollten Datenschutz auf mehrere Ebenen unterstützen (inklusive einer ausreichenden Anzahl an Backups) und mehrere Redundanzebenen (zum Beispiel lokale Redundanz, Redundanz über Regionen, Redundanz über verschiedene Verfügbarkeitszonen der Public Cloud hinweg und Redundanz zu entfernten Standorten) umfassen. Außerdem müssen die Systeme beschädigte Daten erkennen und automatisch wiederherstellen oder rekonstruieren können. Speichermedien, die über ihre Lebensdauer hinweg an Leistung verlieren, sowie Verschleiß, etwa durch ausfallende Komponenten, aufweisen, sind häufige Ursachen für beschädigte Daten.
Darüber hinaus sollten die spezifischen Speichermedien, aus denen eine Cloud-native Speicherplattform besteht (zum Beispiel SSDs, Spinning Disks und Bänder) auch physisch widerstandsfähig sein, um die Daten vor äußeren Gefahren wie Naturkatastrophen zu schützen.
Bereitstellbarkeit
Cloud-native Anwendungen sind extrem mobil und lassen sich problemlos über mehrere Standorte verteilen. Um diese Flexibilität zu gewährleisten, ist es wichtig, Speichersysteme nach Bedarf bereitstellen zu können. Dies erfordert einen Software-definierten, skalierbaren Ansatz, der es Unternehmen ermöglicht, die Speicherkapazität sofort zu erhöhen, ohne neue Geräte hinzufügen zu müssen. Dafür bietet sich eine Speicherarchitektur mit einem einzigen Namespace an. Da diese Systeme alle Nodes in einer globalen Peer-to-Peer-Datenstruktur miteinander verbinden, können bei Bedarf an jedem beliebigen Standort neue Nodes (und damit auch mehr Kapazität) hinzugefügt werden, alles unter Nutzung der bereits bestehenden Infrastruktur.
Verfügbarkeit
Zu guter Letzt muss Cloud-nativer Speicher hochverfügbar sein, das heißt im Falle eines Ausfalls sofortigen Zugriff auf die Daten bieten, unabhängig davon, wo der Fehler auftritt (zum Beispiel im Übertragungssystem, Speichermedium, Controller und so weiter). Um als hochverfügbar gelten zu können, muss die Software ausgefallene Komponenten erkennen, reparieren und wiederherstellen können, redundante Kopien auf einem separaten Gerät speichern und zudem ein Failover auf redundante Geräte durchführen.
Nicht nur in DevOps-Umgebungen
Abschließend lässt sich sagen, dass Cloud-native Anwendungen nicht mehr ausschließlich in DevOps-Umgebungen eingesetzt werden, sondern zunehmend auch in der Produktion. Dies gilt sowohl für „stateless“ als auch „stateful“ Cloud-Native-Apps. Da immer mehr Cloud-native Anwendungen reale Anwendungsfälle unterstützen – insbesondere zustandsabhängige Cloud-native Anwendungen –, benötigen Unternehmen eine Speicherinfrastruktur, die speziell auf diese Umgebungen ausgelegt ist.
Ein effektiver Cloud-nativer Speicher muss in allen sechs der oben genannten Bereiche überzeugen.
Natürlich sind die aufgeführten Kriterien nicht die einzigen, die es zu beachten gilt. Sicherheit, Verwaltbarkeit, Beobachtbarkeit und API-basierte Automatisierung sind ebenfalls wichtige Faktoren. Doch für Unternehmen, die Cloud-native Speicheroptionen ins Auge fassen, bietet die oben genannte Checkliste aus Skalierbarkeit, Leistung, Konsistenz, Haltbarkeit, Bereitstellbarkeit und Verfügbarkeit einen guten Ausgangspunkt.
* Sascha Uhl ist Object Storage Technologist bei Cloudian.
(ID:47829784)