Docker einfach erklärt: Vorteile für Versicherungs-IT-Abteilungen
Mithilfe von Docker erzielen Entwickler-Teams einen großen Effizienzgewinn. Dennoch beobachten wir, dass es in den meisten Versicherungs-IT-Abteilungen noch nicht eingesetzt wird. Warum sich Docker nicht nur für Entwickler, sondern auch für die Fachbereiche lohnt, erfahren Sie hier.
„Schick mir mal schnell die Standalone“ oder „Nächste Woche fängt ein neuer Kollege an. Stellt ihm bitte die Entwicklungs- und Testumgebung für das Projekt XY zur Verfügung.“ Welcher Entwickler oder auch Administrator kennt diese Sätze nicht? Meist verbindet sich mit diesen Sätzen noch immer ein nicht unerheblicher manueller Aufwand für das betroffene Team. Oftmals treten dann auch kleinere Unstimmigkeiten in der Konfiguration auf, die zusätzlich abgeglichen werden müssen.
Mithilfe von Docker und den damit verbundenen Containern schaffen Entwicklerteams hier schnell Abhilfe und erzielen einen großen Effizienzgewinn. Auch wenn die Anwendung Docker bereits seit Jahren am Markt ist, beobachten wir, dass diese in den meisten Versicherungs-IT-Abteilungen noch nicht eingesetzt wird. Warum eigentlich nicht?
Einfach erklärt: Was ist Docker?
Docker ist eine Open-Source-Software der Docker Inc. zur Entwicklung, Auslieferung und systemunabhängigen Ausführung von Anwendungen. Dies wird durch Container-Virtualisierung ermöglicht. Ein Container ist eine Standard-Software-Einheit, die den Code inklusive aller Abhängigkeiten verpackt, sodass die Anwendung schnell und zuverlässig ausgeführt und von einer Umgebung zur nächsten umgezogen werden kann. Ein Container wird wiederum anhand eines Image erstellt. Ein Docker-Image ist ein leichtgewichtiges, eigenständiges, ausführbares Softwarepaket, das alles enthält, was zum Ausführen einer Anwendung erforderlich ist: Es besteht im Wesentlichen aus den Anweisungen, die für eine vollständige und ausführbare Version der Applikation notwendig sind.
Containerisierung mit Docker verschafft Versicherungs-IT-Abteilungen mehr Effizienz
Bei Versicherern kommt typischerweise ein Mix aus selbstgebauten Anwendungen und auch Fremdsoftware on-premises zum Einsatz. Hier kann die Nutzung von Docker eine Menge bewirken. Bei einem kleinen bis mittleren Versicherer laufen oft rund eine Handvoll IT-Projekte parallel. Das bedeutet: Die Abteilung verfügt tendenziell über 15 bis 20 aktuelle Testumgebungen, die manuell installiert, und bei Produktivgänge manuell begleitet werden. Mithilfe von Docker können Testumgebungen und Produktivgänge per Knopfdruck automatisiert ausgeführt werden. Aufwendige Uploads und Installationen fallen weg.
Vorteile von Docker für Entwickler im Überblick
- Zentrales Aufsetzen der Entwicklungsumgebung und einfache Verwaltung
- Notwendige Tools stark reduziert
- Konfigurationsdateien liegen im Projekt
- Start des gesamten Systems mit nur einem Befehl
- Einfache zentrale Anpassungen an Applikationsservern und Versionsupgrades ohne Installationen
- Einfache lokale Infrastruktur-Anpassungen über docker-compose.yml
- Systemabhängigkeiten werden weitestgehend eliminiert
- Gleiche Konfiguration der Komponenten auf allen Systemen
- Betriebssystem (Windows, Linux, MacOS) hat (fast) keinen Einfluss
Entwicklungsumgebung einfach mit Docker aufsetzen
Sofern in Docker alle für die Entwicklungsumgebung eines bestimmten Projekts benötigten Komponenten hinterlegt sind, müssen Entwickler diese nicht mehr nativ auf dem eigenen Rechner erstellen. Über die Software Docker werden die Datenbanken und weitere Komponenten etc. direkt angeboten. Beim Auschecken erhalten die Entwickler dann alles, was sie für das jeweilige Projekt benötigen. Das Dockerfile hat eine überschaubare Größe, das ist ein enormer Vorteil. Müssten die drei Applikationsserver mit allen im Beispiel gezeigten Konfigurationen eingecheckt werden, nähme dies sehr viel mehr Zeit in Anspruch. Wie im Beispiel erkennbar, hätte der Entwickler zwölf Komponenten zu starten. Stattdessen kann der Entwickler diese über Docker mit nur einem Befehl über Docker Compose ausführen, denn die Konfigurationsdateien liegen direkt im Projekt.
Docker ermöglicht einfache zentrale und lokale Anpassungen
Gerade beim Entwickeln neuer Funktionen kommt ein sehr wichtiger Vorteil von Docker zum Tragen: einfache zentrale Anpassungen an Applikationsservern. Soll bei einem Projekt zum Beispiel der Versand von E-Mails eingebaut werden, dann müsste der Entwickler in der Standalone-Version konfigurieren, welcher Mailserver verwendet werden soll. Fehlt dieser Mailserver, startet die Anwendung nicht. Anders bei der Nutzung von Docker: Der Entwickler, der diese Funktion einrichtet, konfiguriert direkt am Code. Wenn andere Kollegen diese Funktion beim Auschecken erhalten, wird die aktuelle Konfiguration gleich mitgeliefert. In der alten Welt hätte man eine Mail an alle geschrieben mit der Bitte, alles entsprechend neu zu konfigurieren. Was relativ fehleranfällig gewesen wäre.
Gleiches gilt bei Versionsupgrades. Während in der alten Welt, jeder die alte Version entfernen und die neue Version selbst installieren musste, kann dies ein Kollege austesten und dann in Docker entsprechend in der Konfiguration einchecken. Jeder, der sich diese Änderungen zieht, erhält automatisch die aktuelle Version. Man spart sich hier Verwaltungs- und Konfigurationsaufwand. Zusätzlich können Entwickler lokale Änderungen an der Infrastruktur einfach über weitere docker-compose.yml-Files selbst erstellen.
Aufwände durch Abgleich unterschiedlicher Systeme sinken
Ein weiterer großer Vorteil: durch Docker werden Systemabhängigkeiten weitestgehend eliminiert, denn auf allen Systemen sind die Komponenten in gleicher Weise konfiguriert. Neue Teammitglieder verfügen über die gleiche Konfiguration wie bisherige Kolleginnen und Kollegen. Alle arbeiten auf dem gleichen Stand. Unschärfen bei der Konfiguration, die bei manch einem Kollegen zu Testzwecken geändert wurden, werden so weit wie möglich vermindert. Auch das Betriebssystem hat fast keinen Einfluss mehr, da Docker unabhängig vom Betriebssystem (MacOS, Windows, Linux) läuft und die für das Betriebssystem notwendigen Funktionen mitgeliefert werden.
Docker Vorteile für Nicht-Entwickler und Fachabteilungen im Überblick:
- Unkomplizierte Einrichtung und Verwaltung
- Zentraler Stammdatenimport
- Einfache Bedienung ohne technisches Know-how
Konzentration auf Kernaufgaben für Fachabteilungen durch Docker
Auch für Fachabteilungen und Nicht-Entwickler, die zum Beispiel für den fachlichen Test des zu entwickelnden Systems hinzugezogen werden, erfolgt die Einrichtung und Verwaltung von Docker unkompliziert. Neben Docker müssen keine weiteren Programme oder Datenbanken installiert werden. Der Rechner wird nicht durch weitere Nebeninstallationen zusätzlich belastet. Darüber hinaus sind die benötigten Dateien sehr klein. Sie bestehen im Wesentlichen aus .txt-Dateien mit einem Umfang von wenigen kB. Diese können also problemlos per Mail versendet werden.
Die Software kann von Fachabteilungen ohne technisches Know-how sehr gut bedient werden. Mit nur einem Befehl wird das gesamte System bereitgestellt. Mussten die Fachabteilungen die Stammdaten bislang bei einem etwaigen Funktionstest lokal auf dem Rechner vorliegen haben, können diese nun über Docker zentral eingespielt werden. Auch können Fachabteilungen die Tests ohne die Entwicklungsumgebung oder das Versenden von versionierten Dateien ausführen. Fachabteilungen können sich mithilfe der Anwendung Docker auf ihre Kernkompetenz konzentrieren: den fachlichen Test des zu entwickelnden Systems. Sie müssen sich nicht lange mit der Installation des Systems auf ihrem Rechner aufhalten.
Docker-Nutzung bei Convista
Wir haben uns Docker vor mehreren Jahren schrittweise genähert. So haben wir Docker im ersten Zug in unserer Testumgebung genutzt und es erst danach für die bei uns gehosteten Anwendungen eingesetzt. Mittlerweile empfehlen wir die Nutzung auch Versicherungsunternehmen, die unsere Software verwenden und selbst hosten möchten.
Im Auswahlprozess haben wir uns neben Docker auch mit anderen Anwendungen wie Kubernetes oder Erweiterungen wie Docker Swarm auseinandergesetzt. Diese waren für unsere Anforderungen jedoch zu komplex ausgestattet und hätten sehr viel Konfigurationsaufwand auf unserer Seite bedeutet.
Mittlerweile haben wir Docker bereits auch bei vielen Kunden mit eingeführt und IT-Abteilungen beim Aufbau begleitet. Es ist nach wie vor für die Anforderungen von typischen kleinen und mittleren IT-Abteilungen von Versicherern eine gute Wahl.
Sie wollen mehr Informationen zu Docker oder wünschen IT-Beratung für Versicherungen? Sprechen Sie uns gerne an.
Autor
Bryan Reussner – IT Consultant
Bryan Reussner ist Experte für technische Architekturen von Java Enterprise Anwendungen und begeisterter DevOps-Engineer.