Agile Software-Entwicklung benötigt schnelle Storage-Architekturen

Mit Scrum und All-Flash-Speichersystemen schneller entwickeln

| Autor / Redakteur: Oliver Krause / Rainer Graefen

Bei Scale-out-Systemen, etwa den All-Flash-Komponenten von NetApp SolidFire, wird die Kapazität erweitert indem zusätzliche Storage Nodes hinzugefügt werden.
Bei Scale-out-Systemen, etwa den All-Flash-Komponenten von NetApp SolidFire, wird die Kapazität erweitert indem zusätzliche Storage Nodes hinzugefügt werden. (Bild: NetApp)

Scrum zählt zu den bekanntesten Frameworks im Bereich der agilen Software-Entwicklung. Ein Kernelement von Scrum ist eine weitgehende Autonomie von Entwicklungs-Teams. Das wiederum erfordert eine hoch flexible Storage-Umgebung, die Entwickler eigenständig an ihre Anforderungen anpassen können.

Software im eigenen Haus zu entwickeln wird für Unternehmen immer wichtiger. Der Grund ist, dass ein Großteil der Betriebsabläufe in Firmen und öffentlichen Einrichtungen von Software abhängt. Dasselbe gilt für neue digitale Angebote und Geschäftsmodelle.

DevOps, Scrum und Wasserfall

Eine Studie im Auftrag des Digitalverbandes Bitkom ergab, dass 26 Prozent der Unternehmen in Deutschland verstärkt eigene Software entwickeln wollen. Unter den mittelständischen und größeren Unternehmen mit mehr als 500 Mitarbeitern sind es sogar 41 Prozent.

Derzeit beschäftigen rund 24 Prozent der deutschen Firmen eigene Software-Entwickler. Sie erstellen neue Apps und digitale Produkte, passen Standard-Programme an spezielle Anforderungen an und verbinden interne IT-Ressourcen mit einer Cloud-Umgebung.

Doch Software-Fachleute sind nur die halbe Miete. Ebenso wichtig ist, dass diese möglichst schnell und effizient Code schreiben oder modifizieren können. Deshalb kommen agile Entwicklungsmethoden wie DevOps und Scrum zum Einsatz.

Der IT-Direktor einer Spedition mit 3.700 Mitarbeitern, den das Beratungshaus PAC im Rahmen einer Studie zu kundenspezifischer Software-Entwicklung befragte, bringt es auf den Punkt: Seine Abteilung entwickle seit Jahren mit Scrum. Andere Ansätze, wie das Wasserfall-Modell, seien für schnelle Veränderungen am Frontend nicht geeignet.

Scrum: In "Iterationen" zum Software-Produkt

Scrum zählt neben DevOps zu den bekanntesten Frameworks für die Umsetzung agiler Software-Entwicklungsverfahren. Vereinfacht gesagt handelt es sich um eine Arbeitsform, bei der Teams von Entwicklern Software-Projekte in einzelne Schritte fester Größe ("Iterationen") aufteilen.

Ein Software-Produkt wird in einer Reihe solcher Iterationen entwickelt, so genannten Sprints. Ein Sprint, sprich Entwicklungsschritt, dauert je nach Projekt etwa zwei bis vier Wochen. Nach jeder Iteration erhalten alle Projektbeteiligten eine Rückmeldung. Scrum-Teams setzen sich aus Entwicklern, Testern, Designern und die für die Betriebstechnik zuständigen Fachleuten zusammen. Hinzu kommen ein "Product Owner", der für die Konzeption eines Software-Produkts zuständig ist, und ein Koordinator ("Scrum Master").

Ein Kernelement von Scrum ist die permanente Kommunikation zwischen allen Team-Mitgliedern. Sie erfolgt nach festen Regeln, um zeitintensive Meetings zu vermeiden. Dennoch räumt Scrum den Projektbeteiligten ein hohes Maß an Autonomie ein. Durch den intensiven Informationsaustausch ist jedes Team-Mitglied auf dem gleichen Wissensstand.

Herausforderung: Bereitstellung der Storage-Infrastruktur

Nach Einschätzung der Scrum Alliance , einer Fachorganisation für Scrum-Spezialisten, gilt es jedoch einige Klippen zu umschiffen, damit Scrum-Teams erfolgreich arbeiten können. Eine davon ist die schnelle und unkomplizierte Bereitstellung von IT-Ressourcen wie Storage- und Server-Kapazitäten. Der Grund sind die unterschiedlichen Planungszyklen und Aufgabenbereiche von Software-Entwicklern beziehungsweise Scrum-Teams und von IT-Abteilungen.

Scrum-Entwickler sind auf kurze Zyklen fixiert. Sie müssen innerhalb weniger Tag neue Apps und Software-Versionen erarbeiten, diese testen und das Ganze mit dem Product Owner abstimmen. Das erfordert eine hoch flexible IT- und Storage-Infrastruktur, die sich nach Bedarf erweitern lässt - vor allem um weitere Speicherkapazitäten und Virtual Machines.

Storage-Administratoren unter Zugzwang

Die Aufgabe der Storage-, Server- und Netzwerk-Fachleute ist es, dafür die technische Basis bereitzustellen. Doch mit der hohen Agilität von Scrum-Teams können Storage-Administratoren nicht mithalten. Ein Punkt: Sie benötigen einen längeren zeitlichen Vorlauf, um die organisatorischen und personellen Ressourcen bereitzustellen, wenn Storage-Kapazitäten erweitert beziehungsweise neu konfiguriert werden sollen. Das ist vor allem dann der Fall, wenn Scale-up-Speichersysteme im Einsatz sind, die nötigenfalls mit neuer Hardware, sprich weiteren Festplatten oder SSDs, aufgerüstet werden müssen.

