Neue Wege in der Abap-Entwicklung mit Git und der Cloud
Ob großes Entwicklungshaus oder mittelständisches Unternehmen mit nur einigen Entwicklern – hier zeigt sich das volle Potenzial im Zusammenspiel von SAP mit bekannten Open-Source-Tools.
Quasi jeder Entwickler kennt die Vorteile der Open-Source-Tools rund um Git: Automatisierte Vorgänge im Entwicklungsprozess mit Continous Integration und Continous Deployment, dezentrales Arbeiten von Teams an einer Software, vielfältige Möglichkeiten der Qualitätssicherung durch moderne Freigabeprozesse und integriertes Versionsmanagement sind nur einige der Eckpunkte. Doch wie integriert man Git sinnvoll in die SAP-Entwicklung?
Hierzu gibt es das Projekt abapGit des Dänen Lars Hvam, auch bekannt unter seinem Synonym larshp. Installiert wird die Software über die Transaktion SE38 oder SE80, indem man den kompletten 75.000 Zeilen langen Quellcode ausführt.
Updates funktionieren dann direkt aus dem Report heraus. Nach der Installation ist es möglich, Abap-Software-Projekte aus quasi jedem Git in das lokale Abap-System zu klonen. Welches Git man hier einsetzt, spielt übrigens keine Rolle. Egal ob öffentlich oder on-premises im eigenen oder outgesourcten Rechenzentrum.
Doch wo liegt jetzt der große Vorteil, in ein SAP-System, das schon über ausgefeilte Entwicklungsmechanismen verfügt, eine Verbindung mit einem Git-Server herzustellen?
Ein Mehrwert kann sein, dass in der Cloud jeder Entwickler außerhalb der normalen Transportstruktur sein eigenes Entwicklungssystem zur Verfügung gestellt bekommt und so jede Entwicklung unabhängig vorangetrieben werden kann.
Da diese Systeme nur benötigt werden, wenn auch daran entwickelt wird, können sie in quasi jeder Cloud betrieben werden. Um Kosten zu sparen, werden die nicht genutzten Systeme in Ruhezeiten einfach abgeschaltet.
Die dabei erzielten Einsparungen sind bei einer On-premises-Installation nicht zu erreichen, da die Hardware immer vorgehalten werden muss. Gerade jungen und ideenreichen Fachkräften kann man hier die Möglichkeit verschaffen, ohne direkten Impact auf das Entwicklungssystem zu arbeiten und Ideen ohne Risiko umzusetzen.
Umgekehrt kann natürlich auch klassisch zentral entwickelt werden und ein stabiler Stand der Software vollautomatisiert in einem QA-System aus der Cloud zur Verfügung gestellt werden. Dort wird die Software nun automatisch oder durch eine Gruppe von Testbenutzern getestet.
Danach kann das System gelöscht werden oder pausiert. Die Automatisierung sowie die Dokumentation dieser Prozesse werden im Git vorgenommen. Erstere ist um beliebige Stufen erweiterbar und muss sich nicht nur auf funktionale Tests beschränken.
Es können beispielsweise auch weiterführende Sicherheitstests durchgeführt werden. Mit abaplint sind außerdem automatisierte Code-Prüfungen nach jedem Commit möglich. Am Beispiel der Entwicklung von abapGit selbst, die öffentlich über Github mithilfe von abapGit abläuft, sieht man, wie gut dies funktionieren kann.
Ein anderer Vorteil ergibt sich für Entwicklungen von Softwarepartnern der SAP. Für Individualsoftware gilt, dass immer wieder ähnliche Funktionen geschrieben werden und das Rad immer wieder neu erfunden wird.
Dabei treten immer wieder neue Fehler auf oder nützliche Funktionen fehlen. Der Aufwand für Evaluierung, Testing und Pflege wird dadurch sehr hoch. Durch die Benutzung eines zentralen Git kann man sich hier einen Bestand an ausgereiften Tools vorhalten, auf die man bei Bedarf zurückgreift.
Dies kann intern geschehen oder auch mit der Open-Source-Community geteilt werden. Unter https://dotabap.org/ existiert bereits eine Plattform mit einer Sammlung von Abap-Projekten im Open-Source-Bereich.
In der SAP-Entwicklercommunity ist der Gedanke quelloffener Software noch nicht stark verbreitet. Mit einem Generationenwechsel der Entwickler kann man jedoch davon ausgehen, dass sich immer mehr Firmen oder Entwickler in ihrer Privatzeit mit kleinen oder großen Programmen beteiligen werden.
Bei Bewerbungen oder Lebensläufen ist es heute ja schon fast Pflicht, seine Entwicklungen in einem Github- oder Gitlab-Link mitzuliefern.