ABAP Cloud - Clean Core (Szenarien)
Lass uns in diesem Artikel noch einmal die Clean Core Architektur mit ABAP Cloud anschauen, wo diese eingesetzt wird und wo du deine Anwendungen bauen kannst.
Inhaltsverzeichnis
In diesem Artikel schauen wir uns einmal Clean Core im Hinblick auf ABAP Cloud an und schauen, wo du deine Anwendungen und Erweiterungsszenarien in Zukunft bauen kannst. Der Artikel entstand in Zusammenarbeit mit Michael Keller, Volodymyr "Volo" Vashchenko und Dominik Panzer.
Einleitung
Aktuell geht das Gerücht um, dass du nur Clean Core werden kannst, wenn du die BTP für deine Erweiterungen verwendest und um deine Addons zu entwickeln. Als SAP mit dem Thema Clean Core gestartet ist, war dies auch noch der Fall, da mangels Alternativen die Erweiterungsmöglichkeiten des Core Systems bei null lagen. Im Prinzip konntest du dir schon damals die Frage stellen: Wie kann ich Clean Core entwickeln? Die Antwort wäre: Wenn ich eine Eigenentwicklung ohne Berührungspunkte zum Standard entwickle und einsetze. Also nur freigegebene und dokumentierte Funktionsbausteine verwende.
Clean Core
In diesem Abschnitt wollen wir auf das Thema Clean Core eingehen und wie es auf den unterschiedlichen Plattformen gehandhabt wird.
Überblick
Die letzten Jahre wurde deshalb fleißig an neuen Möglichkeiten für die Unternehmen gearbeitet, die sich auf die Reise zu Clean Core machen wollten. Es entstand die Idee von ABAP Cloud, dem Entwicklungsmodell für Clean Core. In diesem Artikel werden wir auf ABAP Cloud als Entwicklungsmodell schauen und dabei die Punkte Cloud Application Programming (CAP) und SAP Build außen vor lassen. Schauen wir uns dazu die bekannte Übersicht einmal im Detail an.
ABAP Cloud ist der Standard, wenn es um die Entwicklung auf dem SAP BTP ABAP Environment und S/4HANA Cloud geht. Dort kannst du nur dieses Modell zur Entwicklung von Erweiterungen nutzen. ABAP Cloud ist mittlerweile auch für S/4HANA 2022 On-Premise verfügbar und das ist der entscheidende Punkt.
Cloud
Zur Cloud gehört die S/4HANA Cloud und das ABAP Environment. Dabei handelt es sich bei der S/4HANA Cloud um ein durch SAP bereitgestelltes System mit den Core Modulen und Standardprozessen. Hier hast du die Möglichkeiten das System per Customizing auf deine Anforderungen anzupassen. Sollte das nicht reichen, können per Key User Extensibility leichte und einfache Anpassungen vorgenommen werden. Hast du Entwickler zur Hand, kannst du auch per Developer Extensibility Erweiterungen am System durchführen, BADIs implementieren und Anwendungen mit RAP zur Verfügung stellen. Das System erhält jedes halbe Jahr ein großes Update.
Das ABAP Environment ist eine zweite Möglichkeit der Erweiterung des Core Systems. Auf dem System gibt es nur die nötigen Basismodule, keine Fachmodule. Die Entwicklung auf dem System wird als Side-by-Side Entwicklung bezeichnet. Grundsätzlich entwickelst du hier wie auf dem S/4HANA Cloud System, außer dass du die Daten erst per Schnittstelle aus einem anderen System lesen musst. Das System erhält alle drei Monate ein Update.
Vorteil der Cloud Systeme ist der Betrieb durch SAP. Also Kunde musst du dich nicht um das Upgrade deiner Systeme kümmern und alle Erweiterungen sind automatisch Clean Core. Allerdings solltest du ebenso nach den Updates deine Anwendungen testen, da auch Änderungen oder Neuerungen deinen bestehenden Code beeinflussen können, dass sollte allerdings nicht so oft passieren.
On-Premise
Bist du On-Premise unterwegs, hast du die Möglichkeit seit dem Release S/4HANA 2022 die ersten ABAP Cloud Features zu testen und kannst mit S/4HANA 2023 die meisten Features nutzen. Damit hast du die Möglichkeit auch On-Premise Clean Core zu entwickeln. Im Grunde stehen dir die gleichen Mittel zur Verfügung, wie in einem S/4HANA Cloud System.
Da du wahrscheinlich sehr viele Classic ABAP Entwicklungen noch in deinem System haben wirst, beginnt für dich hier die Reise Richtung Clean Core. Da wir nicht wissen, was nach dem zugesicherten Wartungsende 2040 passiert, könnte eine Idee sein, dein System Richtung Clean Core zu bringen, um dann fit für die Public Cloud zu sein und nicht dann erst mit der Migration des Bestandscoding zu beginnen.
Auswahl
Mit der On-Stack und Side-by-Side Extensibility stehen dir zwei Möglichkeiten für die Erweiterung deines Core Systems zur Verfügung. In diesem Abschnitt schauen wir uns einmal an, wann welches Szenario Sinn macht und wann du es nicht einsetzen solltest.
Hinweis
Bevor du über die beiden Szenarien nachdenkst, solltest du dir Gedanken machen, ob diese in deinem Kontext Sinn machen oder die Umsetzung nicht zu 100% per ABAP Cloud On-Stack möglich sind. Beim Thema Lizenzen und Kosten, kann sich aber auch ein Blick Richtung BTP lohnen, da gewisse Szenarien günstiger werden könnten.
Grundsätzlich sind die folgenden Punkte so zu lesen, wenn die Punkte zutreffen, dass du in diesem Szenario gut aufgehoben bist (Positivliste).
On-Stack
In diesem Fall schauen wir uns eine Umsetzung im On-Premise System an. Dabei sollten wir uns auf jeden Fall Szenarien anschauen, die eng gekoppelt sind, da diese schwer Side-by-Side umzusetzen sind.
Szenario | Beschreibung |
---|---|
Anzahl der Lesezugriffe | Sollen sehr viele Daten (> 50000 Datensätze*) gelesen werden, dann lohnt sich die Umsetzung auf demselben System, um die Übertragung zu reduzieren. Sonst müssten immer sehr viele Daten in die BTP übertragen werden, was den Prozess langsam macht. |
Anzahl der Änderungen | Sollen sehr viele Änderungen im System durchgeführt werden, dann sollte die Erweiterung im Core liegen (Massenupdate von Daten). Verbindungsabbrüche könnten hier zu Schiefständen führen. Einzelne Updates über eine API sollten allerdings kein Problem darstellen. |
Aktuelle LUW | Soll die Erweiterung in der gleichen "Logical Unit of Work" (LUW) durchgeführt werden und kann nicht entkoppelt per Event durchgeführt werden? |
BADI | Muss ein BADI implementiert werden, dann nur auf dem dazugehörigen System. Remote-BADI stehen nicht zur Verfügung und machen den Prozess instabil, wenn bei der Verarbeitung noch ein anderes System gerufen werden muss. |
Wichtigkeit | Wie kritisch und wichtig ist der Prozess für das Unternehmen? Aktuell ist das ABAP Environment kein Hochverfügbarkeitssystem und bei Ausfall droht der Prozess zu stehen (System, Verbindung, Cloud Connector). |
Standard | Werden viele Standardschnittstellen und Funktionen genutzt, macht eine Verschalung als Schnittstelle wenig Sinn und erhöht nur die Komplexität. |
Kosten | Sind alle User bereits mit Lizenzen ausgestattet, können die Zusatzkosten für ein zusätzliches System vermieden werden. |
Side-by-Side
In diesem Fall schauen wir uns das Side-by-Side Szenario mit dem ABAP Environment an. Die Anwendungen können hier entkoppelt gebaut werden und müssen nicht zwingend im Core System erstellt und betrieben werden.
Szenario | Beschreibung |
---|---|
Eigenes Datenmodell | Besitzt die Anwendung ein eigenes Datenmodell und muss nur ab zu zur Anreicherung der Daten Informationen dazu lesen, dann kann dieses in einem eigenen System umgesetzt werden. |
Innovationen | Du möchtest mit dem aktuellsten ABAP Framework und Features arbeiten, wie zum Beispiel Joule. Im ABAP Environment gibt es alle 3 Monate Verbesserungen und Erweiterungen. |
Lizenzen | Auf dem ABAP Environment werden keine S/4HANA Userlizenzen pro User benötigt. Die User sind im Basispreis enthalten und es kann über einen technischen User auf On-Premise Daten zugegriffen werden. |
Prozesse | Du benötigst für deine Prozesse extra Rechenleistung? Mit der Skalierung kannst du intensive Prozesse auf die BTP auslagern, um die zusätzliche Rechenleistung zu nutzen und den Core zu entlasten. |
Schnittstellen | Stehen sehr viele Standardschnittstellen (OData, Webservices) zur Verfügung. Mit wenig Eigenentwicklung auf dem Core, können Side-by-Side Szenarien leicht umgesetzt werden. |
Zentrales Szenario | Wenn du ein Szenario hast, bei dem du viele unterschiedliche Systeme anbindest, dann kann ein nicht fachliches System als Knoten hilfreich sein (Monitoring, Verteilung, Hub). |
Weitere Punkte
Neben den beiden Szenarien solltest du dir die weiteren Punkte anschauen, hier gehen wir auf Infrastruktur- und Architekturpunkte ein.
Szenario | Beschreibung |
---|---|
Know How | Grundsätzlich solltest du dir das Know How der ABAP Entwicklung anschauen. Sind bereits die entsprechenden Skills für ABAP Cloud da? Upskilling der Entwickler wird die nächsten Jahre immer wichtiger werden, wenn du Richtung Clean Core möchtest. |
ADS | Benötigst du den Adobe Document Service, um Dokumente zu erstellen? In der BTP gibt es den Service ebenfalls, dieser funktioniert aber anders und die Kosten werden wahrscheinlich höher sein. Hier solltest du aus Architekturpunkten schauen, wie das Unternehmen sich hier aufstellen möchte. |
Sicherheit | Die Systeme werden durch SAP nach bestem Wissen und Gewissen betrieben, allerdings sind diese direkt über das Internet aufrufbar. Sollten Zero Day Exploits bestehen, könnte das System entsprechend angegriffen werden. Das Risiko besteht grundsätzlich bei Cloud Anwendungen. |
ALM | Das richtige Application Lifecycle Management Tool für deine Landschaft finden. Wie möchtest du deine Szenarien verwalten und gemeinsam Produktiv nehmen? |
Middleware | Möchtest du eine Middleware für die Kommunikation verwenden? Grundsätzlich funktioniert die Anbindung über das Communication System oder den Destination Service der BTP ohne Probleme. |
Zentraler Zugriff | Möchtest du einen zentralen Zugriff auf die Apps haben, die On-Stack und Side-by-Side entwickelt wurden, kannst du diese per Deep Link in ein Launchpad einbinden oder benötigst den BTP Service SAP Build Work Zone (Standard Edition). |
Weitere Informationen
Hier noch ein paar weiterführende Informationen zum Thema ABAP Cloud und Side-by-Side Entwicklung.
ABAP Cloud
ABAP Cloud besteht aus den unterschiedlichen Bestandteilen, möchtest du weitere Details haben, empfehlen wir dir die Einführung zum Thema ABAP Cloud. Auf der Übersichtsseite findest du weitere Informationen zu ABAP Cloud, aber auch zu vielen anderen Themen.
Side-by-Side
Beim Thema Side-by-Side Entwicklung hatten wir uns in diesem Artikel auf die relevanten ABAP Themen beschränkt. Wenn es um das Thema Entwicklung in der BTP geht, gehört auch CAP und SAP Build zum Portfolio. Hier solltest du innerhalb der Organisation schauen, wie ihr eure Erweiterungen in der BTP bauen wollt. Dabei solltest du dir die Themen: Skills, Kosten, Verfügbarkeit und Aufwand anschauen, um zu einer Entscheidung zu kommen.
Fazit
Möchtest du in der heutigen Zeit Clean Core erreichen, dann benötigst du nicht mehr zwingend die BTP. Die BTP stellt Services zur Verfügung die Mehrwerte generieren können und die du in deine Anwendungen implementieren kannst. Du solltest dir bei der Umsetzung also anschauen, welche Anforderungen deine Anwendung erfüllen soll.
Weitere Informationen:
(*) Für die Anzahl der Datensätze gibt es keine genaue Zahl, dies ist ein Schätzwert aus eigener Erfahrung. Dies beschreibt die Lesezugriff pro Minute oder durch eine Anfrage.