In diesem Artikel ist beschrieben, wie eine App in die Cloud Foundry Umgebung der SAP Business Technology Platform deployt werden kann. Voraussetzung dafür ist ein eingerichteter Subaccount mit Cloud Foundry. Details dazu befinden sich im Artikel zur Einrichtung des Global Accounts und Subaccounts.
Das Wichtigste zusammengefasst:
Es sollte immer mit dem Cloud Foundry Tool deployt werden.
Beim Deployment werden alle notwendigen Apps und Services automatisch erstellt und miteinander verbunden.
Das Cloud Foundry Tool sowie ein Plugin dazu müssen einmalig heruntergeladen werden.
Die MTAR-Datei
Das Dateiformat, welches für das Deployment genutzt wird, ist „.mtar“. Dies entspricht einer zip-Datei in welcher nicht nur der Quellcode, sondern auch Konfigurationsdateien gebündelt werden. Diese Datei wird von den Entwicklern oder Dienstleistern erstellt und bereitgestellt.
Falls die MTAR-Datei entzippt wird, liegen die wichtigsten Dateien auch im Klartext dar:
- xs-security.json: Enthält die vorgefertigten Role-Templates, die automatisch in der BTP angelegt werden.
- META-INF/mtad.yaml: Enthält alle Apps und deren notwendige Services. Mit Hilfe dieser Datei können beim Deployment automatisch alle abhängigen Services erstellt und mit den Apps verbunden werden.
Vorbereitung des Deployments
Im SAP BTP Cockpit gibt es in der Oberfläche eines Spaces den Button Deploy Application. Diesen sollten Sie nicht nutzen. Beim Deployment mit diesem Button müssen zusätzliche Konfigurationsschritte durchgeführt werden, die nicht nur aufwändig, sondern auch fehleranfällig sind.
Es sollte immer mit Hilfe des Cloud Foundry Tools deployt werden! Dieses führt unter anderem folgende Schritte automatisch durch:
- Upload der MTAR in die SAP BTP
- Erstellen und Start aller Apps
- Erstellen aller notwendigen Services, wie Authentifizierung, Connectivity oder Datenbank
- Verbinden der Services mit den Apps. Dies ist notwendig, damit die Apps die Services auch nutzen können
- Erstellen oder Updaten von Datenbank-Artefakten wie Tabellen oder initialen Daten
- Erstellen von Routen, bei denen es möglich ist, die Apps vom Browser aus zu erreichen
- Erstellen der Role Templates, aus denen es möglich ist, Rollen zu erstellen
Die meisten dieser Schritte müssten Sie manuell durchgeführt, falls Sie dieses Tool nicht verwenden. Ein weiterer Vorteil von dieser Form des Deployments ist, dass man es auch automatisiert in Skripten oder Pipelines verwenden kann.
Eine sehr gute Beschreibung des Deployments befindet sich auf der offiziellen Seite der SAP unter Deploy to Cloud Foundry. Die folgenden Schritte fassen die offizielle Anleitung zusammen:
- Einmalig ist es nötig, das Tool von Cloud Foundry local zu installieren. Es kann direkt von Github heruntergeladen werden: Download des Cloud Foundry CLIs.
- Auf dieser Seite kann im Abschnitt Installers and compressed binaries entweder eine Installationsdatei (Installers) oder eine direkt ausführbare Datei (Binaries) heruntergeladen werden.
Nachdem Sie dies heruntergeladen und installiert haben (im Falle des Installers), müssen Sie zusätzlich noch das MTA-Plugin für dieses Tool installieren. Dazu öffnet man eine Kommandozeile und prüft zuerst, ob das Tool ausführbar ist.
Hinweis: Zum Prüfen, ob das Tool ausführbar ist, wird „cf“ oder „cf8“ – je nach heruntergeladener Version – in die Kommandozeile getippt. Falls der Befehl nicht gefunden wurde, muss der Pfad zur Datei entweder zu den Umgebungsvariablen hinzugefügt werden oder vorher direkt zur Datei navigiert werden.
Zum Hinzufügen des MTA-Plugins ist es nötig, die folgenden zwei Befehle auszuführen:
- cf add-plugin-repo CF-Community https://plugins.cloudfoundry.org
- cf install-plugin multiapps
Sobald dieses Plugin erfolgreich hinzugefügt wurde, ist die Vorbereitung abgeschlossen.
Deployment einer MTAR
Voraussetzung zum Deployment ist das korrekt eingerichtete Cloud Foundry Tool. Darüber muss man sich zuerst an der SAP BTP einloggen und ein Space auswählen. Dies kann mit folgendem Befehl durchgeführt werden:
- cf login
Beim Login muss neben Username und Passwort auch der API-Endpunkt angegeben werden. Dieser sieht beispielsweise folgendermaßen aus: https://api.cf.eu20-001.hana.ondemand.com. Beim Klick auf den Subaccount lässt sich im Abschnitt zu Cloud Foundry der API-Endpunkt auslesen:
Username und Passwort sind die gleichen wie beim Login in das SAP BTP Cockpit.
Hinweis: Bei Zertifikatsproblemen können Sie „cf login –skip-ssl-validation“ ausgeführen, welche falsche oder fehlende Zertifikate ignoriert.
Nach dem Authentifizieren ist es nötig, den Space auszuwählen, in welchen deployt werden soll. Anschließend kann die MTAR-Datei deployt werden. Dazu muss diese auch lokal vorliegen und kann mit folgendem Befehl hochgeladen werden:
- cf deploy PFAD_ZUR_MTAR_DATEI
Nun wird die Datei hochgeladen und alle oben erwähnten Schritte automatisch durchgeführt. Falls keine Fehlermeldungen auftauchen, ist das Deployment hiermit abgeschlossen.
Hinweis: Nach dem Deployment kommt eine kurze Meldung, dass die Logs zum Deployment heruntergeladen werden können. Insbesondere im P-System wird empfohlen, diese Logs herunterzuladen und abzuspeichern, selbst wenn keine Fehler aufgetreten sind.