Effektive Softwaretests: Interview mit Andreas Grabner, Compuware

Mit DevOps Ausfällen vorbeugen

Interview mit Andreas Grabner, Technology Strategist Application Performance Management bei Compuware, über den geforderten hohen Grad der Automatisierung in der Software-Entwicklung

Andreas Grabner, Compuware

Andreas Grabner, Technology Strategist Application Performance Management bei Compuware

IT-DIRECTOR: Herr Grabner, bitte geben Sie unseren Lesern eine kurze Definition von DevOps. Welche Vorgehensweisen liegen diesem Software-Entwicklungsmodell zugrunde?
A. Grabner:
DevOps bedeutet, dass die Abteilungen Entwicklung und Betrieb bei der Erstellung und dem erfolgreichen Einsatz von Software eng zusammenarbeiten. Aus den englischen Begriffen Development und Operations entstand der Begriff DevOps.

Dabei handelt es sich jedoch nicht um ein Entwicklungsmodell, dieses beschreibt der konkrete Ansatz Continuous Delivery. DevOps steht für die kulturelle, organisatorische Veränderung innerhalb der Unternehmen. Bislang arbeiten die Abteilungen nämlich meist getrennt voneinander, sodass die Software weitgehend ohne Berücksichtigung der praktischen Anforderungen im laufenden Betrieb entwickelt und getestet wird. Erst in der praktischen Anwendung werden dann Performance-Probleme oder Instabilitäten entdeckt, die an die Entwicklung zurückgespielt werden. DevOps bedeutet nicht nur, dass Mitarbeiter in Entwicklung und Betrieb über alle Änderungen gegenseitig informiert sind, sondern auch, dass neue Versionen automatisch getestet und installiert werden. Der Ansatz umfasst auch, dass alle Schritte messbar und somit überprüfbar sind.

IT-DIRECTOR: Inwieweit können mithilfe von DevOps gegenüber der klassischen Software-Entwicklung Zeit und Kosten gespart werden?
A. Grabner:
Schon anhand der kürzeren Feedbackschleifen zwischen Entwicklung und Betrieb gibt es deutliches Einsparpotential. Der Hauptteil der Zeit- und Kostenreduktion geht aber auf den hohen Grad der Automatisierung zurück. So werden bei DevOps manuelle Schritte so weit wie möglich durch automatische Prozesse ersetzt. Zudem wird schon frühzeitig die Qualität und Performance einer Software konkret gemessen, so dass Fehler oder Probleme frühzeitig erkannt und behoben werden. Nichts ist aufwendiger als die mühsame Suche nach Fehlern, die viele Schritte vorher entstanden sind.

Durch ein auf DevOps basierendes Continuous-Delivery-Modell hat zum Beispiel Amazon nun 75 Prozent weniger Ausfälle und 90 Prozent weniger Ausfallminuten. Der Anbieter führt im Schnitt alle 11,6 Sekunden ein neues Deployment durch und davon hat nur jedes Tausendste ein Problem, das mit einem schnellen Roll-Back sofort wieder behoben ist.

IT-DIRECTOR: Für welche Anwendungstypen oder für welche Programmiersprachen eignet sich die Nutzung von DevOps besonders?
A. Grabner:
DevOps eignet sich besonders gut für Webanwendungen im Software-as-a-Service-Geschäft (SaaS). Hier ist eine schnelle Versionierung erforderlich, um Änderungen und Funktionen zeitnah auf Web- und App-Servern einzuführen. Und bei Problemen ist sowohl ein sofortiges Roll-Back möglich, damit Kunden nicht davon betroffen sind, als auch ein Roll-Forward, mit dem kleine Probleme so schnell wie möglich mit einem Fix behoben werden können.

Im Prinzip lassen sich alle Programmiersprachen für DevOps nutzen. Wichtig ist es, dass Werkzeuge verwendet werden, die ein hohes Maß an Automatisierung erlauben. Den Anwendungen entsprechend werden vorwiegend Websprachen wie Java, .Net, PHP, CSS oder HTML eingesetzt.

