Docker

Docker bezeichnet eine Software zur Containervirtualisierung und ist gleichzeitig ein Begriff für ein gesamtes Ökosystem um diese Technik.

Containervirtualisierung erlaubt es, mehrere Betriebssysteme und Anwendungen in isolierten Umgebungen (sog. Container) auf dem selben Computer auszuführen.

software-code



Im Vergleich mit klassischen Virtualisierungslösungen wie VMWare oder Virtualbox ist diese Technik sehr ressourcenschonend, da die Isolation auf der Betriebssystemebene stattfindet und auf die aufwendige Simulation von Hardware verzichtet werden kann.

Docker Vorteile

Arrow image
  • Effiziente Nutzung von Systemressourcen
  • Große Speicherersparnis
  • Direkte Kostenersparnis durch effiziente Auslastung
  • Schnelle und flexible Erweiterung der Funktionen möglich
  • Einsetzbar für Microservices

Docker Facts

01

Als freie Software dient Docker der Isolierung von Anwendungen.

02

Containervirtualisierung erlaubt es, mehrere Betriebssysteme und Anwendungen in isolierten Umgebungen (sog. Container) auf dem selben Computer auszuführen.

03

Erschienen im Jahr 2013, ist Docker mittlerweile vom Programmierhimmel nicht mehr wegzudenken.

Welche Einsatzmöglichkeiten eignen sich für Docker?

In der Entwicklung

Für die Entwicklung von Webanwendungen bauen wir die gesamte Infrastruktur auf Docker-Containern auf.

Angefangen bei der lokalen Entwicklung richten wir Docker-Container für jede technische Einheit der Anwendung (üblicherweise: Frontend, Backend, Datenbank) ein, um diese unabhängig und ohne unerwünschte Seiteneffekte aufzubauen. Insbesondere wird dadurch eine hohe Flexibilität und Unabhängigkeit gegenüber den verwendeten Systemen erreicht.

War es vor dem Einsatz von virtuellen Systemen durchaus üblich, dass die gleiche Software auf verschiedenen Systemen (bspw. Mac OS, Widnows, Linux) unterschiedliche Verhaltensweisen gezeigt hat, wird dies in einem Docker System abgefangen, da es sich aus Sicht der Anwendung überall um das gleiche System handelt.

Bei der routinemäßigen Prüfung

In einem weiteren Schritt wird Docker bei Ambient Innovation auch genutzt, um automatisierte Tests und Kontrollen des Codes durchzuführen. Docker spielt hier seinen Vorteil als Ökosystem aus, da viele Werkzeuge zur Webentwicklung bereits für den Umgang damit ausgerüstet sind.

Die programmierten Testszenarien laufen dazu auf automatisch eingerichteten Systemen ohne Nutzerdaten bzw. in einer vorab definierten Umgebung. Für jeden neuen Testlauf wird auch eine neue Umgebung erzeugt, ohne Einfluss auf die Produktivsysteme oder Demo-Systeme zu nehmen.

Im Produktiveinsatz

Am Ende einer Entwicklung/Entwicklungsphase kann die Anwendung im Produktivbetrieb ebenfalls mit Docker bereitgestellt werden.
Um die verschiedenen Anwendungen unserer Kunden zu verwalten und eine saubere Trennung der Zuständigkeiten zu gewährleisten, setzen wir bei Ambient Innovation das Orchestrierungswerkzeug Kubernetes ein.
Mit Kubernetes werden neue Anwendungen als Container bereitgestellt und auf einen oder mehrere Server verteilt, außerdem können Ressourcenbeschränkungen und die Skalierung von Anwendungen damit verwaltet werden.