DevOps mit ABAP – geht das überhaupt?
In IT-Organisationen gewinnt die Philosophie DevOps zunehmend an Popularität. Das Kunstwort aus „Development“ = Softwareentwicklung und „Operations“ = Softwarebetrieb stellt bestehende Strukturen in Unternehmen auf den Prüfstand. Was DevOps eigentlich ist, können Sie zum Beispiel hier nachlesen. Doch während gerade in der Webentwicklung oder im Java-Bereich Themen wie Agile/Scrum, Continuous Delivery oder auch Continuous Deployment schon seit vielen Jahren gelebt werden, ist es für die ABAP-Entwicklung bisher weitestgehend ein unbeschriebenes Blatt. Wie immer gilt: Ausnahmen bestätigen die Regel.
Was bedeutet DevOps mit ABAP?
Wenn ich mir anschaue, welche Anforderungen DevOps an die Softwareentwicklung, die Infrastruktur und die Prozesse stellt, fallen mir sofort einige markante Punkte ins Auge:
- Prozessautomatisierung – ein hoher Automatisierungsgrad sorgt für Sicherheit und Geschwindigkeit.
- Funktionale Teams, die eine bestimmte Anwendung oder eine Funktion verantworten.
- Agile Softwareentwicklung – kleine, in sich abgeschlossene Funktionen werden sukzessive erstellt, getestet und ausgeliefert.
Sofort kommen mir Bilder verschiedener Unternehmensorganisationen in den Kopf, die ich über die Jahre bei Kunden kennengelernt habe. Und – vielleicht bei Ihnen auch – gleich dazu eine ganze Menge Bedenken, die ich hier vorsichtig als „offene Fragen“ formuliere:
- Wir entwickeln seit Jahren unsere Anwendungen auf Basis der Business-Anforderungen nach dem Wasserfallmodell. Wie soll denn ein Wechsel in eine agile Methodik ablaufen?
- Unsere vier großen Releases im Jahr haben wir im Griff. Was bringt es mir, wenn ich z. B. wöchentlich sehr kleine Funktionen bereitstelle? Der Testaufwand erscheint mir unverhältnismäßig.
- Modebegriff “„DevOps“ schön und gut – aber warum sollte ich die Ausgaben tätigen für die ganzen Tools, die ich da benötige?
Um der Überschrift Rechnung zu tragen – DevOps bedeutet eine starke Umstellung in der Arbeitsweise der ABAP-Entwicklung (und darüber hinaus). Das lässt sich schon an den Fragen ablesen. Heute setzen Kunden häufig in größeren Abständen Entwicklungen produktiv. In einem agileren Umfeld würde der Abstand zwischen zwei Releases massiv verringert. Aber wie soll das funktionieren?
Prozessautomatisierung als Erfolgsfaktor für DevOps
Ich möchte nochmal klarstellen: DevOps ist viel mehr als nur „Agile Entwicklung“ und ein paar Tools zur Prozessautomatisierung. Aus der SAP-Entwicklerbrille betrachtet bringt aber schon das Thema Automatisierung Herausforderungen mit, die heute noch lange nicht vollständig gelöst sind.
Im Entwicklungsprozess gibt es verschiedene Ansatzpunkte. Ein etwas karikaturierter Entwicklungsprozess sieht in manchen Landschaften so aus:
Das mögliche Potenzial, durch gezielte Automatisierung eine höhere Qualität und Geschwindigkeit zu erreichen, liegt förmlich auf der Hand:
- Durch Test Driven Development und ABAPUnit könnte der Entwickler seine Tests bereits auf dem Entwicklungssystem durchführen. Der einmalige Aufwand, für die Unit-Tests Dummy-Testdaten zu hinterlegen, kommt ihm bei jeder Anpassung zu Gute. Er spart viel Zeit und Nerven.
- Eine Integration von automatischen Qualitätsprüfungen in den Transportprozess kann frühzeitig Kompatibilität und Robustheit von Entwicklungen sicherstellen. Dazu stehen allen SAP-Kunden Tools wie das ABAP Test Cockpit schon heute zur Verfügung.
- Über automatisierte Integrations- oder Regressionstests kann sichergestellt werden, dass bestehende Anwendungen von den Änderungen nicht betroffen sind. Dadurch verringert sich der Aufwand manueller Tests für Berater oder Anwender um ein Vielfaches.
Und das ist nur der Anfang.
GIT-Anbindung ist zentral für DevOps mit ABAP
Immer wieder komme ich mit anderen Entwicklungskollegen in einen Konflikt: Das Objekt, das ich bearbeiten möchte, ist bereits auf einem anderen Transport gesperrt. Unsere Anforderungen überschneiden sich technisch. Jetzt gibt es häufig nur zwei Möglichkeiten:
- Ich warte mit meinen Anpassungen, bis der Kollege seine abgeschlossen hat.
- Ich führe die Anpassungen durch und schreibe sie mit auf den Transportauftrag des Kollegen.
Im ersten Fall verzögert sich die Umsetzung – meistens um mehrere Wochen und nicht Tage. Im zweiten Fall entstehen Abhängigkeiten, die bei einer großen Menge an Änderungen pro Release eine große Fehlerquelle sein können.
Wenn Sie sich jetzt ein agiles Umfeld vorstellen: viele kleine Anpassungen, Arbeit in funktionalen Teams an einem Bereich/einer Applikation. Dann kommt sofort der Gedanke: hier taucht dieses Problem doch sicher ständig auf?! Und genau deshalb ist eine GIT-Integration essentiell. Sie bringt über die Möglichkeit des Branchings die notwendige Flexibiltät in die Arbeit an Entwicklungsobjekten. Wie genau, beschreibt mein Kollege Philipp Kriegbaum in diesem Artikel: erlebe-software.de/abap-und-co/wie-abapgit-ihre-sap-entwicklung-retten-kann/. Außerdem ist GIT am Markt so etabliert, dass von hier aus eine automatisierte Delivery-Pipeline aufgesetzt werden kann. Wie so eine Pipeline aussehen könnte, beschreibe ich in einem kommenden Blogbeitrag. Schauen Sie also gerne wieder vorbei!
Also – geht DevOps mit ABAP nun oder nicht?
Meine persönliche Einschätzung: Ja, es geht. Und es gibt schon SAP-Kunden, die es leben. Der Weg dorthin ist mit einigen Überlegungen verbunden, die sicher die eine oder andere etablierte Arbeitsweise in Frage stellen werden. Aber es kann sich lohnen. Sie gewinnen Flexibiltät, können durch eine hohe Automatisierung Zeit und damit bare Münze sparen und stabilisieren Ihre Entwicklungsqualität. Es gibt bereits für viele Aspekte von DevOps passende Tools oder Lösungsansätze am Markt. Damit meine ich nicht nur Testautomatisierung, sondern auch das Release-Management, Monitoring, oder auch das Zurücksetzen eines Entwicklungsobjekts auf den letzten stabilen Stand.
Ich freue mich über Ihre Nachrichten, per Mail oder im Kommentar, wenn Sie sich für das Thema interessieren. Außerdem stehe ich gerne auch telefonisch unverbindlich für einen Austausch bereit. Im Bereich DevOps mit ABAP gibt es noch viel zu entdecken und die passende Lösung zu finden. Gerne begleite ich Sie auf diesem Weg!