CI/CD für Oracle-APEX-Anwendungen mit GitLab

17. Februar 2023

Oracle Application Express (APEX) ist eine Low-Code-Plattform zur Erstellung von datenbasierten Webanwendungen, die direkt in einer Oracle-Datenbank installiert wird. Die Entwicklung einer solchen Webanwendung findet in der APEX-eigenen Entwicklungsumgebung statt. Dieser Artikel zeigt eine Möglichkeit auf, wie die Entstehung einer APEX-Applikation anhand CI/CD automatisiert auf verschiedene Umgebungen (TEST und PROD) ausgerollt werden kann.

Die Low-Code-Plattform Oracle APEX wird von Oracle seit vielen Jahren als Teil aller Datenbankeditionen entwickelt. Sie beinhaltet eine grafische Benutzeroberfläche zur Entwicklung von datenbasierten Webanwendungen und besteht neben der Benutzeroberfläche in der Regel aus zusätzlichen Oracle-Datenbank-Objekten (wie Tabellen, Packages usw.). Ein häufiges Problem bei der Nutzung von Oracle APEX in größeren Projekten ist der aufwendige, manuelle Prozess, um eine Applikation und alle dazugehörigen Komponenten von einer Umgebung, beispielsweise der Entwicklungsumgebung, auf eine andere Umgebung, wie die Testumgebung, zu übertragen. Hierzu müssen alle Datenbankobjekte, statische Daten sowie die Applikation selbst manuell von der Entwicklungsumgebung auf die Testumgebung und später auf die Produktivumgebung übertragen werden.

Oracle APEX besitzt hierfür seit der Version 20.1 ein eingebautes Feature namens Remote Deployment, das den Deployment-Prozess von einer Umgebung auf eine andere vereinfachen soll. Dennoch besteht der Remote-Deployment-Prozess aus vielen einzelnen Schritten, auf die bereits während der Entwicklung geachtet werden muss. So müssen beispielsweise Skripte zur Aktualisierung des Datenbankschemas manuell geschrieben und in der APEX-Applikation als Update-Skripte hinterlegt werden. Der Prozess des eigentlichen Deployments ist hier ebenfalls ein händischer Prozess. In der APEX-Entwicklungsoberfläche muss eine APEX-Applikation mit manuellen Klicks durch mehrere Masken auf der Zielumgebung installiert werden. Hierbei können sich durch die manuelle Durchführung und Komplexität der Weboberfläche immer wieder Fehler einschleichen.

Diese und weitere Probleme werden in der modernen Softwareentwicklung typischerweise anhand einer Automatisierung durch CI/CD gelöst. CI/CD beschreibt die Automatisierung des Tests, der Auslieferung und der Überwachung von Software. Der Prozessablauf hilft dabei, die Änderungen der Entwickler in kürzeren Intervallen auf den Haupt-Entwicklungszweig zu bringen. Darüber hinaus sorgt CI/CD mit automatischen Tests und Deployments für eine bessere Qualität sowie häufigere Releases einer Software.

Im weiteren Verlauf dieses Artikels zeigen wir auf, wie wir es geschafft haben, eine CI/CD-Pipeline für APEX-Applikationen aufzubauen, um diese erfolgreich bei Kunden einzusetzen.

Lesen Sie hier den kompletten Beitrag im Red Stack Magazin 02/2023.

Autor: Johannes Michler, Simon Grossmann

Bildquelle: © pixabay.com