Entwicklung einer flexibel konfigurierbaren Build und Integrationtest Pipeline der SAP HANA Development Infrastruktur

Problemstellung

Die aktuelle SAP HANA Development Infrastruktur ist eine Umgebung, welche ermöglicht, dass SAP HANA Produkte/Komponenten in unterschiedlichen Quellsprachen (aktuell vertreten: Java, C/C++) unterschiedliche Schritte der Erstellung, Qualitätssicherung und Verteilung durchlaufen. Diese Schritte werden im Folgenden als Pipelineschritte bezeichnet und eine Verkettung dieser Schritte wird als Pipeline betitelt.

Die Abarbeitungsweise einer Pipeline kann vereinfacht wie folgt dargestellt werden: Der erste Pipelineschritt wird durch eine Aktion (Bsp.: Abgabe eine Änderung) aufgerufen, dabei werden dem ersten Pipelineschritt zusätzliche Daten übergeben. Sobald ein Pipelineschritt erfolgreich abgeschlossen ist und ein Nachfolge-Pipelineschritt existiert, ruft dieser den Nachfolger-Pipelineschritt auf und gibt ihm die initial erhaltenen Daten mit eventuellen Änderungen. Sobald ein Pipelineschritt ohne Nachfolger erfolgreich abgeschlossen wird terminiert der gesamte Pipelinedurchlauf. Sollte ein Pipelineschritt fehlschlagen, so wird kein Nachfolge-Pipelineschritt aufgerufen und der Pipelinedurchlauf terminiert.

Die Abgabe einer Änderung wird aktuell durch ein Review-System registriert. Der erste Pipelineschritt startet, sobald das Review-System signalisiert, dass eine neue Änderung eingegangen ist. Durch ungeplante Ausfallzeiten (bzw. Zeiten in den das System lief, jedoch nicht erreichbar war) trat in der Vergangenheit des Öfteren das Problem auf, dass für keine Abgabe innerhalb der Ausfallzeit eine Pipeline gestartet wurde, jedoch die Informationen über die Abgabe in dem Review-System nachträglich verzeichnet wurden.

Des Weiteren wird der Zustand der Daten eines Pipelineschrittes nicht persistiert. Diese Eigenschaft führt dazu, dass ein Pipelineschritt, welcher SAP HANA Development Infrastruktur externe Abhängigkeiten besitzt und aufgrund dieser scheitert, nur durch das Durchlaufen der gesamten Pipeline erneut gestartet werden kann.

In der aktuellen Infrastruktur sind die Build und Integrationtest Pipelineschritte fest vorgegeben. Für jede HANA Komponente müssen die einzelnen Build- und Integrationtestschritte neu implementiert werden und sind dann erneut fest. Eine flexibel konfigurierbare Build und Integrationtest Pipeline der SAP HANA Development Infrastruktur würde die Bereitstellung der Infrastruktur für neue Komponenten wesentlich vereinfachen und beschleunigen. Zudem würde sie den Komponenteninhabern die Möglichkeit eröffnen, ihre Build- und Integrationtestschritte jederzeit individuell gestalten zu können.

Diese Arbeit soll darlegen, wie die beschriebenen Probleme des aktuellen SAP HANA Development-Infrastruktur durch ein möglichst leicht verständliches System gelöst werden können.

Ziele

Ziele:
  • Entwurf einer flexibel konfigurierbaren Pipeline
  • Das entworfene System muss für Entwickler der SAP HANA Development Infrastruktur leicht verständlich sein
  • (Teil-)Implementierung des Systems

Comments