Schnell und sicher mit Docker

Keine Kommentare

In diesem Blog Artikel möchten wir Ihnen die Software „Docker“ und mögliche Anwendungsfälle vorstellen. Wir erklären Ihnen wie „Docker“ im Alltag helfen kann.

Dazu ein Beispiel aus dem Alltag, welches die Zeitersparnis durch die Verwendung von Containern aufzeigt: Ein Kollege aus der Entwicklung benötigte eine Confluence und eine Jira Instanz zum Testen und Entwickeln. Innerhalb von 15-20 Minuten standen dem Kollegen beide Services inklusive frischer Datenbank mit Hilfe eines Docker Containers zur Verfügung und er konnte mit seiner Arbeit beginnen. Im Vergleich dazu: Eine Installation eines entsprechenden Servers inklusive Installation des Betriebssystems und patchen dauert ca. 1,5 bis 2 Stunden.

Wie gehen viele Unternehmen heutzutage noch vor?

Die meisten Server in einem Unternehmen sind virtualisiert z. B. mit Hilfe von Betriebssystemen wie VMware, Microsoft Hyper-V- oder einer anderen Virtualisierungslösung. Mit Hilfe einer Virtuellen Maschine (VM) werden die Ressourcen eines physikalischen Servers schon jetzt in einer optimierten Form genutzt. Diese Nutzung der Ressourcen lässt sich mit Hilfe von sogenannten Docker-Container bzw. Container nochmals verbessern, dies wird durch die Minimierung von Diensten und innerhalb des Containers erreicht. Es werden nur die nötigsten Dienste in einem Container installiert.

Aber was ist Docker?

Docker ist eine Technologie, mit der man sehr schnell Server-Dienste und -Services wie z.B. einen Webserver, Datenbanken oder ein Ticketsystem bereitstellen kann. Zudem ist es durch Docker möglich, diese Dienste/Services zusätzlich von dem restlichen Netzwerk zu isolieren. Dadurch wird es einem eventuellen Angreifer erschwert, sich, z. B. über einen Webdienst, Zugang zu allen restlichen Systemen innerhalb eines Firmennetzwerks zu verschaffen.

Die Container selbst werden mit sogenannten Images transportiert. In diesem Image finden sich sämtliche Informationen für den Betrieb eines Containers wieder. Hierzu zählen das Betriebssystem, die Dienste (z. B. Confluence) und deren Grundeinstellungen. Diese können im Nachhinein bei der Bereitstellung angepasst werden.

Aber wie ist eine VM und wie ist ein Docker Container aufgebaut?

Eine VM ist wie folgt aufgebaut:

Eine VM wird auf dem sogenannten Hypervisor installiert, welcher direkt auf dem physikalischen Server installiert und eingerichtet ist. Der VM werden Ressourcen wie Arbeitsspeicher, Prozessorkern und Festplattenspeicher vom Hypervisor zugewiesen. Ein Hypervisor mit 32 GB Arbeitsspeicher und 200 GB Festplattenspeicher kann also entweder einer einzelnen VM 30 GB Arbeitsspeicher (abzüglich Ressourcen vom Hypervisor) und 200 GB Festplattenspeicher bereitstellen oder z. B. 5 VMs jeweils 6 GB Arbeitsspeicher und 50 GB Festplattenspeicher. Die Prozessorkerne können mehrfach vergeben werden, wodurch der Prozessor in einer optimierten Weise genutzt werden kann.

Ein Docker-Container ist hingegen so aufgebaut:

Der Docker-Container wird auf einem Betriebssystem installiert, welches z. B. auf einem Hypervisor in Form einer VM installiert wurde. Innerhalb dieses Containers werden die Funktionen auf ein Minimum begrenzt. Dies bedeutet, dass z. B. nur eine einzige Datenbank innerhalb eines Containers betrieben wird. Es existieren also später viele Dienste, die bei einem Betriebssystem Update unberührt bleiben. Bei einer Aktualisierung wird der bestehende Container durch einen neuen Container ersetzt, die Einstellungen eines Containers sollten jedoch zuvor in einem Verzeichnis auf dem Docker Server gesichert werden. Die Ressourcen werden automatisch je nach Bedarf auf die einzelnen Container verteilt.

Welchen Vorteil bieten beide Vorgehen?

  • In beiden Fällen wird das System bzw. der Dienst vom Host abgekapselt. Dies dient dem Schutz der Firmeninfrastruktur.
  • Container bieten den Vorteil, dass sie sowohl auf einem Betriebssystem direkt auf dem Server aber auch innerhalb einer virtuellen Maschine betrieben werden können und somit ein zusätzliches Maß an Sicherheit geschaffen wird.
  • Ein weiterer Vorteil des Containers ist die schnelle Bereitstellung von Diensten, sofern diese schon als Container verfügbar sind. Ansonsten müssen auch hier zunächst fast alle Schritte, die bei einer normalen Installation notwendig sind, in ein Image geschrieben und dieses Image anschließend ausgeführt werden.
  • Sofern auf einen solchen Container zurückgegriffen werden kann und keine Besonderheiten benötigt werden ist z. B. ein Datenbank-Dienst innerhalb von 5-10 Minuten bereitgestellt.

Fazit

Durch die Verwendung von Containern wird die Unternehmensinfrastruktur gehärtet und zusätzlich durch die schnelle Bereitstellung neuer Services die Zuständige IT-Abteilung entlastet. Ein System zu härten bedeutet, dass die Sicherheit z. B. dadurch erhöht wird, nur noch Software zu installieren, die auch benötigt wird und sich keine unnötige Software auf dem System befindet. Ein weiterer positiver Effekt ist, dass Sie Server effizienter nutzen können und weniger, lediglich minimalst ausgelastete, virtuelle Server aktiv betreiben müssen. 

Kategorien: Allgemein

Hinterlasse einen Kommentar