Die richtige Storage-Lösung für die moderne Software-Entwicklung

Clemens Siebler, Manager Solution Architects EMEA bei NetApp und Experte für
NetApp SolidFire

Autor/Redakteur: Clemens Siebler, Manager Solution Architects EMEA bei NetApp und Experte für NetApp SolidFire/gg

Unternehmen stehen vor der Herausforderung, schnell und agil neue Produkte auf den Markt bringen zu müssen. Dafür setzen sie zunehmend auf DevOps-Verfahren und Container-Technologie. Doch damit IT-Experten die neuen Möglichkeiten voll ausschöpfen können, brauchen sie eine geeignete Infrastruktur im Hintergrund. Eine wichtige Rolle spielt dabei der Speicher.

Wer sich im Wettbewerb behaupten will, muss in der Lage sein, flexibel auf veränderte Marktanforderungen und Kundenwünsche zu reagieren. Die Voraussetzung: kürzere Software-Release-Zyklen. Um dies zu erreichen, wenden viele Unternehmen DevOps-Methoden an. Sie dehnen agile Methoden aus der Entwicklung auf den IT-Betrieb aus und automatisieren dabei so viele Prozesse wie möglich. Ein Beispiel ist die testgetriebene Software-Entwicklung. Sie kehrt die übliche Vorgehensweise um: Statt erst zu implementieren und dann zu testen, überlegen Entwickler vorab, wie sie ein Feature automatisiert testen können. Zudem sind viele Anwendungen heute für den Einsatz in einer Cloud-Umgebung gedacht. Hier kommt die Container-Technologie ins Spiel. Sie kapselt alles, was eine Applikation zum Funktionieren braucht, in ein Paket. Dadurch lässt sich eine Anwendung ohne Konfigurationsaufwand automatisiert in verschiedenen Umgebungen ausrollen.

Schnelle Performance für Continuous Integration und Continuous Delivery

Zu den gängigen DevOps-Methoden zählen Continuous Integration und Continuous Delivery. Code wird nicht mehr zu festgelegten Zeiten, sondern fortlaufend integriert. Jeder Entwickler im Team legt dafür seinen Beitrag in einem zentralen Repository ab. Kompilier- und Packingprozesse erfolgen automatisiert, ebenso wie die Testabläufe. Hier zahlt sich ein performanter Speicher aus. Je mehr Input/Output Operations (IOPS) pro Sekunde er leisten kann, und desto mehr Effizienzfeatures wie zum Beispiel Cloning unterstützt werden, desto schneller erhalten Entwickler die Testergebnisse und desto eher können sie auf eventuelle Fehler reagieren. Während Tests früher, bedingt durch viele Kopiervorgänge, mehrere Stunden dauerten und oft über Nacht abliefen, benötigen sie mit einer modernen All-Flash-Lösung oft nur wenige Minuten.

Automatisiertes Klonen

Testen nimmt einen wichtigen Stellenwert in der Software-Entwicklung ein. Um aussagekräftige Ergebnisse zu erzielen, brauchen Mitarbeiter eine möglichst produktionsnahe Testumgebung. Das können moderne All-Flash-Systeme unterstützen. Sie ermöglichen es, eine Produktionsdatenbank auf Knopfdruck zu klonen, sodass Entwickler ihre Applikationen unter denselben Bedingungen testen können wie in der Produktivumgebung. Auch wenn ein Datenbank-Update erforderlich ist, bringt diese Funktion einen entscheidenden Vorteil. IT-Verantwortliche können erst einmal in der Testumgebung prüfen, ob die neue Version Konflikte verursacht, bevor sie sie produktiv schalten. Das vermeidet Komplikationen.

Keine Chance für „laute Nachbarn“

Entwickler setzen häufig Plattformen wie OpenShift oder Kubernetes ein. Diese sind darauf ausgelegt, dass mehrere Teams gleichzeitig an unterschiedlichen Applikationen arbeiten. Damit sich die Anwendungen nicht gegenseitig die Speicher-Performance streitig machen, muss der Storage das sogenannte Noisy-Neighbour-Problem lösen. Herkömmliche Systeme vergeben Ressourcen nach dem Prinzip: Wer am lautesten schreit, bekommt am meisten. Das kann dazu führen, dass eine Performance-hungrige Applikation sich den Großteil der Ressourcen schnappt und für die Nachbarn zu wenig übrigbleibt. Mit einer modernen All-Flash-Lösung wie SolidFire können IT-Verantwortliche die Ressourcen-Verteilung kontrollieren: Allen Applikationen steht zunächst die gesammelte Performance aller Speicherknoten zur Verfügung. Für jedes Volume lässt sich dann ein maximaler, ein minimaler und ein Burst-Wert festlegen. Der Minimalwert bezeichnet die garantierten IOPS. Dadurch beeinträchtigen sich parallele Entwicklungs- und Testumgebungen nicht, auch wenn sie auf derselben Plattform laufen. Sie können sogar auf derselben Plattform laufen wie die Produktivumgebung. Entwickler sparen sich dadurch den Aufwand, zusätzliche Hardware aufzusetzen.

Automatisiertes Management

Je weniger Zeit die Storage-Provisionierung kostet, desto schneller können Entwickler auf die Ressourcen zugreifen, die sie für ihre Projekte benötigen. Ideal ist deshalb eine Storage-Lösung, die sich einfach und weitgehend automatisiert managen lässt. Administratoren definieren in SolidFire dafür zunächst verschiedene Policies. Darin legen sie unterschiedliche Volume-Typen fest und weisen ihnen Minimum-, Maximum- und Burst-Werte zu. Benötigt ein Entwickler künftig Speicher für ein Projekt, kann er diesen selbst auf Knopfdruck bereitstellen. Der Prozess erfolgt anhand der Policies automatisiert und erfordert keinen Administrationsaufwand. Dadurch gewinnen IT-Verantwortliche Zeit für andere Aufgaben. Entwickler können autarker agieren und müssen nicht erst Storage beantragen.