Die IT befindet sich inmitten einer tektonischen Verschiebung. Nahezu alles an der Art und Weise, wie Unternehmen Anwendungen bereitstellen und entwickeln, ändert sich im Rahmen der so genannten digitalen Transformation.
Diese lässt sich nach Meinung von Pure Storage durch drei Hauptelemente charakterisieren:
- Erstens geht es um die digitale Befähigung von Prozessen innerhalb von Unternehmen und nach außen zu Kunden und Partnern.
- Zweitens ist sie stark von der Cloud beeinflusst – durch die tatsächliche Nutzung von Cloud-Ressourcen oder durch die Verwendung von Cloud-ähnlichen Betriebsmodellen.
- Drittens ändert sich auch die Art und Weise der Anwendungsentwicklung hin zu einem Modell der kontinuierlichen Integration und Bereitstellung, das häufige iterative Änderungen ermöglicht.
An der Spitze dieser drei Elemente steht die Containerisierung. Sie bietet die Möglichkeit, Anwendungen auf der Grundlage eines kontinuierlichen Entwicklungsmodells zu erstellen. Diese Anwendungen sind äußerst in sich geschlossen, hoch skalierbar und portabel sowie gleichzeitig granular in Bezug auf die von ihnen gekapselten Dienstkomponenten.
Es ist nicht nur nach Meinung von Pure Storage so, dass containerisierte Anwendungen, bereitgestellt und verwaltet über eine Orchestrierungsplattform wie Kubernetes, eine zentrale Rolle in der IT-Entwicklung des nächsten Jahrzehnts spielen werden. Laut Gartner werden bis 2025 85 Prozent der Unternehmen Container in der Produktion einsetzen, gegenüber 35 Prozent im Jahr 2019.
Container können mit einer viel höheren Dichte als herkömmliche virtuelle Workloads ausgeführt werden, was bedeutet, dass weniger Server erforderlich sind. Dies hat den Nebeneffekt, dass die Lizenzkosten und vor allem der Energiebedarf sinken. Aus diesen Gründen wird die Containerisierung zunehmend zur Grundlage von Kostensenkungsinitiativen und umfassenderen Geschäftsszenarien, wobei Unternehmen in der Regel 25 bis 40 Prozent der Anwendungen als Ausgangspunkt anstreben.
Wie sieht es aber mit Storage, Datensicherung, Backups, Snapshots, Replikation, Hochverfügbarkeit und Disaster Recovery aus? Diese Bereiche sind für die Anwendungsinfrastruktur eines Unternehmens von entscheidender Bedeutung, können aber bei containerisierten Prozessen eine Herausforderung darstellen. Bevor man sich mit der Lösung dieses Problems befasst, sollte man sich nach Meinung von Pure Storage ansehen, warum Container so wichtig sind und wie sie funktionieren.
Agilität einer containerisierten Anwendungsbereitstellung
Nehmen wir an, das Kerngeschäft eines Unternehmens konzentriert sich auf die häufige Einführung vieler neuer Produkte mit schnellen Nachfragespitzen und den damit verbundenen Analyseanforderungen. Es könnte sich beispielsweise um einen Ticketverkaufsbetrieb mit plötzlichen und massiven Umsatzspitzen handeln. Herkömmliche Anwendungen auf einer dreistufigen Architektur (Client, Server, Datenbank) würden sich nur langsam implementieren lassen, wären nicht gut skalierbar und würden bei hoher Nachfrage zusammenbrechen. Container wurden entwickelt, um genau eine solche Situation zu bewältigen.
Das liegt daran, dass Container die unzähligen Komponenten einer Anwendung kapseln. Dies bedeutet, dass viele solcher Microservices wiederverwendbar sind, wenn neue Anwendungen entwickelt werden – und sich schnell vermehren lassen, um den Anforderungen der Skalierung gerecht zu werden. Darüber hinaus enthalten Container die gesamte API-Konnektivität zu denjenigen, von denen sie abhängen, und können auf zahlreiche Betriebsumgebungen portiert werden. So kann z. B. ein plötzlicher Anstieg der Nachfrage nach Veranstaltungstickets durch eine schnelle Vervielfältigung miteinander verbundener containerisierter Service-Instanzen aufgefangen und auf mehrere Rechenzentren, auch in der Public Cloud, übertragen werden.
Die technischen Grundlagen von Containern bestehen – stark vereinfacht – darin, dass es sich um eine Form der Virtualisierung handelt. Im Gegensatz zu virtuellen Servern laufen sie direkt auf dem Host-Betriebssystem und ohne einen zwischengeschalteten Hypervisor. Das bedeutet, dass Container eine schlanke virtuelle Maschine mit wesentlich höherer Granularität sind, die in der Regel separate Komponenten der gesamten Anwendung bereitstellt, die durch Code in Form von APIs verbunden sind.
So gibt es keinen Hypervisor und damit auch keinen Overhead, aber Container profitieren von einer Orchestrierungsschicht, bereitgestellt von Tools wie Kubernetes. Diese organisieren einen oder mehrere laufende Container – jeweils mit ihrem Code, ihrer Laufzeit, ihren Abhängigkeiten und Ressourcenaufrufen – in sogenannten Pods. Die Intelligenz zur Ausführung von Pods befindet sich über ihnen in einem oder mehreren Kubernetes-Clustern.
Storage- und Backup-Herausforderung bei Kubernetes
Eine der größten Herausforderungen, die es mit Kubernetes zu bewältigen gilt, ist die Speicherung und Sicherung von Daten. Die Wurzeln des Problems gehen auf die Ursprünge von Containern zurück, die zunächst als ephemere, also vorübergehende Instanz auf dem Laptop eines Entwicklers laufen sollten und für die die Datenspeicherung nur so lange bestand, wie der Container ausgeführt wurde. Seitdem sich Container in der Anwendungsentwicklung von Unternehmen durchgesetzt haben, ist dies jedoch nicht mehr möglich. Die meisten Anwendungen in Unternehmen sind zustandsorientiert, d. h. sie erstellen, interagieren mit Daten und speichern Daten.
Unternehmen, die Container mit Storage und Datensicherung auf Enterprise-Niveau bereitstellen möchten, müssen sich daher mit einer neu aufkommenden Produktgruppe befassen. Dabei handelt es sich um eine Container-Storage-Management-Plattform, von der aus sie Kubernetes betreiben und dessen Speicher- und Datensicherungsanforderungen bereitstellen und verwalten können.
Worauf gilt es in dieser Produktkategorie zu achten?
Ein wichtiger Punkt ist, dass jedes Kubernetes-Storage-Produkt Container-nativ sein sollte. Das bedeutet, dass die Speicheranforderungen einer Anwendung selbst als containerisierte Microservices bereitgestellt werden. Die Anforderungen an Bereitstellung, Konnektivität und Leistung werden dabei als Code geschrieben, mit all der Dynamik und Agilität, die dies mit sich bringt. Dies steht im Gegensatz zu anderen Methoden wie CSI (Container Storage Interface), die sich auf fest programmierte Treiber für den Speicher, der den Containern zugewiesen ist, verlassen.
Eine softwaredefinierte, Container-native Kubernetes-Speicherplattform sollte Zugriff auf Block-, Datei- und Objektspeicher bieten und in der Lage sein, auch auf Cloud-Speicher zurückzugreifen. Ziel ist es dabei, die zentralen Merkmale und Vorteile der Containerisierung und Kubernetes nachzubilden. Das bedeutet, dass die Daten genauso portabel sein sollten wie die containerisierte Anwendung, dass sie über eine gemeinsame Steuerungsebene verwaltet werden sowie autonom skalieren und selbstheilend sein sollten.
Was die Datensicherung betrifft, bietet eine solche Plattform im Idealfall alle wichtigen Methoden zur Sicherung von Daten, einschließlich Backups und Snapshots, synchroner und asynchroner Replikation und Migrationsfunktionen. Auch hier sollte die Cloud als Quelle oder Ziel in diesen Vorgängen berücksichtigt werden können. Um die Skalierbarkeit von Kubernetes-Umgebungen zu bewältigen, muss das Produkt in der Lage sein, Cluster, Knoten und Container zu verwalten, die zu Hunderten, Tausenden bzw. Hunderttausenden laufen, mit einer verwaltbaren Speicherkapazität von mehreren zehn Petabyte. Schließlich sollte es intelligent sein und über ein regelbasiertes, automatisiertes Management verfügen. Dieses ermöglicht unter anderem das Erstellen, Replizieren und Löschen von Containern entsprechend den voreingestellten Überwachungsauslösern sowie die Bereitstellung und Größenanpassung von Speicher nach Bedarf.
IT-Verantwortliche, die eine derartige Lösung, die all diese Kriterien erfüllt, gefunden und implementiert haben, werden erkennen, warum 85 Prozent der Unternehmen bis 2025 auf Container setzen werden. Sie werden sich zudem fragen, warum sie diesen Schritt nicht bereits früher gewagt haben.
www.purestorage.com