Questions? Feedback? powered by Olark live chat software

Agile & DevOps

Erweiterung von CI/CD-Workflows in SAP-Landschaften mit abapGit und Containern

Wenn Sie letztes Jahr auf einer der TechEds in Las Vegas, Barcelona oder Bangalore waren, ist Ihnen wahrscheinlich der Hype um abapGit aufgefallen. Dieses neue Open-Source-Tool könnte die ABAP-Entwicklung revolutionieren.

Das ursprünglich von Lars Hvam entwickelte Tool ist mittlerweile zu einem Open-Source-Projekt auf GitHub geworden. abapGit bietet Entwicklern einen Vorteil, den sich viele in der SAP-Welt schon lange gewünscht haben: die Möglichkeit, parallel an der ABAP-Codebasis zu arbeiten und zwar ohne mehrere – was mit „teure und komplizierte“ gleichzusetzen ist – Development Tracks und ohne sich dabei gegenseitig in die Quere zu kommen.

Wir bei Basis Technologies freuen uns über jedes Tool, mit dem die Geschwindigkeit, Qualität und Effizienz in der SAP-Entwicklung gesteigert werden kann. Deshalb haben wir uns kürzlich mit der Frage beschäftigt, welche Vorteile abapGit bietet. In zwei neuen Webinaren unter dem Titel „Erweiterung von CI/CD-Workflows in SAP-Landschaften“ spreche ich über unsere Erfahrungen. Im ersten Teil, Eine Einführung in Container und die verteilte Entwicklung[, stelle ich abapGit und die Container-Technologie vor und erkläre, wie man diese in den SAP-Entwicklungs-Workflow integrieren kann. Der Titel des zweiten Teils, Eine Live-Demonstration von abapGit-basierten Workflows, spricht für sich selbst, denke ich.  Es handelt sich hierbei um On-Demand-Webinare, die Sie sich jederzeit ansehen können. Trotzdem habe ich die wichtigsten Aspekte in diesem Beitrag zusammengefasst, falls es bei Ihnen gerade zeitlich knapp ist.

Die verteilte Entwicklung wird zum Standard in einer Welt, in der Geschwindigkeit Priorität hat

In der heutigen sich permanent verändernden Geschäftswelt müssen die Entwickler die ständige Nachfrage nach Softwareänderungen und die damit einhergehenden neuen Kundenanforderungen erfüllen. 

Darauf basiert auch die Motivation hinter einem Umstieg auf DevOps- und CI/CD-Modelle (Continuous Integration/Continuous Delivery), bei denen Code in kontinuierlichen Updates geschrieben, getestet, repariert und veröffentlicht wird. 

Damit dies außerhalb des SAP-Systems stattfindet, schreiben die Entwickler ihre Änderungen in einer lokalen Entwicklungsumgebung und führen den neuen Code dann wieder in einem zentralen Code-Repository zusammen. Dieses Modell für die verteilte Entwicklung ist mittlerweile in Umgebungen wie .Net, C# und Java Standard, wo eine Fülle von Open-Source-Tools eine schnelle Code-Bereitstellung durch automatisierte Tests und Konfliktlösungen ermöglichen. 

Während der Wechsel in der übrigen Softwarewelt bereits stattgefunden hat, basiert SAP-Technologie auf veralteten Methoden. ABAP-Teams arbeiten immer noch in der gleichen monolithischen Codebasis zusammen, was eine echte verteilte Entwicklung unmöglich macht (bis jetzt).

Viele Teams versuchen, dies zu umgehen, indem sie mehrere Development Tracks implementieren – das übliche „N+N“-Szenario – aber wie jeder erfahrene SAP-Experte weiß, bringt dies seine eigenen (nicht unbedeutenden) Herausforderungen mit sich. Entwickler, die in parallelen Development Tracks arbeiten, haben immer noch mit Konflikten, Überschreibungen, Sequenzierungsfehlern und unvorhergesehenen Abhängigkeiten zu kämpfen.

Im Vergleich zu Nicht-SAP-Auslieferungspipelines bleibt die N+N-Entwicklung bei SAP relativ komplex und ist mit diversen Einschränkungen verbunden, selbst wenn Steuerungs- und Testwerkzeuge für einen automatisierten Änderungsprozess wie ActiveControl und Testimony von Basis Technologies eingesetzt werden. Diese lösen die meisten Probleme, die die Auslieferung von Änderungen in Landschaften mit mehreren Development Tracks verlangsamen. 

Erste Schritte mit abapGit und lokaler Entwicklung

abapGit hingegen eröffnet ein komplett neues SAP-Entwicklungsparadigma. Im Wesentlichen handelt es sich um ein Werkzeug, bei dem ABAP-Entwickler von den Vorteilen von Git – einem leistungsfähigen Open-Source-Versionskontrollsystem – profitieren. abapGit ermöglicht es Entwicklern, völlig unabhängig zu arbeiten, indem es eine individuelle Kopie der aktuellen ABAP-Codebasis in eine lokale Entwicklungsumgebung „zieht“. Der Code für Funktionen oder Fehlerbehebungen kann in einer anderen lokalen Kopie dieser Master-Codebasis, einem so genannten Zweig oder „Branch“, geschrieben werden. Die Änderungen werden über ein Commit zurück in das Hauptcode-Repository geschrieben, sodass andere sie sehen können, und dann in der Hauptcodebasis zusammengeführt, wenn sie vollständig sind und genehmigt wurden.

Über die Zweige wird sichergestellt, dass bei den unterschiedlichen Entwicklungen keine Konflikte entstehen und jede Codeversion jederzeit problemlos abgerufen werden kann. Sie möchten das System ohne die letzten beiden hinzugefügten Funktionen angezeigt bekommen? Kein Problem – ziehen Sie einfach den entsprechenden Zweig auf Ihre lokale Entwicklungsumgebung. 

Es ist eine komplett andere Arbeitsweise mit vielen neuen Funktionen, deshalb gehen wir in den Webinar-Aufzeichnungen näher auf die Details ein.

Für die Arbeit mit abapGit ist eine Git-Host-Plattform wie GitHub oder BitBucket erforderlich. (Wir verwenden BitBucket, weil es sich gut in unser JIRA-Projektmanagement-Tool integrieren lässt.) Der Host kümmert sich um Dinge wie Peer-Reviews, Genehmigungen, Zusammenführungen und Konfliktlösungen und stellt sicher, dass alle mangelhaften Änderungen abgelehnt werden und nur genehmigter Code wieder in die Master-Codebasis integriert wird. 

Auf diese Weise können die Entwickler schneller arbeiten, weil sie unabhängig und in ihrem eigenen Tempo arbeiten, und über den Git-Host wird sichergestellt, dass nichts zurückgespielt wird, was das System zerstören könnte.

Einfacheres Arbeiten mit Containern

Sie fragen sich vielleicht, wie jeder ABAP-Entwickler eine lokale Kopie der SAP-Hauptcodebasis ausführen kann. Ist das nicht genau dasselbe wie das Einrichten einer N+N-Landschaft? Nun, hier kommt eine weitere neue Technologie ins Spiel: Container. Mit Containern können mehrere unterschiedliche Anwendungen in schlanken, isolierten Umgebungen ausgeführt werden, die ein gemeinsames Betriebssystem verwenden. Container sind schnell aus Standard-Images anzulegen und ebenso einfach zu zerstören, wenn sie nicht mehr benötigt werden. Das bedeutet, dass Sie beispielsweise mehrere verschiedene ECC-Versionen auf einem lokalen Laptop ausführen können, wobei jede Version auf einer anderen Codebasis ausgeführt wird.  

Docker ist die beliebteste Containerplattform. Wir haben mit ihr eine Containerversion einer SAP-Box für einzelne Entwickler bereitgestellt, damit sie sie auf ihren eigenen Laptops ausführen können. Sie benötigt nur etwa 40 GB Festplattenspeicher und startet in 3–4 Minuten; es können also problemlos mehrere Versionen auf demselben Rechner (oder derselben AWS-Instanz) ausgeführt werden.

Die Bündelung mit Containern eröffnet viele interessante Möglichkeiten. Sie birgt unter anderem großes Potenzial für die Qualitätssicherung. Hier könnte beispielsweise ein Image einer „idealen“ Testumgebung erstellt und bei Bedarf aufgespielt werden. Vielleicht könnte sogar ein QS-Container auf jedem Entwickler-Laptop angelegt werden, damit die Entwickler Tests im gesamten Auslieferungszyklus früher und umfassender durchführen können. 

Sollten wir auf abapGit und Containern umsteigen?

Unserer ersten Einschätzung nach bietet die Verwendung von abapGit mit BitBucket und Docker durchaus relevante Vorteile für die verteilte Entwicklung mit unserer Lösung ActiveControl. Natürlich ist abapGit nicht die Antwort auf alle Probleme – es unterstützt zum Beispiel nicht alle SAP-Objekte und bietet keine Funktion für das Konfigurationsmanagement – aber es steigert die Effizienz und senkt die Kosten für die Entwicklung. 

Es gibt jedoch auch einiges zu beachten. Bei der Git-fähigen ABAP-Entwicklung handelt es sich um einen relativ neuen Ansatz, der sich am besten für Unternehmen eignet, die bereits an anderer Stelle im Unternehmen mit dem Modell für die verteilte Entwicklung arbeiten. Selbst dann würden wir zunächst einen explorativen Ansatz empfehlen, um die Funktionen von abapGit und Containern und die damit verbundenen neuen Workflows und Prozesse optimal einzusetzen.

Ein weiterer wichtiger Aspekt ist, dass eine Git-fähige Entwicklung nicht mit DevOps für SAP gleichzusetzen ist. Um das volle Potenzial von Continuous Integration und Continuous Delivery in SAP ausschöpfen zu können, sind zusätzliche Tools erforderlich, mit denen Sie die Änderungen koordinieren und Tests während des gesamten Auslieferungsprozesses automatisieren können. 

Sie müssen schließlich den mit abapGit entwickelten Code, mit anderen Tools geschriebenen Code und die Konfigurationsänderungen koordinieren. Eventuell muss sogar noch eine N+1- oder N+2-Einrichtung für größere Projekte berücksichtigt werden. All diese Änderungen müssen abgestimmt, ordnungsgemäß sequenziert und zum richtigen Zeitpunkt sicher in QS-, Vorproduktions- und Produktionssystemen bereitgestellt werden – und genau hier kommen SAP-spezifische Tools wie ActiveControl und Testimony ins Spiel. Durch die Automatisierung der Transportbereitstellung und mithilfe vollständiger Regressionstests beschleunigen sie Änderungen in SAP-Umgebungen erheblich und verringern das damit einhergehende Risiko. (Darauf gehen wir in den Webinaren näher ein.)

Unsere Erfahrung hat gezeigt, dass abapGit und Container viel Potenzial für die Erweiterung von CI/CD-Workflows in SAP bieten, die Entwicklung beschleunigen und es den SAP-Teams ermöglichen, besser auf die sich ständig ändernden Unternehmensanforderungen zu reagieren. Aber wir stehen noch ganz am Anfang, und es wird interessant sein zu beobachten, wie SAP-Kunden diese neuen Technologien annehmen und welche Ergebnisse sie letztendlich liefern.

Umfassende Informationen in unserem Webinar zu abapGit und Containern

Nähere Informationen zum Potenzial für die Git-fähige Entwicklung in SAP erhalten Sie in unseren On-Demand-Webinaren Erweiterung von CI/CD-Workflows in SAP-Landschaften: Eine Einführung in Container und die verteilte Entwicklung und Erweiterung von CI/CD-Workflows in SAP-Landschaften:Eine Live-Demonstration von abapGit-basierten WorkflowsSie können uns natürlich gerne auch kontaktieren, um zu besprechen, wie die DevOps-Automatisierung in Ihren SAP-Umgebungen um Tools wie abapGit ergänzt werden könnte. 

Teile diesen Beitrag

Kürzliche Posts

Eine Demo anfordern

Learn More About Our DevOps and Testing Platform

Suchen

Mehr lesen