Bild-Schulung-NiFi

Eclipse Docker

Michael Marheineke

Michael Marheineke

… engagiert sich seit vier Jahrzehnten für Unternehmen, die ihr Business mit Hilfe von IT ausbauen möchten. Sein Wissen und seine vielseitigen Fähigkeiten setzt er ein, damit diese Unternehmen ihr Wachstum sicherstellen. Zu Beginn seines Berufslebens war er ein Jahrzehnt bei der genossenschaftlichen Rechenzentrale in Entwicklung und Projektmanagement tätig. Es folgten knapp zwei Jahrzehnte bei einem US Hersteller, bei dem er in verschiedenen internationalen Managementpositionen die Verantwortung für dessen Financial Solutions hatte. Seit mehr als einem Jahrzehnt gehört er bei Software- und Beratungsunternehmen dem Führungskreis an und verantwortet dort die Bereiche Beratung und Business Development. Aktuelle Lieblings-Dateiformate: PPT und XLS, weil das den Überblick verschafft.

Eclipse ist als IDE für Java bekannt und bewährt. Eclipse versteht sich selbst aber als wesentlich mehr. Diese Serie soll Eclipse als Entwicklungsumgebung vorstellen, die als Hilfswerkzeug dient, um schnell Experimente durchzuführen. Es wird sich dabei herausstellen, dass Eclipse hauptsächlich als vereinigendes Element verschiedener anderer Technologien zu sehen ist.
Im ersten Teil der Blog-Serie wurde bereits darauf eingegangen, wie Eclipse mittels eines Plugins dazu in der Lage ist, Dateien in einem ZooKeeper-Ensemble zu verwalten. In diesem Teil geht es nun darum, Eclipse dafür zu verwenden, die Arbeit mit Docker zu vereinfachen.

 

Eclipse – Docker Tooling

Docker hat sich inzwischen nicht nur auf Linux als Container-Lösung einen Namen gemacht. Es steht auch auf Windows und Mac OSX mit seinem großen Image Archiv (hub.docker.io) zur Verfügung. Dass dieses Thema nicht stiefmütterlich behandelt wird kann man an Microsofts neuester Windows Version sehen, die nativen Support für diese Linux Technologie bietet.

Die Installation ist auf allen Plattformen inzwischen auf einfache Art möglich. Die Herausforderung, die weiterhin besteht, ist die Interaktion mit Docker. Auf der einen Seite hat man die Verwaltung von einer großen Anzahl von Images und Containern, auf der anderen Seite hat man die Konfiguration und das Scripting dieser. Ein Werkzeug wie Eclipse passt genau in diese Schnittstelle. Es bietet eine einfache Oberfläche zum Durchsuchen, einen integrierten Editor und steht den Befehlen auf der Kommandozeile nicht im Weg. Aber Schritt für Schritt.

 

Installation des Docker Plugin

Das Docker Plugin ist Teil des Linux Tools Project und damit auch des offiziellen Release Trains von Eclipse, somit ist es bestens gepflegt und wird dreimal pro Jahr aktualisiert. Die Installation erfolgt aus dem offiziellen Software-Archiv von Eclipse.

Docker Perspektive

Docker hat eine Server-Client Architektur. Daher muss zuerst eine Verbindung zum Docker-Daemon eingerichtet werden. Die Verbindung sollte automatisch gefunden werden.

Wenn die Verbindung verschlüsselt ist, muss man zusätzlich noch das notwendige Zertifikat angeben.

Unter Windows findet man dies in seinem <persönlichen Ordner>/.docker\machine\machines\default

Unter Images werden die lokal verfügbaren Images angezeigt und unter Container die instanziierten.

Per Rechtsklick kann man weitere Images herunterladen (pull). Dazu kann man auf dem Dockerhub suchen, welcher bereits eine große Auswahl zur Verfügung stellt, oder eigene Quellen angeben.

Die Images auf Dockerhub kommen meist aus der freien Software-Gemeinschaft. Dort ist Solr und die anderen Apache Projekte stark aufgestellt. Es gibt Images für Solr, Nifi, Nutch, Zeppelin, Cassandra, Zookeeper und viele andere. Solr ist dabei als offizielles Image eingestuft, d.h. es wurden Best Practices beim Erstellen des Images verwendet, es bietet verschiedene Versionen zur Auswahl an und wird speziell auf Sicherheitslücken hin überprüft.

Vorhandene Images kann man bequem über einen Rechtsklick ausführen. Dazu werden zuerst in einem Wizard die möglichen Einstellungen angezeigt. Je nach gewählten Einstellungen bekommt man die Logs read-only angezeigt oder es wird direkt eine Shell zum Container aufgemacht. Mit diesem Schritt für Schritt Ansatz ist die Oberfläche auch für Docker-Laien geeignet.

 

Auch ein Solr-Anfänger hat damit in nur zwei Schritten einen funktionsfähigen Server am Laufen, um damit erste Experimente zu machen. Ein Solr-Experte hingegen hat damit ein Werkzeug an der Hand, mit welchem er reproduzierbare Konfigurationen schnell und sicher testen kann ohne sich dabei in Details des Setups verlieren zu müssen und sich somit auf das Wesentliche konzentrieren kann.

Diese reproduzierbaren Konfigurationen sind optimal geeignet um sie mit Teammitgliedern oder Kunden auszutauschen und somit eine einfache Möglichkeit, erzielte Ergebnisse nachzuvollziehen bzw. zu überprüfen.

Dockerfile Unterstützung

Die Stärke von Docker liegt nicht nur darin, vorgefertigte Images auszuführen, sondern auch darin, auf existierenden Images aufzusetzen und dieses zu erweitern. Dies geschieht normalerweise über die sogenannten Dockerfiles. Eclipse leistet Unterstützung mit seinem üblichen Syntax-Highlighting und Autocomplete, aber mit auch der Möglichkeit diese Datei auszuführen, damit die neuen Container ebenfalls geschickt in der IDE gebaut werden können.

Orchestrierung

Die Philosophie von Docker ist es, nur eine Anwendung pro Container laufen zu lassen. In einer komplexen Softwareumgebung arbeiten jedoch mehrere Anwendungen zusammen, daher ist das Verwalten/Zusammenstellen/Orchestrieren ein wichtiger Punkt. Umgebungen mit Solr, Zookeeper, Zeppelin sind ideale Beispiele, da dabei fast immer mit mehreren Nodes gearbeitet wird. Hier wird gerne das compose Werkzeug verwendet. Dieses wird in einer YAML-Datei namens docker-compose.yml konfiguriert und ist ebenfalls wie das Dockerfile von Eclipse unterstützt.

Fazit

Dank des Docker Hubs stehen selbst komplex zu konfigurierende Software-Stacks ausführbereit zur Verfügung. Eclipse ermöglicht diese einfach, schnell und visuell zu finden und auszuprobieren und mit einander zu verknüpfen. Dieses Plugin ist noch weitaus mächtiger. Hier wurden hauptsächlich die Funktionalitäten zum schnellen Ausprobieren von Software-Stacks vorgestellt. Es können allerdings noch weitere Aufgaben erledigt werden, wie z.B. das Zurückspielen von neuerstellten Images und somit der Austausch ganzer Softwaresysteme.

Sind auch sie an einer schnellen explorativen Analyse interessiert? Vereinbaren Sie ein erstes Telefonat mit einem unserer Experten.

Im ersten Teil der Blog-Serie