Scrum bedeutet jedoch, dass ein Entwickler-Team in der Lage sein sollte, bei Bedarf eigenständig weitere Storage-Kapazitäten anzufordern. Bei Scale-out-Systemen, etwa den All-Flash-Komponenten von Netapp Solidfire, lässt sich das auf relativ einfache Weise bewerkstelligen, indem weitere Storage Nodes hinzugefügt werden. Ein weiterer Vorteil der Solidfire-Lösung ist, dass die Anpassung der Speicherkapazitäten im laufenden Betrieb erfolgen kann. Speicherumgebung steht somit auch während des Erweiterungsprozesses zur Verfügung. Es gibt also keine Verzögerungen bei den Software-Entwicklungsarbeiten.

Einfache Erweiterung der Speicherressourcen

Wichtig ist, dass der Ausbau der Speicherkapazitäten so einfach wie möglich ist. Denn ein Scrum-Team besteht an einem Standort oft nur aus wenigen Mitgliedern, teilweise nur fünf bis zehn Spezialisten. Daher müssen Anpassungen der Storage-Umgebung möglichst effizient und zeitsparend durchgeführt werden. Zudem sollten Entwickler die Option haben, mithilfe von Scripts eine passgenaue Storage-Umgebung aufzubauen – natürlich mit Unterstützung und unter Einbeziehung der Storage-Administratoren.

Umsetzen lässt sich dies mithilfe von Storage-Lösungen, die Schnittstellen zu Management-Frameworks wie OpenStack bieten. Weiterhin sollten Programmierschnittstellen bereitstehen, die das Einrichten und Herunterfahren von Virtual Machines und von Containern erlauben. Dies erleichtert es einzelnen Entwicklern und Scrum-Teams, Testumgebungen für Code oder komplette Applikationen einzurichten. Speziell bei kurzen Iterationszyklen und dementsprechend vielen Prüfdurchgängen beschleunigt dies die Qualitätskontrolle von Code und die Integration von neuen Funktionen.

Laut einer Studie von Netapp Solidfire beschleunigt Automatisierung Aufgaben im Bereich Storage-Management um den Faktor 4. An die 59 Prozent der befragten Storage-Fachleute wollen mithilfe von Automatisierung die Bereitstellung von Speicherkapazitäten vereinfachen. Davon wiederum profitieren auch Software-Entwickler, gleich ob sie Scrum nutzen oder andere Frameworks wie DevOps. In dieselbe Richtung geht ein weiteres Ziel, das rund 58 Prozent der Befragten durch automatische Abläufe erreichen möchten: eine agilere und flexiblere Anpassung der Storage-Infrastruktur.

Performance muss stimmen

Neben einer "Zero-Touch"-Strategie bei der Bereitstellung und beim Management von Speicherkapazitäten sollte ein weiterer Faktor berücksichtigt werden: die Performance der Speicherumgebung. Agile Entwicklungs-Frameworks wie Scrum und DevOps bringen es mit sich, dass in kurzen Zeiträumen neue Code-Versionen entstehen und überprüft werden müssen. Zwar sind bei Scrum Iterations-Intervalle von 14 bis 28 Tagen die Regel.

Der Trend geht jedoch in Richtung kürzerer Zeitspannen, weil verstärkt "Remote-Scrum"-Teams zum Zuge kommen. Dabei arbeiten, mehrere Teams verteilt an diversen Standorten: in Europa, Asien und Nordamerika. Eine Folge ist, dass sich ein Arbeitsmodell à la "Follow the Sun" etablieren lässt.

So können beispielsweise Software-Experten in den USA während ihres Arbeitstages Reviews von Code durchführen, den ihre Kollegen in Europa während ihres Arbeitstages Stunden zuvor entwickelt haben. Dadurch steigt der Output von Scrum-Teams – und sie sind darauf angewiesen, dass für Tests durchgängig Storage-Ressourcen mit hohen IOPS-Raten zur Verfügung stehen.

Eine hohe Performance lässt sich zum einen durch den Einsatz von All-Flash-Systemen erreichen. Sie bieten bei Schreib- und Lesevorgängen deutlich niedrigere Latenzzeiten im Bereich um eine Millisekunde. Herkömmliche Storage-Arrays mit SAS- und iSCSI-Speicher liegen etwa um den Faktor 10 bis 20 höher.

Idealerweise stehen zum anderen Funktionen bereit, mit denen sich steuern lässt, wann welche Applikationen auf Storage-Ressourcen zugreifen können. Solche Quality-of-Service-Mechanismen (QoS) stellen sicher, dass Code-Reviews von Scrum-Teams Vorrang erhalten. Dadurch werden Entwickler nicht "ausgebremst", weil sie stundenlang warten müssen, bis ein Testlauf abgeschlossen oder ein neues Software-Build erstellt wurde.

Bewusstsein für zentrale Rolle von Storage schärfen

Damit agile Frameworks wie Scrum den erhofften Nutzen bringen, müssen nicht nur die internen Abstimmungsprozesse stimmen. Ebenso wichtig ist eine leistungsfähige technische Plattform, speziell im Storage-Bereich. Dieses Bewusstsein ist jedoch noch nicht in jedem Unternehmen vorhanden.

Die Folge ist, dass Scrum- und DevOps-Teams zur Selbsthilfe greifen und Storage-Ressourcen in der Cloud buchen – an der IT-Abteilung vorbei. Um das zu vermeiden, macht es Sinn, flexible und skalierbare All-Flash-Systeme zu implementieren. Davon profitieren letztlich alle: Scrum- und DevOps-Teams, die IT-Abteilung und vor allen Dingen das Unternehmen.

Was meinen Sie zu diesem Thema?

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44675818 / Hardware)