- SAP BTP
- SAP Entwicklung
Side by Side Extentions
Maximieren Sie Ihre Geschäftsprozesse mit Side By Side Extensions für SAP BTP
Profitieren Sie von unseren Lösungen für Side-by-Side Extensions im Bereich SAP BTP. Mit unseren Lösungen können Sie die Funktionalität Ihrer SAP-Software über den Standard hinaus erweitern und so die individuellen Besonderheiten Ihres Unternehmens optimal abbilden.
Unsere modernen SAP Side-by-Side Extensions basieren auf den Regeln der 12-Faktoren-Applikationen. Diese ermöglichen eine effiziente und effektive Erweiterung Ihrer SAP S/4 Hana Software. SAP S/4 Hana ist bekannt für seine Komplexität und die umfangreichen Funktionen, die es zur Abbildung von Geschäftsprozessen bietet. Doch wir wissen, dass kein Unternehmen wie das andere ist und dass es unmöglich ist, alle individuellen Besonderheiten „out-of-the-box“ abzubilden.
Deshalb bieten wir mit unseren Side-by-Side Extensions eine Lösung, die es Ihnen ermöglicht, die Funktionalität Ihrer SAP-Software individuell zu erweitern. Diese Erweiterungen sind kein Novum, sondern gehören zum Alltag vieler unserer zufriedenen SAP-Kunden. Mit den Lösungen von Slenderiser können Sie sicher sein, dass Ihre individuellen Geschäftsprozesse optimal abgebildet und unterstützt werden.
Entdecken Sie die Möglichkeiten, die Ihnen unsere Side-by-Side Extensions bieten, und nehmen Sie Ihr SAP-System auf das nächste Level. Slenderiser – Ihr Partner für individuelle SAP-Lösungen.
Als langjähriger Partner im Bereich der Softwareentwicklung unterstützen wir von Slenderiser Sie bereits seit vielen Jahren bei der Konzeption, Implementierung, Tests und Wartung verschiedener Erweiterungen. In der Vergangenheit handelte es sich dabei in der Regel um Z-Programme. Mit dem aktuellen Trend zur Migration von lokalen Servern hin zur Cloud hat sich auch die Art und Weise verändert, wie solche Erweiterungen konzipiert und entwickelt werden. Insbesondere für S4/Hana stehen nun grundsätzlich zwei gängige Möglichkeiten zur Erweiterung bereit: In-App-Erweiterungen sowie Side-by-Side Extensibility. Wir wissen aus Erfahrung, dass diese Veränderungen eine Herausforderung darstellen können. Daher möchten wir Ihnen versichern, dass unser erfahrenes Team Ihnen weiterhin kompetente Unterstützung bietet. Wir sind bestrebt, Ihre Anforderungen an die Entwicklung von Softwarelösungen zu verstehen und maßgeschneiderte Lösungsansätze anzubieten.
Martin Thümichen
T: +49 211-73166-797
E: sap@slenderiser.de
Wählen Sie den Service den Sie brauchen. Ob Konzept, Entwicklung oder Integration. Slenderiser berät Sie bei jedem Anliegen mit unserem Experten-Team.
SAP Side By Side Extentions
Die Erweiterungen für SAP müssen den aktuellen und zukünftigen Anforderungen an Software gerecht werden, indem sie cloud-nativ sind. Doch was bedeutet cloud-nativ überhaupt? Laut der Cloud Native Computing Foundation (CNCF) ermöglichen cloud-native Technologien Unternehmen die Implementierung und den Betrieb skalierbarer Anwendungen in modernen, dynamischen Umgebungen. Die SAP betrachtet Microservices, Continuous Delivery und die Verwendung von Containern als unverzichtbare Säulen für den Aufbau von cloud-nativen Anwendungen.
Typische Use cases/Anwendungsfälle sind:
- Proxy Application (hierunter zählen z.B. Registration-Website oder Online-Store)
- Convenience Application / Benutzerfreundliche Anwendung
- Substitute Application / Vertreter Anwendung
- Pre-Processing Application / Vorverarbeitungsanwendungen
- Post-Porcessing Application / Nachbearbeitungsanwendungen
- Analytical Application / Analytische Anwendungen
Bei der Entwicklung von cloud-nativen Anwendungen haben sich im Laufe der Zeit bewährte Empfehlungen herausgebildet. Die ersten Überlegungen zu diesem Thema wurden im Jahr 2011 von den Entwicklern um Adam Wiggins von Heroku angestellt.
Bevor wir uns im Detail mit den einzelnen Best-Practice Regeln befassen, möchten wir Ihnen zunächst einen kurzen Überblick über das Grundgerüst einer Zwölf-Faktor-Applikation geben. Zu den sogenannten „fundamentalen Richtlinien einer zwölf Faktoren Applikation“ zählen.:
- Trennung zwischen Applicationscode und Laufzeitkonfiguration / Separation of application code and runtime configuration
- Zustandslose und in sich geschlossene Anwendungsprozesse / Stateless and self-contained application processe
- Nachverfolgbarkeit und Reproduzierbarkeit aller Änderungen / Traceability and reproducibility of all changes
Eine Zwölf-Faktor-Applikation besteht aus den 12 folgenden Empfehlungen bzw. „Regeln“:
- Codebase: Eine Anwendung verfügt über eine einzige Codebase und somit auch über ein Repository. Dies stellt einen grundlegenden Unterschied zu verteilten Systemen dar und wird mithilfe aktueller Versionsverwaltungstools wie Github, Gitlab usw. gewährleistet. Features werden in einem eigenen Feature-Branch entwickelt, in einen Non-Prod-Branch integriert und schließlich ins produktive System überführt. Dieser Ablauf kann vom Entwicklerteam angepasst werden.
- Dependencies: Es ist von entscheidender Bedeutung, dass Dependencies in einer Zwölf-Faktor-Applikation isoliert werden. Um dies effektiv umzusetzen, greifen viele Entwickler auf spezielle Werkzeuge zurück, die eine saubere Verwaltung der Abhängigkeiten ermöglichen. Beispiele hierfür sind Maven oder Gradle für Java-Anwendungen, CPAn für Perl-Programme oder Rubygems für Ruby-Projekte. Es darf keinesfalls toleriert werden, dass mehrere Anwendungen sich gemeinsame Abhängigkeiten teilen. Dies würde nicht nur zu einem unübersichtlichen und fehleranfälligen System führen, sondern auch gegen das Prinzip der Isolierung verstoßen. Jede Applikation sollte ihre eigenen Dependencies haben und diese klar definiert halten. Durch die konsequente Einhaltung dieses Grundsatzes wird nicht nur die Stabilität und Sicherheit der Anwendung gewährleistet, sondern auch deren Skalierbarkeit verbessert. Daher sollten Entwickler stets darauf achten, dass jede Zwölf-Faktor-Applikation ihre Dependencies ordnungsgemäß verwaltet und isoliert hält.
- Config: Durch die Verwendung von Umgebungsvariablen zur Steuerung der Konfigurationseinstellungen in unserem Code können wir eine effiziente und flexible Methode implementieren, um unsere Anwendungen für verschiedene Entwicklungsstufen anzupassen. Indem wir diese Einstellungen außerhalb des Codes platzieren, ermöglichen wir es den unterschiedlichen Stages wie Development, Test und Production, unabhängig voneinander konfiguriert zu werden. Dies bedeutet, dass wir keine Änderungen am Sourcecode vornehmen müssen, um die Einstellungen je nach Umgebung anzupassen. Diese Vorgehensweise bietet nicht nur mehr Flexibilität bei der Entwicklung unserer Anwendungen, sondern erhöht auch die Sicherheit und Wartbarkeit unseres Codes. Durch das Auslagern sensibler Informationen wie Zugangsdaten oder API-Schlüssel in Umgebungsvariablen minimieren wir das Risiko von Datenlecks oder unbefugtem Zugriff auf sensible Informationen. Insgesamt ist die Nutzung von Umgebungsvariablen zur Konfiguration unserer Anwendungen eine bewährte Best Practice im Software Engineering. Sie ermöglicht es uns, unsere Applikationen effektiv zu verwalten und problemlos zwischen verschiedenen Entwicklungsstufen zu migrieren – ohne dabei Kompromisse bei der Sicherheit oder Effizienz einzugehen.
- Backing services: Backing-Services in einer Cloud-nativen Anwendung spielen eine entscheidende Rolle, da sie alle miteinander über ein Netzwerk kommunizierenden Anwendungen oder Services umfassen. Diese können von Datenbanken über Filesharing bis hin zu E-Mail-Services reichen. Trotz der räumlichen Trennung werden diese entfernten Dienste genauso behandelt wie lokale Services, was zu einer erheblichen Vereinfachung und Reduzierung der Code-Komplexität führt. Die Verbindung zwischen den verschiedenen Services erfolgt dabei über URLs, während die Konfiguration dieser Elemente durch Umgebungsvariablen gesteuert wird. Durch die klare Struktur und das standardisierte Vorgehen bei der Integration von Backing-Services wird die Effizienz und Skalierbarkeit cloud-nativer Anwendungen maßgeblich verbessert.
- Build, release, run: Es sollten eindeutige Phasen des Lebenszyklus einer deployten Version geben. Innerhalb der Buildphase wird ein ausführbares Bündel, das sogenannte Build, erzeugt. In der Releasephase wird nun das zuvor erzeugte Build anhand der Konfiguration (siehe Faktor 3) kombiniert und deployt. Jede dieser Phasen ist als eigenständig zu betrachten.
- Processes: Das Vorgehen zur Entwicklung einer Twelve-Factor App stellt den Prozess in das Zentrum. Die Prozesse einer Twelve-Factor App sind zustandslos und setzen die Shared-Nothing-Architektur um. Dies bedeutet, dass keine Daten im Speicher des Prozesses außerhalb seiner Laufzeit verfügbar sind. Es wird empfohlen, RAM nur für temporäre Daten zu verwenden und stattdessen auf Datenbanken oder Caches als Langzeitspeicher zurückzugreifen. Durch diese Herangehensweise ist es möglich, bei Bedarf zusätzliche Instanzen der Anwendung zu erzeugen, um eine hohe Belastung zu bewältigen. Dadurch wird die Skalierbarkeit verbessert und Engpässe vermieden. Es ist wichtig sicherzustellen, dass alle Komponenten der Applikation gut miteinander kommunizieren können und dass sie unabhängig voneinander funktionieren. Die Tonalität dieses Abschnitts sollte überzeugend sein, da die Einhaltung der Twelve-Factor Prinzipien entscheidend für die erfolgreiche Entwicklung moderner Apps ist. Durch das Verständnis dieser Konzepte kann eine effiziente und robuste Anwendung geschaffen werden, die flexibel auf verschiedene Anforderungen reagieren kann.
Beratung zur Side by Side Extentions
Wir beantworten Ihnen gerne alle Ihre Fragen rund um SAP BTP.
Vereinbaren Sie jetzt ein unverbindliches Beratungsgespräch und machen Sie den
nächsten Schritt in Ihrer digitalen Transformation!
- Port binding: Jeder Prozess auf einem Computer wird an einen eindeutigen Port gebunden, um sicherzustellen, dass Daten korrekt übertragen werden können. Dadurch wird vermieden, dass verschiedene Prozesse durcheinander geraten und es zu Konflikten kommt. Sollte es dennoch zu möglichen Kollisionen kommen, kann die Lösung durch die Verwendung von Port-Weiterleitung erfolgen. Diese Methode ermöglicht es, den Datenverkehr gezielt umzuleiten und so Engpässe oder Störungen zu vermeiden. Durch eine effektive Port-Weiterleitung kann die Effizienz der Kommunikation zwischen verschiedenen Anwendungen verbessert werden und somit für reibungslose Abläufe sorgen. Daher ist es wichtig, diese Technik richtig einzusetzen, um potenzielle Probleme frühzeitig zu erkennen und entsprechend darauf reagieren zu können.
- Concurrency: Durch das horizontale Skalieren der Prozesse wird die Möglichkeit geschaffen, mehrere Instanzen parallel laufen zu lassen und somit eine höhere Effizienz und Leistungsfähigkeit zu erreichen. Dieser Ansatz ermöglicht es, mit steigender Last auf dem System flexibel umzugehen, da einfach weitere Instanzen hinzugefügt werden können, um die zusätzliche Belastung zu bewältigen. Auf der anderen Seite kann bei geringerer Last die Anzahl der Instanzen reduziert werden, um Ressourcen einzusparen und Kosten zu senken. Durch dieses dynamische Management der Prozesse können Unternehmen ihre Betriebskosten optimieren und gleichzeitig eine hohe Verfügbarkeit ihrer Dienste gewährleisten. Insgesamt bietet das horizontale Skalieren von Prozessen zahlreiche Vorteile in Bezug auf Flexibilität, Leistungsfähigkeit und Kosteneffizienz. Es ist daher ein wichtiger Bestandteil moderner IT-Infrastrukturen und trägt maßgeblich dazu bei, den stetig wachsenden Anforderungen an digitale Services gerecht zu werden.
- Disposability (Veräußerbarkeit): Um den genannten Punkt in Faktor 8 erfolgreich umzusetzen, ist es von entscheidender Bedeutung, dass Instanzen effizient und zuverlässig sowohl gestartet als auch gestoppt werden können. Dies ermöglicht eine flexible Skalierung der Ressourcen je nach aktuellem Bedarf und sorgt somit für eine optimale Nutzung der vorhandenen Kapazitäten. Die Fähigkeit zur schnellen Bereitstellung und Beendigung von Instanzen wird unter dem Begriff “Disposability” zusammengefasst. Durch die Gewährleistung einer hohen Disposability gewährleisten Unternehmen nicht nur einen reibungslosen Betrieb ihrer Anwendungen, sondern auch eine erhöhte Flexibilität bei der Bewältigung von Lastspitzen oder unerwarteten Ereignissen. Darüber hinaus trägt die Möglichkeit, Instanzen schnell zu starten und zu stoppen, dazu bei, Kosten zu sparen und Ressourcen effizient einzusetzen. Es ist daher unerlässlich, dass Organisationen über robuste Prozesse und Technologien verfügen, um die Disposability ihrer Systeme sicherzustellen. Nur so können sie agil auf Veränderungen reagieren und ihre Leistungsfähigkeit kontinuierlich verbessern. Eine hohe Disposability ist somit ein wesentlicher Erfolgsfaktor für moderne Unternehmen im digitalen Zeitalter.
- Dev/Prod – Parity: Es ist wichtig, dass die Phasen der Entwicklung, des Tests und der Produktion einander ähneln. Dies erleichtert Continuous Delivery und minimiert mögliche Inkompatibilitäten. Lange Zeiträume zwischen Entwicklung und Bereitstellung sollten vermieden werden, um den Unterschied in der Anzahl der Features gering zu halten.
- Logs (Protokolle): Protokolle spielen eine wichtige Rolle bei der Fehlerbehandlung in der Softwareentwicklung, auch bei Twelve-Factor Apps. Allerdings werden Protokolle heutzutage nicht mehr wie früher üblich in einer Datei auf der Festplatte gespeichert, sondern vielmehr als Event-Datenstrom über alle Anwendungen hinweg. Um dies besser zu strukturieren, können einzelne Protokolle beispielsweise als JSON-Nachrichten abgelegt werden.
- Admin processes (Verwaltungsprozesse): Klassische Methoden zur Verwaltung von Verwaltungsprozessen lassen sich in der „Cloud“ nur schwer realisieren. Ein Batchjob, der zu einem festgelegten Zeitpunkt oder nach einer bestimmten Dauer ausgeführt wird, ist hier nicht effizient. Cloud-native Anwendungen sind gut skalierbar und können Ressourcen je nach Bedarf hinzufügen oder entfernen. Daher kann im Voraus nicht genau bestimmt werden, wie viele Instanzen gleichzeitig aktiv sein werden. Stattdessen wird ein REST-Endpunkt bereitgestellt, der bei Bedarf aufgerufen wird. Auf diese Weise wird der Batchjob einmalig (von außen) gestartet und von einer Instanz ausgeführt.
Fazit zu Side by Side Extentions
Die Cloud ist mehr als nur ein Modewort und bietet eine Vielzahl von Vorteilen im Vergleich zu herkömmlichen Anwendungen. Selbst unter S/4 Hana bleibt die Möglichkeit bestehen, individuelle Erweiterungen vorzunehmen. Insbesondere die Entwicklung eigener SAP Side-by-Side Extensions wird empfohlen. Damit diese Erweiterungen jedoch nahtlos und effizient funktionieren, sollten einige Regeln beachtet werden. Dieser Blogbeitrag behandelt die wichtigsten Aspekte moderner Programmierung.
Um langfristig erfolgreich in einer zunehmend digitalisierten Welt am Markt bestehen zu können, unterstützt Slenderiser Sie gerne bei der Entwicklung von modernster Software und begleitet Sie reibungslos auf dem Weg in die Cloud.
Die Cloud ist heutzutage mehr als nur ein Trend und bietet eine Vielzahl von Vorteilen im Vergleich zu herkömmlichen Anwendungen. Selbst unter S/4 Hana besteht die Möglichkeit, individuelle Erweiterungen vorzunehmen, um die Funktionalität der Systeme anzupassen. Besonders empfohlen wird die Entwicklung eigener SAP Side-by-Side Extensions, um maßgeschneiderte Lösungen für spezifische Anforderungen zu schaffen. Damit diese Erweiterungen reibungslos funktionieren und effizient arbeiten können, sollten bestimmte Regeln beachtet werden. In diesem Blogbeitrag werden daher die wichtigsten Aspekte moderner Programmierung behandelt, um sicherzustellen, dass Ihre Softwarelösung optimal aufgestellt ist. Um langfristig erfolgreich in einer zunehmend digitalisierten Welt bestehen zu können, unterstützt Slenderiser Sie gerne bei der Entwicklung von hochmoderner Software und begleitet Sie professionell auf dem Weg in die Cloud. Wir stehen Ihnen zur Seite, damit Sie mit innovativen Technologien Schritt halten können und Ihr Unternehmen zukunftsfähig machen. Lassen Sie uns gemeinsam an Ihren individuellen Lösungen arbeiten und Ihre Prozesse optimieren – für eine erfolgreiche Zukunft im digitalen Zeitalter!