Mit Ansible die Puppen tanzen lassen – Spring-Boot-Apps in Docker-Windows-Containern
Manchmal ist man tatsächlich gezwungen, Spring-Boot-Anwendungen auf Windows laufen zu lassen – z.B. weil Legacy-Code angebunden werden muss, der Windows voraussetzt. Doch dabei will man nicht auf die CI/CD-Pipeline verzichten, die komplett automatisiert, z.B. per Ansible, die Konfiguration und das Deployment der Anwendungen übernimmt. Doch geht das überhaupt: Windows-Container in Windows selbst laufen lassen?
In diesem Vortrag stellt Jonas Hecht eine Toolchain vor, die mithilfe von Tools wie Packer, Vagrant, PowerShell und Ansible Spring-Boot-Apps in Docker-Windows-Containern laufen lässt und mit Docker Compose und Spring Cloud die Skalierung unterstützt – inkl. Demo.
Vorkenntnisse
Das Thema ist sicherlich interessant für ein breites Publikum – vom Software Engineer hin zu Infrastrukturmensch und Betrieb, DevOpsler und Architekten. Dabei bleibt der Vortrag zu 100 Prozent mit Hilfe von Open-Source-Tools (Packer, Vagrant, VirtualBox, Ansible & PowerShell) nachvollziehbar bis in jeden einzelnen Schritt.
Notwendiges Vorwissen: Kenntnisse aktueller Trends der Softwareentwicklung auf der JVM (ideal: Spring Boot). DevOps, Pipelines und Continuous Integration/Delivery sollten keine Fremdworte sein.
Lernziele
Das Thema berührt sehr viele Aspekte moderner Softwareentwicklung – von Microservice-Architekturen mit Spring Boot und Spring Cloud über Docker(isierung) und Automatisierung innerhalb von CI/CD-Pipelines mit Ansible. Außerdem schlägt es eine Brücke in das Microsoft-Universum.
Wichtige Lernziele können das Vermitteln der Wichtigkeit vollständig nachvollziehbarer Entwicklungsprozesse sein, die sich zu vollständig aus einem VCS-(Git-)Repository jederzeit wiederherstellen lassen und komplett automatisiert sind. Außerdem soll der Blick über den Tellerrand ermöglicht werden (z.B. "was ist Infrastructure as Code eigentlich praktisch?" - oder "Microsoft kann auch moderne Softwareentwicklung mit GitHub, OpenSource, Docker usw.). Nicht zuletzt gibt der Vortrag eine praktisch nutzbare Toolchain an die Hand, die jeder in seinem Unternehmen oder privat nachvollziehen kann und so praktisch im Projekt umsetzen kann.