DevOps: Interview mit Mark Warren, Perforce

Kein Raum für Fehler in der Software-Entwicklung

Interview mit Mark Warren, European Marketing Director bei Perforce Software, über die Vorteile des DevOps-Konzepts gegenüber der traditionellen Software-Entwicklung

Mark Warren, Perforce Software

Mark Warren, European Marketing Director bei Perforce Software

IT-DIRECTOR: Herr Warren, bitte geben Sie uns eine kurze Definition von DevOps. Welche Vorgehensweisen liegen diesem Software-Entwicklungsmodell zugrunde?
M. Warren:
Auch wenn die Bezeichnung nicht besonders originell erscheint, spiegelt sie doch recht gut wider, was bei „DevOps“ geschieht: die Entwicklungsmethode verbindet Entwicklerteams („Dev“) und die Administratoren der Produktivsysteme (hin und wieder als „Ops“ bezeichnet) miteinander. In der Vergangenheit waren diese beiden Disziplinen strikt voneinander getrennt. Entwickler entwerfen ihre Software auf Basis der Marktanforderungen, erstellen und testen den Code. Wenn sie schließlich der Meinung sind, dass die Ergebnisse der Tests von zufriedenstellender Qualität zeugen, geben sie die Anwendungen an die Operationsteams weiter, die diese dann auf ihren Produktivservern installieren. Sie überwachen diese dann und stellen sicher, dass der entsprechende Service den Anwendern zur Verfügung steht.

Auf den ersten Blick mag dieses Vorgehen plausibel scheinen, doch in der Realität ergibt sich daraus ein hohes Fehlerpotential. Dies kann sich nicht nur schädlich auf den Unternehmensruf auswirken, sondern auch finanzielle Konsequenzen nach sich ziehen, etwa wenn die Applikationen nicht mehr durchgängig verfügbar sind. Bei der zuvor beschriebenen traditionellen Vorgehensweise erfahren die Entwickler beispielsweise nur in geringem Maße, welche Probleme sich bei der Installation einer Applikation auf einer großen Anzahl von Servern oder bei der Integration mit anderen Anwendungen oder Systemtools ergeben.

Die Operationsteams wiederum erhalten unter Umständen keine Einblicke in die spezifischen Änderungen eines Applikationsupdates oder ob diese Änderungen auch in angemessener Weise getestet wurden. Sie führen daher vielleicht dieselben Tests noch einmal durch sowie zusätzliche Tests bezüglich Skalierbarkeit und Verwaltbarkeit – all das verzögert die Wertschöpfung dieser Applikationen durch die Anwender.

Mit der Umstellung auf DevOps werden Entwickler mehr in die Prozesse und Ergebnisse der Ausführung ihrer Anwendungen in der Produktivumgebung einbezogen. Das Operationspersonal auf der anderen Seite kann bereits in den frühesten Entwicklungsphasen mitwirken und sicherstellen, dass die Administrierbarkeit schon von Beginn an berücksichtigt wird. Ebenso können sie dadurch erkennen, welche Auswirkungen neue Applikationen in ihren Produktivumgebungen haben werden.

IT-DIRECTOR: Inwieweit können mithilfe von DevOps gegenüber der klassischen Software-Entwicklung Zeit und Kosten gespart werden?
M. Warren:
Wird der Informationsfluss über Code-Änderungen von der Entwicklung in den Echtbetrieb optimiert, können die Auswirkungen in der Tat sehr positiv sein. Die tatsächlichen Einsparungen hängen jedoch selbstverständlich von der Art der Applikationen ab. Nicht ungewöhnlich ist aber, wenn Projekte, die sich normalerweise von der Entwicklung bis zum Livebetrieb über Monate erstrecken, innerhalb von Wochen oder gar Tagen abgeschlossen werden können.

In der Tat funktioniert die Optimierung in manchen Unternehmen so gut, dass die Mitarbeiter sogar zu „Continuous Delivery“ übergehen – der Fähigkeit, Applikationen in kleinen, inkrementellen Updates zu veröffentlichen, sozusagen direkt vom Arbeitsplatz des Entwicklers in den Echtbetrieb. Dies ermöglicht es Unternehmen, sehr schnell auf Marktanforderungen zu reagieren und dadurch Wettbewerbsvorteile zu erzielen sowie Risiken zu reduzieren.

