top of page
Geometric Abstract Shapes_edited.jpg

SAP BTP Deployment – Ein Überblick

Aktualisiert: 11. Juli

In einer zunehmend digitalen Welt müssen Unternehmen flexibel und skalierbar agieren. Anforderungen ändern sich kontinuierlich und es entsteht oft das Gefühl, den Anschluss zu verlieren. Cloud-native Plattformen bieten dabei eine Lösung, um Anwendungen und Services schnell zu entwickeln, bereitzustellen und effizient zu verwalten. Die SAP Business Technology Platform (BTP) ist eine dieser leistungsstarken Plattformen, die Unternehmen bei der digitalen Transformation und Prozessoptimierung unterstützen.

Die Cloud Foundry Umgebung, eine Open-Source-Plattform-as-a-Service (PaaS), stellt eine abstrahierte Umgebung für das Deployment von Anwendungen bereit (z.B. auf der SAP BTP) und bietet die dazu nötige Flexibilität und Skalierbarkeit. In diesem Beitrag geben wir einen Überblick über das Deployment eines Beispiel-Services auf der Cloud Foundry Umgebung sowie über weitere Deployment-Optionen der SAP BTP. Zudem werfen wir einen Blick auf die Integration des XSUAA Services (Authorization and Trust Management Service) und die Nutzung von MTA (Multi-Target-Application)-Extensions.

Voraussetzungen

Bevor mit dem Deployment eines Services auf die SAP BTP Cloud Foundry begonnen werden kann, sollten folgende Voraussetzungen erfüllt sein:


  • SAP BTP Konto: Ein gültiges Konto ist zwingend erforderlich. Bei Bedarf kann ein Trial Account registriert werden: SAP BTP Trial


Optionale Tools zur Entwicklung/Erweiterung eines Beispiel-Services:


  • Cloud Foundry CLI: Das Cloud Foundry Command Line Interface (CLI) ist erforderlich, um den Service via Konsole auf die SAP BTP zu deployen. Download CLI


  • Visual Studio Code: Zur Entwicklung bzw. Erweiterung des Services wird eine Entwicklungsumgebung benötigt. Diese kann natürlich nach Belieben gewählt werden.


  • NodeJS: Node.js ist ein Open-Source Cross-Plattform JavaScript Runtime Environment. Download NodeJs


Entwicklung

Im Fokus dieses Beitrags steht das Cloud Foundry Deployment. Die Entwicklung eines einfachen Node.js-Services wird hier nicht im Detail behandelt. Zur Nachvollziehbarkeit der Entwicklung, Erweiterung und des Deployments steht jedoch ein Beispielcode zur Verfügung: https://github.com/pureconsulting-AG/btpDeploy


Für das Beispiel wurde ein einfacher NodeJs Weather Microservice aufgesetzt. Dieser basiert auf der OpenWeather API. Für einen vollen Funktionsumfang des Testcodings muss hierfür ein Key für die OpenWeather API erstellt und im Coding an der entsprechenden Stelle eingefügt werden.



Cloud Foundry Deployment

Für das Deployment in die SAP BTP Cloud Foundry Umgebung existieren 2 Varianten. Diese unterscheiden sich vor allem in der Art und Weise, wie Anwendungen und deren Komponenten bereitgestellt und verwaltet werden. Im Folgenden sind die wesentlichen Unterschiede aufgeführt.

 

a. Direktes Deployment

Beim direkten Deployment handelt es sich um die Bereitstellung einer "einfachen" Applikation bzw. eines Microservices. Das bedeutet, es sind nicht mehrere interagierende Komponenten im Einsatz, die beim Deployment in einer übergeordneten Struktur gruppiert und verwaltet werden müssen.


Vorteile:

  • Schnelles Deployment

  • Geringe Komplexität in der Verwaltung


Nachteile:

  • Keine übergeordnete Sicht bei mehreren Komponenten

  • Erschwerte Wartung bei komplexeren Architekturen

 


b. MTA Deployment (Multi-Target Application)

