Continuous Integration in SAP – geht das?
Bei Programmierprojekten arbeiten meist viele Mitarbeitende zusammen – somit stehen Codeänderungen hier an der Tagesordnung. Damit Sie stets einen Überblick über Änderungen behalten, gibt es Prozesse wie u. a. Continuous Integration. Doch können Sie diesen Prozess auch in SAP umsetzen? Was dieser Prozess genau ist und ob Sie diesen nun in SAP einsetzen können, erfahren Sie in diesem Beitrag.
Was ist Continuous Integration?
Continuous Integration (kontinuierliche Integration oder auch permanente Integration) ist ein Prozess, mit dem Sie einen immer aktuellen, lauffähigen Stand eines Projektes gewährleisten. Diesen erreichen Sie durch eine genaue Prüfung der Qualität von neuen Entwicklungen und Anpassungen. Der Prozess legt fest, dass eine Entwicklung, die den Qualitätsanforderungen nicht entspricht, nicht Teil des aktuellen Stands werden kann.
Um die Reaktionszeiten des Systems möglichst niedrig zu halten, greifen Sie hierbei auf automatisierte Tests zurück. Dies ermöglicht außerdem ein häufiges Anstoßen des Integrationsprozesses mit möglichst kleinen Entwicklungsschritten, wodurch Sie potenzielle Fehler schon früh erkennen können. Doch obwohl sich auch hier Fehler einschleichen können, haben Projekte, die auf Continuous Integration bauen, einen deutlich stabileren Code.
Continuous Integration in SAP
Der Kern von Continuous Integration ist es, die gemeinsame Codebasis durch automatisierte Prozesse immer lauffähig zu halten. Doch da sich die Entwicklung in SAP von der Softwareentwicklung in vielen anderen Branchen stark unterscheidet, müssen Sie das Konzept der Continuous Integration neu interpretieren.
Es ist relativ selten, dass Entwickler*innen über eine eigene SAP-Instanz verfügen und den Code erst beim Transport auf eine neue Instanz integrieren. Stattdessen wird beim Arbeiten auf einem gemeinsamen Entwicklungssystem bei jeder Aktivierung die gemeinsame Codebasis direkt verändert – außer der Syntaxprüfung werden keine weiteren Tests durchgeführt.
In den meisten SAP-Systemlandschaften lässt sich aber eine Instanz finden, die der Intention einer lauffähigen Codebasis entspricht. Üblicherweise ist das das System, auf dem die Akzeptanztests mit Nutzenden durchgeführt werden. Alle rein funktionalen Tests sollten vor der Integration in dieses System stattgefunden haben.
Die Codebasis in SAP sauber halten
Eine weitere Schwierigkeit ist es, das Integrationssystem sauber zu halten. Wenn Entwickler*innen eine Änderung integrieren möchten, läuft das in SAP in der Regel über einen Transport. Sollte nun ein Test fehlschlagen, können Entwickler*innen den Transport nicht ohne weiteres rückgängig machen. Damit ist nicht nur die Funktionalität der Codebasis kompromittiert, sondern auch das Testen jeder nachfolgender Integration.
Eine Möglichkeit ist das Blockieren neuer Transporte bis Sie den Fehler behoben oder das System auf den ursprünglichen Stand zurückgesetzt haben. Nicht die schönste, aber eine pragmatische Lösung, die relativ einfach zu implementieren ist. Für einen runderen Ablauf lohnt es sich hier eine externe Versionsverwaltung einzubinden, die das Rückrollen vereinfacht. Die neue SAP-Lösung hierzu nennt sich gCTS.
Integrationsprozesse Automatisieren
Viele Softwareprojekte verlassen sich bei der Steuerung von Continuous Integration Prozessen auf Jenkins. Die Open-Source-Software macht es einfach, einen Server aufzusetzen der die verschiedenen Schritte im Integrationsprozess steuert. Dank einer einfach gehaltenen Konfigurationssprache ist eine Anpassung des Prozesses nicht nur Programmierenden vorbehalten.
Auch SAP baut auf Jenkins und bietet mit https://sap.github.io/jenkins-library/ (project piper) eine vorgefertigte, leicht zu konfigurierende Continuous Integration Pipeline für ABAP Projekte. Gerade im Zusammenspiel mit abapGit oder gCTS lässt sich damit der ABAP Entwicklungsprozess auf ein vollkommen neues Level der Qualitätssicherung heben.
Mit Continuos Integration SAP-Projekte übersichtlicher halten
Je mehr Mitarbeitende an einem gemeinsamen Entwickler-Projekt arbeiten, desto mehr Codeänderungen können aufkommen, die Sie zuerst nicht im Blick haben. So können aber schnell Fehler aufkommen, die Sie erst später entdecken. Daher hilft es Ihnen hier, Continuous Integration einzusetzen. Doch da das SAP-Konzept so anders ist, müssen Sie Continuous Integration hier in einem anderen Licht betrachten.
Falls Sie Fragen haben, wie Sie Continuous Integration in Ihre SAP-Projekte integrieren können, dann stellen Sie mir diese gerne. Ich freue mich auf den Kontakt!