IT-DIRECTOR: Für welche Anwendungstypen oder für welche Programmiersprachen eignet sich die Nutzung von DevOps besonders?
M. Warren:
Theoretisch können alle Applikationen von DevOps profitieren – schließlich ist jeder daran interessiert, seine Updates schneller in den Livebetrieb zu bringen. In der Realität sind manche Anwendungen allerdings besser für regelmäßige, schnelle Updates geeignet als andere. Ein Beispiel: Bei Smartphone-Apps sind Anwender Updates in kurzen Abständen gewohnt. Beim Backend-Processing-System einer Bank sind häufige Updates hingegen weniger sinnvoll, da dort strenge regulatorische Anforderungen sowie zahlreiche Abhängigkeiten bestehen. Dieser Gegensatz wird häufig als der Unterschied zwischen „Interaktionssystemen für Anwender“ (Systems of Engagement) und „Datenhaltungssystemen“ (Systems of Record) bezeichnet.

IT-DIRECTOR: Welche Tools sollte man am besten nutzen? Welche kann man eher vernachlässigen?
M. Warren:
Die wichtigste Voraussetzung für DevOps ist die Fähigkeit, gemeinsam im Team zu arbeiten und so viel wie möglich zu automatisieren. Mit einer guten Kollaborationsplattform – und einem daraus resultierenden einheitlichen Referenzbestand der Dateien – werden die durchgeführten Änderungen für alle Entwickler und Operationsmitarbeiter transparent und rückverfolgbar, sodass stets ersichtlich ist, was geändert wurde sowie von wem und welche Testprozesse bereits durchgeführt wurden. Dieses System sollte das Versionsmanagement-System sein. Es stellt die Basis dar für alle anderen Tools, die für Build-, Test- und Release-Management benötigt werden. Ohne eine solche stabile Grundlage kann es sehr teuer oder gar unmöglich werden, die Vorteile von Automatisierung umzusetzen.

IT-DIRECTOR: Wie verlaufen üblicherweise die Software-Tests im Rahmen eines DevOps-Konzepts?
M. Warren:
Eine verbreitete Vorgehensweise ist es, bei der Implementierung von „Continuous Integration“ zu beginnen. Hierbei werden die Applikationen in regelmäßigen Abständen neu erstellt und automatisch getestet. Für die einen Teams könnte dies etwa nach jedem Commit einer Änderung am Quellcode der Anwendung durchgeführt werden, für andere Teams jede Stunde oder jede Nacht. Der zentrale Vorteil besteht darin, dass die Verantwortlichen früh eine Rückmeldung darüber erhalten, ob eine oder mehrere Änderungen Fehler verursachen – je schneller ein Entwickler darüber informiert wird, desto kostengünstiger und schneller kann er das Problem beheben. Werden Tests erst am Ende mehrmonatiger Entwicklungsphasen durchgeführt, ist der benötigte Aufwand, um Probleme zu beheben, exponentiell höher.

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?
M. Warren:
Besonders wichtig ist es, eine solide Grundlage in Form eines Versionsmanagement-Tools zu schaffen, das von Entwicklungs- und Operationsteams gemeinsam genutzt wird. Dies kann jedoch eine Herausforderung darstellen, da sich die Teams unter Umständen an geographisch unterschiedlichen Standorten befinden und viele Altsysteme nicht in der Lage sind, die Menge an digitalen Assets zu verwalten, die im Laufe des Entwicklungsprozesses erstellt werden. Es hat sich gezeigt, dass sich moderne Tools, wie etwa Perforce, gut dazu eignen, auch stark verteilten Teams die Verwaltung von Projekten aller Größenordnungen sowie Binärdateien jeder Art zu ermöglichen. Gleichzeitig erlauben sie Entwicklern und anderen Beteiligten, genau die Tools zu verwenden, die am besten zu deren Workflows passen, wie etwa Git.

Die Verwendung von DevOps hat sich über die letzten Jahre hinweg rapide ausgebreitet. Entsprechende Schulungen und Beratungen werden vielerorts angeboten. Dabei stellen die Trainer sicher, dass die richtige Technologie vorhanden und nutzbar ist. Sie arbeiten zudem mit den Entwicklungs- und Operationsteams zusammen und unterstützen diese dabei, kulturelle Unterschiede zu überwinden, die sich im Laufe vieler Jahre entwickelt haben können.

©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