MTA definiert eine Methode zur Bereitstellung komplexer Anwendungen, welche aus mehreren Komponenten bestehen. Mithilfe von MTA können verschiedene Dienste (z.B. Datenbanken, UI Applikationen, Back-End Services) zu einer übergeordneten Struktur zusammengefasst und verwaltet werden. Ein Beispiel für ein MTA Deployment wäre eine Webanwendung oder eine API.


Vorteile:

  • Kann auf verschiedene Zielumgebungen deployed werden (z.B. Cloud Foundry, Kubernetes)

  • Bietet eine hohe Flexibilität und eine konsolidierte Bereitstellung verschiedener Dienste

  • Definiert das richtige Zusammenspiel aller darin enthaltenen Teile

 

Nachteile:

  • Erhöhte Komplexität im Gegensatz zum direkten Deployment

  • Initialaufwand für das Erstellen der MTA Datei ist höher

 

Um das Deployment auf die Cloud Foundry Umgebung der SAP BTP durchführen zu können, gibt es folgende Möglichkeiten:

 

CF Command Line Interface (CLI)

Bei der Nutzung des CF CLIs erfolgt das Deployment über Befehle in der Konsole. Die VSCode IDE (natürlich auch im Business Application Studio möglich) hat bereits eine Terminal Integration, weshalb sich eine Entwicklung in diesen Umgebungen anbietet.



Folgend sind die wichtigsten Befehle für ein erfolgreiches Deployment und die zugehörige Überprüfung aufgelistet:


  • cf api <endpoint>: Hiermit wird der API Endpunkt gesetzt (eine einfache Abfrage des aktuell definierten Endpunkts kann über cf api erfolgen)

  • cf login: Login mit dem SAP User

  • cf logout: Logout des aktuellen Users

  • cf push: Deployment der Applikation/des Services anhand der Konfiguration der manifest.yml. Wird sowohl für das initiale Bereitstellen als auch für die Aktualisierung einer Applikation verwendet

  • cf apps: Liefert eine Übersicht über alle Applikationen im spezifizierten Directory

  • cf services: Liefert eine Übersicht über die Service Instanzen im spezifizierten Directory

  • cf logs: Hiermit können die Logs eingesehen werden

  • cf create-service: Erstellt eine Service Instanz

      

Weitere Befehle finden sich unter CLI Cloudfoundry.


Import über die BTP UI Funktionalität 

Bei dieser Variante muss die Applikation/der Service als Datei (z.B. zip) selektiert werden.

Der Einstiegspunkt ist dabei der Space im Subaccount, der als Ziel für das Deployment gelten soll. Dabei kann gewählt werden, ob die Konfiguration anhand der manifest.yml erfolgen, oder ob eine eigene Konfiguration herangezogen werden soll. 

Innerhalb der BTP stehen dann die Funktionen zur Überprüfung/Administration/Überwachung/Logging der/des deployten Applikation/Services zur Verfügung.

 

Erweiterungsoptionen

a. XSUAA (Authentication and Trust Management Service)

Mithilfe des Authentication and Trust Management Services können Benutzerberechtigungen oder Verbindungen zu Identity Providern konfiguriert werden.

 

Der Service SAP Authorization and Trust Management steht für die Verwendung in den folgenden SAP BTP Umgebungen zur Verfügung:

  • Cloud Foundry

  • Kyma

 

Der App Router stellt dabei den zentralen Einstiegspunkt dar und leitet alle Aufrufe an die gesicherte Applikation weiter. Damit keine Aufrufe ohne Authentifizierung möglich sind, muss das Coding der Applikation erweitert werden. In unserem Beispiel haben wir das über die Nutzung der Passport Middleware gelöst.

Wichtig ist dabei, dass alle nötigen Module (@sap/xsenv, @sap/xssec und passport) installiert sind. Damit eine Nutzung des XSUAA Services möglich ist, braucht es eine Datei namens xs-security.json. Damit kann die XSUAA Service Instanz definiert werden.

Zum Schluss muss der XSUAA Service und das entsprechende Ziel in der manifest.yml definiert werden.

 

