Provisionierung von SAP-Systemen mit Terraform in der Cloud

Image

Motivation

Die Installation von SAP-Produkten erzeugt einen in der Regel nicht unbeträchtlichen Aufwand. Zum einen durch die Bereitstellung der erforderlichen Hardware, zum anderen durch die Installation selbst. In ungünstigen Fällen kann ein derartiger Provisionierungs-Prozess sich durchaus über einige Tage, wenn nicht sogar über Wochen (dann aber eher aus Gründen der HW-Bereitstellung), hinziehen. Und dies ist erfahrungsgemäß nicht mehr akzeptabel. Unsere Kunden erwarten innerhalb kürzester Zeit die Provisionierung der Systeme als Sandboxes, als Zielsysteme für etwaige Migrations-Szenarien (von OnPremise in die Cloud), oder für gänzlich andere Zwecke.

Provisionierung von SAP-Systemen mit Terraform in der Cloud

Unsere Lösung verbindet die Möglichkeiten von Terraform, mit der schnellen Bereitstellungszeit von Ressourcen jeglicher Art in der Cloud. So konnten wir “auf Knopfdruck” bei unserem 1. DryRun ein SAP S/4Hana System bis zum Login im Fiori Launchpad in unter 20 Minuten bereitstellen. Aber first things first - was sind die nötigen Voraussetzungen und Vorarbeiten, damit dies so reibungslos funktioniert?

Voraussetzungen

Grundlegende Voraussetzung ist natürlich der Zugang zu einem Cloud-Provider, der von SAP zertifizierte Ressourcen anbietet. Wir haben uns in diesem Szenario für Microsoft Azure entschieden. Außerdem wird der Zugang zu den gewünschten SAP Installations Medien benötigt. Dann kann es auch schon losgehen.

Vorarbeiten

Um ein System automatisiert durch Terraform provisionieren lassen zu können, muss erst einmal ein entsprechendes Template-System erstellt werden. Hier gilt es auf einer geeigneten Cloud-Instanz mit den klassischen SAP-Tools, Software Provisioning Manager (SWPM) und Software Update Manager (SUM), das SAP System der Wahl zu installieren und auf den gewünschte Patch-Stand zu aktualisieren. Soweit gewollt können auch schon grundlegende Konfigurationen in dem SAP-System vorgenommen werden. Diese finden sich dann später in jedem neu provisionierten System wieder. Wir haben beispielsweise die Konfiguration des Fiori Launchpads bereits im Template System vorgenommen, damit dieses später sofort mit bereitgestellt werden kann.

Hat man einen validen Stand erreicht, werden nun Storage-Snapshots aller benötigten Filesysteme (z.B. /usr/sap, /sapmnt und /hana) angefertigt. Diese dienen als Grundlage für die Neu-Provisionierung von weiteren Systemen aus diesem Template mittels Terraform.


Terraform

Terraform ist eine Erweiterung zu den bestehenden Provisionierungsdefinitionen (seitens des Cloud Providers) und stellt eine Schnittstelle über eine deklarative Syntax der Ressourcen zu den unterschiedlichen Cloud Plattformen dar. Da dies mit den gängigsten Plattformen (Azure, Google Cloud und AWS) zusammenspielt, haben wir uns dazu entschieden dieses Produkt zu verwenden.

Im Kopf der Datei werden Parameter deklariert wie z.B. Location der Ressourcen und Subscription ID. Diese Parameter werden je nach Kunde flexibel eingesetzt. Zu Beginn wird eine Ressourcengruppe erstellt, welches als Container für die ganzen Dienste und Ressourcen dient. Diese Ressourcengruppe stellt den Kundencontainer dar. Anschließend werden alle benötigten Dienste in der Datei deklariert. Abhängigkeiten werden durch die Syntax hergestellt. Ein Verweis auf die Snapshots erfolgt mit der zugehörigen Ressourcen ID aus unserer Admin Ressourcengruppe, die das Template System beinhaltet. Die Provisionierung der Dienste erfolgt mit einem Befehlszeilenkommando, welches den aktuellen Status der Provisionierung in einem Aktivitäten Log protokolliert. Der Abschluss der Provisionierung wird anschließend per Meldung in der Konsole mitgeteilt.  

Die Dienste sind ab dem Zeitpunkt in der Azure verfügbar und können genutzt werden. 

Sobald die Dienste nicht mehr benötigt werden, können diese mit einem Befehl in der Kommandozeile gelöscht werden.  

Grob könnte ein Prozess zur Bereitstellung eines System wie folgt aussehen:

Beauftragt nun ein Kunde eine neue SAP Umgebung, so werden von Ihm noch ein paar Daten bezüglich des Sizings und der Infrastruktur eingefordert. Diese Parameter werden in dem Terraform Provisionierungs Prozess mit aufgenommen, so dass das System auch auf den Kunden abgestimmt zur Verfügung gestellt wird. Somit sind wir auch in der Lage, nicht nur ein Standalone Server bereitzustellen, sondern auch, wenn der Kunde es wünscht, eine Hochverfügbarkeitsfarm.


Ausprägung des Cloud Environment

Jeder Kunde wird in einer eigenen Ressourcengruppe bereitgestellt. Eine Ressourcengruppe beinhaltet also alle Ressourcen (Virtuelle Maschinen, Datenträger, Netzwerk-Konfigurationen uvm.), die zu dem System gehören. Dadurch ist es uns möglich, Umzüge eines kompletten Systems binnen kurzer Zeit zwischen unterschiedlichen Regionen durchzuführen.

Allein durch die Flexibilität der Cloud Umgebung können wir auf die Bedürfnisse des Kunden eingehen. Beispielsweise kann ein SAP System so konfiguriert werden, dass es nur noch über ein VPN (Site2Site) erreichbar ist. Damit wird einem Angriff aus dem Internet entgegengewirkt. Das Hosting wird im Europäischen Raum durchgeführt, damit stellen wir sicher, dass die Systeme konform mit der General Data Protection Regulation abgesichert betrieben werden.

Beschreibung der derzeitigen Architektur

Image

Abbildung 1: Technischer Aufbau der Azure Ressourcen

Ausblick: Was haben wir noch geplant?

Das S/4-Template bietet unsere erste automatisierte Bereitstellung eines SAP-Systems in der Cloud. Weitergehend werden wir eine Sammlung an verschiedenen SAP-Template-Systemen anlegen, welche auf diese Art und Weise deployed werden können. Um einen noch größeren Mehrwert für unsere Kunden zu schaffen, wollen wir in Zusammenarbeit mit unseren Fach- und Prozessberatern unsere Templates zu Best-Practice Systemen mit entsprechendem Demo-Content ausbauen. In Zukunft werden noch weitere Systeme folgen, so dass wir in der Lage sind, eine ganze Landschaft automatisiert deployen zu können.

Im Fokus ist, neben dem automatisierten Deployment, auch die Automatisierung von Migrationen in die Cloud, sowie der automatisierte Betrieb einer SAP Landschaft mittels Ansible Playbooks1. Aber dazu in weiteren Artikeln mehr.

1 Playbooks zeichnen die Konfigurations-, Deployment- und Orchestrierungsfunktionen von Ansible auf und führen diese aus.

Möchten Sie mehr über das Thema erfahren? Dann registrieren Sie sich hier und wir senden Ihnen weitere Informationen zu:
Die Datenschutzvereinbarung habe ich gelesen

Search