Aufgrund einer Projektpause haben wir uns mit einem Projekt des OCLabs beschäftigt, dessen Ziel es ist, Apache Zeppelin in einem Docker Container auf OpenDevStack zu deployen.
Was ist Apache Zeppelin?
Apache Zeppelin bietet die Möglichkeit ähnlich wie Jupyter Notebook, Notebooks zu erstellen, um Daten zu analysieren. Ein Notebook zeichnet sich dadurch aus, dass man Code- und Fließtext miteinander vermischen kann und den Code gleichzeitig im Notebook ausführen kann. Das führt dazu, dass die Ergebnisse direkt im Notebook sichtbar sind und man keine IDE braucht. Es unterstützt jedoch mehrere verschiedene Interpreter und grenzt sich somit zu Jupyter Notebook ab, das hauptsächlich Python unterstützt. Beispielsweise werden Apache Spark, R und Scala unterstützt.
Was ist OpenDevStack?
OpenDevStack basiert auf OpenShift von RedHat und ist eine Managementplatform für Container. OpenDevStack bietet den Vorteil beim Start eines Projekts die notwendigen Softwarekomponenten effizient und schnell durch Container bereitzustellen. Dadurch muss sich der Entwickler nicht mehr um das Aufsetzen der Architektur kümmern.
Wie sind wir vorgegangen?
Zu Beginn haben wir probiert Apache Zeppelin mit Docker lokal laufen zu lassen, wofür wir das offizielle Dockerfile von Apache Zeppelin aus Docker Hub benutzt haben. Dies hat ohne Probleme funktioniert! 😊
Der nächste Schritt war also Apache Zeppelin auf OpenDevStack zum Laufen zu bringen. Dabei stellten sich die drei folgenden Probleme heraus:
- OpenDevStack benötigt memory limits, damit ein Container hochgefahren werden kann. Diese Limits werden jedoch nicht automatisch gesetzt und müssen deswegen manuell nachträglich in OpenDevStack eingetragen werden.
- Beim Start des Docker Containers werden Ordner unter anderem für Logs angelegt. Damit dies fehlerfrei funktioniert, muss im Dockerfile noch Code hinzugefügt werden, um Zugriff zu bekommen.
- Der Container konnte nun fehlerfrei hochgefahren werden, jedoch konnte man noch nicht auf die Anwendung zugreifen. Aus diesem Grund haben wir letztlich noch eine Route zu der Anwendung hinzugefügt, die nun Apache Zeppelin erreichbar macht.
Viel Spaß! 😊
Euer Martin Meinel und Eric Nguyen.
1 Kommentar
Weitere Informationen zu OpenDevStack findet man auf https://www.opendevstack.org/index.html und
https://www.opitz-consulting.com/portfolio/software-development/devops-services/opendevstack.html