Docker

Docker hat die Softwareentwicklung revolutioniert

Wir bei BroadcastX nutzen Docker seit dem Jahr 2018 für unsere Softwareentwicklung und wir sind noch immer ganz begeistert, wie wirkungsvoll uns diese Technologie bei der Digitalisierung unserer Kunden unterstützt.

Die Anfänge von Docker

Docker hat es in wenigen Jahren geschafft, seine Container als Standard-Technologie für die Bereitstellung von Anwendungen zu etablieren. Software kann damit schneller produktiv eingesetzt werden, als jemals zuvor.

Im Jahr 2013 hat der Entwickler Solomon Hykes dieses Konzept erstmals veröffentlicht. Hykes leitete damals das Unternehmen „dotcloud“ und hatte entschieden, seine selbst entwickelte Infrastrukturtechnik auf Basis der Linux-Container offenzulegen. Sein Unternehmen wurde in Docker umbenannt und die Technologie hat er als Open-Source-Software frei zugänglich gemacht.

Der unglaubliche Aufschwung ging einher mit den vielen neuen Cloud-Anwendungen, welche die Docker-Virtualisierung zur Entwicklung genutzt haben. Und das Docker-Ökosystem wird immer größer und wächst munter weiter. Mehr als acht Milliarden Container-Images haben Nutzer bereits heruntergeladen und rund eine halbe Million unterschiedliche Docker-Apps stehen den Anwendern zur Verfügung. Die Entwickler-Community zählt rund 3000 Programmierer, die an der Weiterentwicklung der Technologie beteiligt sind.

Wie funktioniert Docker?

Docker ist eine Software, welche die Virtualisierung von Anwendungen ermöglicht. So werden zum Beispiel Mikroservices mit ihren Abhängigkeiten in ein Image verpackt und in einem Container ausgeführt. Diese Container beinhalten die komplette Laufzeit-Umgebung und sind dabei relativ klein und meistens nicht größer als 100 Megabyte. Mit diesen isolierten Containern, die sich nicht gegenseitig beeinflussen, lassen sich Anwendungen perfekt modularisieren.

Das Herzstück von Docker ist die Docker-Engine. Mit dieser Client-Server-Anwendung werden Images, Docker-files und Container bequem verwaltet. So wird zum Beispiel ein Update der Datenbank einfach als neue Versionsnummer im Docker-file eingetragen. Möchte man die Anwendung hochskalieren, werden einfach mehrere Container aus einem Image erzeugt.

Docker ist plattformunabhängig und kann auf allen gängigen Betriebssystemen genutzt werden. Mit der eigenen Docker-Maschine kann die Technologie plattformübergreifend für Linux, Mac und Windows zur Verfügung gestellt werden. Dieses Tool erstellt automatisch neue Hosts und konfiguriert den Zugriff aus der Ferne. Die Systeme lassen sich damit komplett remote bedienen.

Docker im Vergleich zur klassischen Hardware-Virtualisierung

Die leichtgewichtigen Docker-Container greifen auf die Ressourcen ihres Hostsystems zu und beinhalten deswegen kein eigenes Betriebssystem. Entsprechend schnell ist die Container-Visualisierung betriebsbereit. Im Gegensatz dazu muss bei der klassischen Virtualisierung immer ein separates Gastsystem gestartet werden.  Der Speicherbedarf ist damit um ein Vielfaches größer. Kann ein Server beispielsweise 100 virtuelle Maschinen beherbergen, ließen sich alternativ bis zu 1.000 Docker-Container auf dem System bereitstellen.

Im direkten Vergleich ist Docker also schlanker, schneller und ressourcensparender.

Docker wird die klassische Virtualisierung jedoch nicht ersetzen. Es gibt komplexe Anwendungsfälle, wie zum Beispiel die Virtualisierung von kompletten Infrastrukturen, die auch in Zukunft von den großen Playern wie VMware oder Microsoft gemanagt werden.

Container und Virtualisierung werden eher nebeneinander als komplementäre Technologien existieren und nicht als Konkurrenzprodukte. Denn Container können auch in virtuellen Maschinen betrieben werden. Der spezielle Anwendungsfall wird über die eingesetzte Technologie entscheiden.

Die große Herausforderung: Nicht den Überblick verlieren

Auch wenn der Einsatz von Docker-Containern recht simpel daherkommt – es wird sehr schnell komplex und unübersichtlich. Es ist tatsächlich nicht so einfach, wie es zunächst erscheint. Das professionelle Management der Container-Technologie wird daher zu einer der wichtigsten Kernaufgaben.

Docker liefert mittlerweile hauseigene Tools zur Orchestrierung wie „Swarm“ und „Compose“. Es gibt aber noch zahlreiche andere Tools, die den Betrieb der Container-Plattform erleichtern sollen. Der Musikdienst Spotify hat zum Beispiel seine eigene Lösung „Helios“ quelloffen zur Verfügung gestellt.

Wir bei BroadcastX benutzen zum Management das Open-Source-Projekt „Kubernetes“, welches von Google entwickelt wurde und heute unter der Schirmherrschaft der Cloud Native Computing Foundation (CNCF) steht.

Für uns liegen die Vorteile auf der Hand.

Kubernetes liefert:

Sprechen Sie uns an, wenn Sie Fragen zur Virtualisierung mit Docker haben.