Dockerisierung oder: 3x Jedox in 3 Minuten

Inhalt
Docker hilft, Anwendungen ins Trockene zu bringen
Docker hilft, Anwendungen ins Trockene zu bringen

Container sind in aller Munde. Auch wir setzen bei unseren Kunden immer öfter auf Docker: die Virtualisierungssoftware sorgt für die einfache Bereitstellung der Anwendung, bringt alle nötigen Pakete mit und ermöglicht es, die Ressourcen am Rechner getrennt zu verwalten. Außerdem lassen sich Docker-Dateien leicht transportieren und installieren. Wie das funktioniert, erkläre ich in diesem Blogpost.

Warum sollte man eine Anwendung für Datenauswertungen im Container laufen lassen? Die Vorteile liegen für unseren Kunden und uns, die das Projekt pflegen, auf der Hand: schnellere Entwicklungszyklen, schnellere Delivery/Go-Live, bessere Tests, Qualitätssicherung durch Code-Tests. Sprich: Jedox in Docker macht den Entwicklern und dem Betriebsteam das Leben leichter.

So muss einfach nur der Container weggeworfen und neu gestartet werden, wenn etwas kaputt ist. Ständig neue Wünsche des Managements lassen sich viel einfacher (und schneller) in Docker umsetzen. Wenn die Anwendung passt, wird sie frei gegeben und die neue Applikation ist sofort realisiert.

Jedox im Container (Docker)
Jedox im Container

Ein weiterer Fall bei unserem Kunden betrifft das Umgehen von Datenbankenbeschränkungen: das Unternehmen betreibt riesige Datenbanken, die viel Speicherplatz verbrauchen. Es braucht daher viel Zeit, neue Daten einzuspielen. Um diese Zeit zu reduzieren, wird der Vorgang einmal in Docker gebaut – er lässt sich so innerhalb von nur einer Minute durchführen anstatt von vier Stunden. Pro Quartal setzen wir das ein einziges Mal mit einem Entwickler um, der Container wird freigegeben, und dann kann jeder Entwickler damit arbeiten. Im Docker Hub findet sich das von mir erstellte Docker Repository für Jedox.

Der Betrieb von Jedox in Docker hat also folgende Vorteile:

  • Für Entwickler: Jedox Anwendungen in einer kontrollierten, reproduzierbaren Umgebung programmieren und testen.
  • Für Vertriebler: Demoversionen als Docker Image zur Verfügung stellen. Der Anwender muss nichts installieren (außer Docker) und alles ist up-and-runing. Auch hier alles unter Kontrolle, da alles vorkonfiguriert ist vom „Hersteller“.
  • Für das Datacenter: Jedox skalieren, indem beliebig viele Container „zum Leben erweckt“ werden (provisioniert)

Darüber hinaus hat Docker natürlich noch mehr Vorteile:

  • Standardisierung von Images & enthaltene Software
  • Jeder Entwickler greift auf dieselbe Installation zu
  • Nur ein Entwickler muss ein Image mit der nötigen Software installieren
  • Lokale Offline-Entwicklung mit derselben Produktionsumgebung
  • Continuous Integration & Continuous Delivery
  • Optimierung des Entwicklungsprozesses
  • Umsetzung von Multi-Server Szenarien mit demselben Image
  • Bei Entwicklungsfehlern leichtes beheben (Container verwerfen, neuen Container starten)

Um Jedox in Docker laufen zu lassen, sind die folgenden Schritte nötig:

  • Docker installieren
  • How to run: Download vom Image docker pull dmarkovic/jedox:latest
    Docker container starten: docker run –privileged -p 8888:80 -td –name jdx -v /Users/dmarkovic/docker/install:/install jedox:latest
  • Verbinden auf den Container docker exec -it jdx /bin/bash
  • Starten/Stoppen von Jedox im Container: /opt/jedox/ps/jedox-suite.sh start
3x Jedox mit 3 Containern in 3 Minuten
3x Jedox mit 3 Containern in 3 Minuten