Die Softwareplattform Docker hat sich in den letzten Jahren zur führenden Containertechnologie entwickelt und verfügt als Open Source Software inzwischen ebenfalls über eine umfangreiche Community und eine Vielzahl an Plug-Ins und Zusatzlösungen. Docker-Installationen sind für Windows 10 sowie für zahlreiche Linux-Distributionen verfügbar.

Container ändern derzeit die Art und Weise, wie webbasierte Software entwickelt und verfügbar gemacht wird, da sie die Entwicklung von Webapps vom Hosting trennen, ähnlich wie standardisierte Container in der Logistik den transportierten Inhalt (die Ware) von der Art des Transportes (Schiff, Zug, LKW) trennen. Webapps können so lokal entwickelt, getestet und in Container verpackt werden. Die Container können anschließend im Web auf verschiedene Art und Weise und plattformunabhängig publiziert werden, ohne an der Webapp selbst noch Anpassungen machen zu müssen:

  • Hosting einer Containerumgebung auf einem dedizierten oder virtuellen Server bei einem Provider wie Strato, 1&1 oder anderen Anbietern. Erforderlich ist lediglich ein Serverbetriebssystem, beispielsweise das Linuxsystem Debian oder Ubuntu.
  • Hosting auf einer Containerumgebung in der Cloud. Alle großen Cloudanbieter stellen hierfür bereits Produkte zur Verfügung, beispielsweise Amazon EC2 Container Service, der Azure Containerdienst von Microsoft oder die Container Engine der Google Cloud Plattform. Von IBM gibt es zum Hosting von Containern den IBM Bluemix Container Service
  • Hosting auf einem Server im Intranet eines Kunden

Im Unterschied zu virtuellen Maschinen setzen Container nicht auf der Emulation eines eigenen Betriebssystems auf, sondern nutzen direkt das Prozessmanagement und die Ressourcen des darunterliegenden Systems in einer abgesicherten Art und Weise. Der Vorteil besteht in einer besseren Performance und einem wesentlich geringeren Speicherverbrauch. Dadurch können Webapps in Containern in Sekundenschnelle bereitgestellt werden und viele einzelne Webapps in separaten Containern auf einem Server gleichzeitig gehostet werden.

Komposition von Komponenten

Mit Hilfe der Docker-Technologie ist auch die kontrollierte Kommunikation zwischen Webapps sowie mit Diensten außerhalb der Webapps möglich. Somit ist eine modulare Architektur auf Basis von Microservices konstruierbar, die es ermöglicht, auch komplexe Webprodukte zu entwickeln, zu deployen und vor allem hochgradig wartbar zu betreiben. Damit werden auch Systeme möglich, bei denen beispielsweise verschiedene Shiny-App-Container auf eine gemeinsame Datenbank zugreifen, die in einem separaten Container bereitgestellt wird. App- und Datenbankcontainer können so unabhängig voneinander gepflegt und weiterentwickelt werden.

Dr. Hornecker Software-Entwicklung und IT-Dienstleistungen

Leo-Wohleb-Strasse 6
D-79098 Freiburg

+49 (0) 761 - 20 55 10 - 20

Dr. Hornecker Softwareentwicklung und IT-Dienstleistungen