IT-DIRECTOR: Welche Tools sollte man am besten nutzen? Welche kann man eher vernachlässigen?
A. Grabner:
Diese Frage ist schwer zu beantworten, da entlang der Entwicklungskette in der Continuous Delivery eine ganze Reihe an Tools für die verschiedenen Schritte eingesetzt wird. Die zentrale Software ist aber der Build Server, auf dessen Basis die Entwicklungsschritte ablaufen. Bewährt haben sich hier bekannte Lösungen wie Hudson, Jenkins oder Bamboo. Für die unterschiedlichen Tasks entlang der Build Pipeline hängt es dann von den jeweiligen Anforderungen und Umgebungen ab, welches Tool ideal ist. Es muss sich aber gut in die Entwicklungskette integrieren lassen.

IT-DIRECTOR: Wie verlaufen üblicherweise die Software-Tests im Rahmen eines DevOps-Konzepts?
A. Grabner:
Bislang gehören bei Continuous Delivery zur ersten Phase, der sogenannten „Commit Stage“, nur das Kompilieren des Codes, das Ausführen von Unittests, statische Code-Analysen sowie das Bereitstellen des Installationspakets. Erst danach folgen automatische Integrations-, Funktions-, Performance- und Lasttests sowie am Ende manuelle Tests.

Jedoch sollten die automatischen Tests möglichst frühzeitig bereits in der Commit Stage durchgeführt werden, vor allem Unit- und Integrationstests, aber auch Funktions-, Performance- und Lasttests. Dabei muss nicht für jedes neue Commit ein voller Lasttest gefahren werden. Viele Probleme werden bereits mit wenigen Usern entdeckt, da es sich um Architekturprobleme handelt. Die Testprogramme spielen dann die Ergebnisse automatisiert über Schnittstellen wie REST auf den Build Server zurück.

IT-DIRECTOR: Worauf sollten Großunternehmen bei der Umstellung von einer klassischen Software-Entwicklung auf DevOps vor allem achten? Wo finden sie Mitarbeiter mit entsprechendem DevOps-Hintergrund?
A. Grabner:
Die größte Herausforderung bei der Umstellung liegt in den kulturellen und organisatorischen Veränderungen im Unternehmen. So müssen die Kollegen von den konkreten Vorteilen durch DevOps überzeugt werden. Dies ist meist ein langer Prozess, der durch externe Berater, kleine erfolgreiche Pilotprojekte oder Mitarbeiter, die bei anderen Arbeitgebern bereits Erfahrungen damit gemacht haben, beschleunigt werden kann.

Solche Mitarbeiter mit DevOps-Hintergrund findet man heute vor allem durch persönliche Kontakte, z.B. auf Messen, Tagungen, Konferenzen oder User Group Meetings. Hier sollte man vor allem auf Vorträge zu DevOps oder Continuous Delivery achten.

IT-DIRECTOR: Können Sie uns bitte kurz ein DevOps-Projekt bei einem Großunternehmen in Deutschland, Österreich oder der Schweiz beschreiben (bitte kein Kunde aus der ITK-Branche)?
A. Grabner:
Die HUK-Coburg setzt zum Beispiel für die Analyse der Lasttests während der Entwicklungsphasen „Compuware Dynatrace“ ein. Damit lassen sich weitgehend automatisch problematische Codezeilen exakt lokalisieren und Fehler entsprechend schneller beheben. Auch die Anzahl der Testzyklen wurde deutlich reduziert. Angesichts der Zeitspanne von bis zu sieben Werktagen zwischen zwei Durchläufen bedeutet das eine wesentliche Zeitersparnis im Entwicklungsprozess. Die getesteten Anwendungen werden für zwölf IBM-Websphere-Server als Anwendungsserver entwickelt. Auf diese greifen in Spitzenzeiten 5.000 Java Thin Clients zu.

©2019Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok