Community

Spring Boot Apps auf Windows laufen lassen? Das geht.

: Mit seinem inzwischen berühmten Essay „The Cathedral and the Bazaar“ hat Eric S. Raymond 1997 IT-Geschichte beschrieben. Es geht darin um den Gegensatz zwischen herstellergetriebenen Technologien wie Windows und quelloffenen Technologien.

Bis heute ist dieser Gegensatz Realität, nicht nur in technischen Fragen, auch in Fragen der Philosophie und Arbeitsweise. Doch die Zeiten ändern sich …

… und dieser Gegensatz ist nicht mehr in Beton gegossen. Auch deshalb nicht mehr, weil es inzwischen gute Wege gibt, OS-Technologien auf proprietären Betriebssystemen anzuwenden. Der Wandel geschieht zunächst zumeist im Kleinen und ist vielleicht nicht auf Anhieb als grundlegend erkennbar. Hier ein praktisches Beispiel der Java User Group Hessen (JUGH).

Jonas Hecht von der Java User Group Thüringen exerziert den Paradigmenwechsel im Stellungskampf zwischen Windows und OS am Beispiel von Spring Boot, Docker und Ansible durch, indem er zeigt, wie man mithilfe dieser Tools Spring Boot auf Windows zum Laufen bekommt. Die Werkzeuge, die dabei Verwendung finden, seien hier kurz vorgestellt:

Running Spring Boot Apps on Docker Windows Containers with Ansible

Was tun, wenn man Spring Boots Apps auf Windows laufen lassen will? Ist das überhaupt möglich? Oder anders gefragt: Ist der Gegensatz von proprietären Systemen und OS-Technologien bald Geschichte?

Spring Boot und Windows sind nicht von Haus aus kompatibel. Wie so oft im Dauerwettstreit zwischen proprietären und Open-Source-Technologien ist das OS-Framework nicht ohne weiteres mit dem Windows-Betriebssystem vereinbar. Softwareentwickler wie uns wundert das nicht, sind wir doch unmittelbare Zeugen des langjährigen Gegensatz von OS und Windows, der zeitweise Züge eines Glaubens- oder Stellungskrieges trug.

Spring Boot

Spring Boot ist ein leichtgewichtiges Framework aus der Spring-Familie. Ziel von Spring Boot sind selbstständig funktionierende Applikationen, die nach dem Paradigma „Konvention vor Konfiguration“ entwickelt werden. Dieses Paradigma hat zum Ziel, den Quelltext einer Software zu verschlanken, indem die Komplexität im Code reduziert und Redundanzen vermieden werden. Spring Boot benötigt keine XML-Konfiguration, die gewünschten Eigenschaften einer Applikation werden über Annotationen herbeigeführt.

Docker

Docker führt Softwarepakete in so genannten Containern aus, welche wie kleine virtuelle Maschinen funktionieren. Alles, was der Code zur Laufzeit benötigt, ist darin enthalten: Bibliotheken, Konfigurationsdateien, Hilfsprogramme und vieles mehr. Das macht die Container praktisch zu Selbstversorgern, die weitestgehend unabhängig von ihrer Umgebung agieren können. Mit erheblichen Vorteilen in Sachen Flexibilität und Effizienz. Sie lassen sich bspw. sehr leicht zwischen verschiedenen Rechnern hin und her transportieren, ohne dass auf dem Zielrechner neben der Docker-Plattform etwas anderes installiert werden muss. Und sie sind auch deshalb pflegeleicht, weil sie an ihre Umgebung keine besonderen Anforderungen stellen. Für Server und Betriebssysteme heißt das, dass dort ganz verschiedene Anwendungen gleichzeitig laufen können, die ohne Container wiederstreitende Bedürfnisse an das System stellen würden und sich gegenseitig ins Gehege kämen. Die Kompatibiltät mit Windows ist für Docker also kein Problem.

Ansible

Ansible ist ein Automatisierungstool für die Systemadministration, ebenfalls aus der Open-Source-Familie. Ziel von Ansible ist es, die Verteilung, Konfiguration und Administration von Software vollständig zu automatisieren und die Aufwände für diese Tätigkeiten auf ein Minimum zu reduzieren. Zum Leistungsumfang von Ansible gehören eine Automatisierungssprache, welche die Infrastruktur von Anwendungen in so genannten Playbooks beschreibt, eine Ausführungsumgebung, welche diese Playbooks verarbeitet, und in der kostenpflichtigen Variante das Enterprise-Framework Ansible Tower, welches die Automatisierung verwaltet und überwacht. Durch den Einsatz von Ansible werden arbeitsaufwändige Arbeiten, wie z. B. das Anlegen von Skripten, durch einen vollständig automatisierten Prozess überflüssig gemacht. Und obwohl Ansible von Haus aus eine Open-Source-Technologie ist, ist sie im Gegensatz zu Spring Boot schon heute ohne weitere Hilfsmittel mit Windows kompatibel. Auch das ein Vorbote für mehr Verständigung zwischen der OS- und der proprietären Welt.

Kleine Helferlein für unterwegs

  • Vagrant: Software auf Basis von Ruby zur Erstellung von virtuellen Maschinen, zumeist in ihrer Funktion als Wrapper in Gebrauch
  • Packer: Werkzeug zum Erstellen identischer Images für eine Vielzahl von Plattformen aus einer Single-Source-Konfiguration
  • PowerShell: Microsoft-Framework zur Automatisierung

Fazit

Open-Source-Technologie sind nicht mehr aufzuhalten. Wenn sie keine Einladung durch die Vordertür erhalten, steigen sie durch die Fenster aka Windows ein. Ganz ohne Gewalt und bei hellstem Tageslicht. Und wieso auch nicht, sie haben schließlich etwas anzubieten, von dem auch Windows-Nutzer profitieren können.

(jw)

Jule Witte

Presse & Kommunikation