Weiterführende Informationen können unter Service SAP Authorization and Trust Management abgerufen werden.


 

      

b. MTA Extension

Für Fälle, in denen zur Deployment-Zeit systemspezifische Informationen benötigt werden, ist es möglich, Erweiterungen an der Deployment-Konfiguration zu definieren. 

Die Modifikationen müssen in einer MTA Extension angegeben werden. Bei dieser handelt es sich um eine Datei mit dem Suffix .mtaext. 

Die in der Deployment-Erweiterung definierten Informationen werden während des Deployments verwendet. Das beigefügte Coding enthält ein einfaches Fallbeispiel für das Deployment mit einer MTA Extension.

 

Detaillierte Informationen hierzu finden sich unter Der MTA-Deployment-Erweiterungsdeskriptor.

 

Weitere Deployment Varianten

Ausser dem Cloud Foundry Deployment gibt es in der SAP BTP noch weitere Deployment Optionen. Abhängig von den Anforderungen der Anwendung bzw. der benötigten Infrastruktur können diese verschiedene Flexibilität und Skalierbarkeit bei der Implementierung, Bereitstellung und Verwaltung von Anwendungen bieten.

 

Hier sind noch einige weitere Deployment Optionen (Liste nicht abschliessend):


1. Kubernetes Deployment (SAP BTP, Kyma Environment)

Kyma ist eine Open-Source Plattform, die auf Kubernetes basiert. Sie ist speziell für containerisierte Anwendungen und Microservices vorgesehen und bietet eine vereinfachte Verwaltung und Entwicklung von Anwendungen und Microservices für komplexe Architekturen.


2. SAP Fiori Deployment

SAP Fiori ist ein Designsystem um die SAP Produkte sowohl für Web als auch Mobile mit einer einheitlichen User Experience zu erstellen. Anwendungen die mithilfe von SAP Fiori entwickelt wurden können aus der BAS (Business Application Studio) direkt auf die SAP BTP deployed und dort verwaltet werden.


3. SAP HANA Deployment

SAP HANA bietet die Möglichkeit, native Anwendungen direkt auf der SAP HANA-Datenbank zu entwickeln und bereitzustellen. Dies ist besonders relevant für Anwendungen, die intensiven Zugriff auf Daten und eine hohe Performance benötigen.


4. SAP BTP, Integration Suite (Integration Flow Deployment)

Die SAP Integration Suite bietet die Möglichkeit, SAP und non-SAP-Systeme über die Definition von iFlows zu verbinden. 


5. SAP BTP, Mobile Services Deployment

SAP Mobile Services ermöglichen die Entwicklung und Bereitstellung von mobilen Anwendungen, die mit SAP-Daten und -Systemen verbunden sind.


6. SAP BTP, Extension Suite (Erweiterungsdeployment)

Über SAP Extension Suite erweiterte SAP Anwendungen (z.B. SAP S/4HANA) können auf der SAP BTP bereitgestellt werden.


7. SAP BTP, AI/ML Deployment

AI/ML-Modelle können auf der SAP BTP entwickelt und bereitgestellt werden.


8. SAP Data Intelligence Deployment

SAP Data Intelligence ist eine Plattform, die Daten aus verschiedenen Quellen sammelt, verwaltet und analysiert. Sie kann auf der SAP BTP bereitgestellt werden, um Datenpipelines und analytische Workflows zu entwickeln und zu verwalten.

 

Fazit

Die Wahl der Deployment-Variante auf der SAP BTP hängt stark von den spezifischen Anforderungen der Anwendung ab. Für einfache Anwendungen könnte das Cloud Foundry Deployment ausreichen, während für komplexere Anwendungen mit mehreren Microservices und Containern Kubernetes oder Kyma besser geeignet sind. Für spezielle Anwendungsfälle wie die Mobile-Entwicklung, KI/ML oder Integration gibt es ebenfalls dedizierte Plattformen auf der SAP BTP, die spezifische Anforderungen abdecken.

bottom of page