Die fünf grundlegenden Schritte zur Erstellung von Container-Apps für Docker

Die Bereitstellung von Container-Apps ist aufwändiger als mit herkömmlichen Anwendungen. Diese fünf Schritte zeigen das grundlegende Vorgehen.

Docker-Container machen sich gerade auf, die Cloudwelt im Sturm zu erobern, diese Chance will sich natürlich auch kein großer Anbieter entgehen lassen und so erfährt Container-Virtualisierung derzeit eine große Unterstützung seitens der IT-Industrie. Aber was macht Docker-Container eigentlich so populär?

Ganz einfach ausgedrückt schaffen Container eine enorme Portabilität zwischen Clouds, seien es lokale Private, Hybrid oder auch Public Clouds. Gleichzeitig wird es so möglich, Applikationen in verteilte Komponenten aufzubrechen, die sich leichter weiterentwickeln oder skalieren lassen. Zusätzlich lassen sich diese Container auch als Cluster verwalten, beispielsweise in der Amazon- oder Google-Cloud.

Da mehr und mehr Unternehmen den Schritt hin zu Container-Applikationen planen, ist es wichtig, den Migrationsprozess hierzu zu verstehen. Dieser lässt sich auf einer abstrakten Ebene in fünf Schritten beschreiben. Dabei sollte man nicht vergessen, dass Docker-Container vor allem leichtgewichtige Cloudapplikationen adressieren und sich daher nicht zwangsläufig pauschal für alle Anwendungen eigenen.

Schritt 1: Anwendungen in einzelne Komponenten verpacken

Gerade Unternehmensanwendungen sind meistens recht komplex und bestehen aus vielen unterschiedlichen Komponenten. Die meisten Applikationen nutzen für die Datenspeicherung und-integration zum Beispiel Datenbanken oder Middleware. Diese und ähnliche Komponenten sollten bei Design und Deployment der Containerapplikation aus der Anwendung selbst herausgelöst und über einen eigenen Container bereitgestellt werden.

Je verteilter eine Anwendung schließlich ist, umso mehr Möglichkeiten gibt es auch, sie zu skalieren. Zum Beispiel lassen sich so nur bestimmte Container der Anwendung skalieren, ohne die gesamte Applikation skalieren zu müssen. Auf der anderen Seite steigt natürlich auch die Komplexität beim Management der Container-Umgebung, je verteilter die einzelnen Applikations-Container letztlich sind.

Schritt 2: Auswahl eines Basis-Image

Bei der Migration einer Anwendung sollte man nicht versuchen, das Rad neu zu erfinden. Über die Docker-Registry stehen zahlreiche Docker-Images bereit, die sich als Grundlage der eigenen Container-Applikation verwenden lassen. Wichtig hierbei ist aber, dass Docker selbst kaum eine Kontrolle der dort gelisteten Docker-Images vornimmt. Wie bei anderer Open-Source-Software wird hier vor allem auf die Kontrolle der Community gesetzt, ein genauer Blick auf den Inhalt und Tests der Docker-Images sollten also Pflicht sein.

Trotzdem werden Unternehmen mehr und mehr von der Docker-Registry Gebrauch machen. Auch hier sollte man den Community-Charakter von Docker nicht vergessen: Der Erfolg von Docker als Ganzes hängt maßgeblich vom eigenen Engagement in der Docker-Gemeinschaft und vom Teilen eigener Verbesserungen beim Image-Management ab.

Schritt 3: Sicherheitsprobleme ausräumen

IT-Sicherheit und Information Governance müssen inzwischen absolute Priorität genießen, da reicht es nicht mehr, diese Punkte erst kurz vor dem Deployment von Applikations-Containern zu adressieren. Stattdessen sollten Unternehmen von Anfang an Security- und Governance-Prinzipien in die Container einarbeiten und sie während des gesamten Prozesses proaktiv verfolgen.

Container-basierte Applikationen sind verteilte Anwendungen. Unternehmen sollten daher ältere Applikationen soweit aktualisieren, dass sie mit entsprechend ebenfalls verteilten Identity-Management-Ansätzen umgehen können. Auf diese Weise lassen sich Container-basierte Anwendungen besser absichern. Hierfür sollte jede Applikations-Komponente eindeutig identifizierbar sein, um ein feingliedriges Security-Netz spannen zu können.

Ein oft geäußerter Kritikpunkt bei Container-basierter Virtualisierung zielt auf die gemeinsame Nutzung des Host-Kernels ab. Mittlerweile gibt es aber Mittel und Wege, auch Container-Umgebungen sicher zu betreiben.

Schritt 4: Eigenen Code hinzufügen

Vor allem für sehr individuelle Applikations-Komponenten wird es manchmal kein vorgefertigtes Docker-Image geben. In diesem Fall muss also ein eigenes angelegt werden. Zum Erstellen eines eigenen Docker-Images wird ein Dockerfile benötigt, das die nötigen weiteren Schritte definiert. Ausführliche Anleitungen zum Erstellen von Docker-Images sowie zu Docker generell finden sich in der Get-Started-Sektion auf docker.com. Sobald das Image erstellt ist, kann es auch dem Docker Hub hinzugefügt und anschließend von anderen Nutzern verwendet werden. Allerdings sollten an diesem Punkt auch mögliche Lizenzprobleme bedacht werden: Nicht jeder Softwareanbieter wird seine Produkte unkontrolliert als Docker-Image verpackt über den Docker-Hub verteilt sehen wollen.

Schritt 5: Konfigurieren, testen und bereitstellen

Bei der Konfiguration besteht im Vergleich zu Hypervisor-basierter Virtualisierung das zusätzliche Problem, dass der Container-Applikation mitgeteilt werden muss, welche containerisierten Komponenten sich wo mit welchen externen Ressourcen oder mit anderen Applikations-Komponenten verbinden müssen. Diese Konfigurationen können entweder direkt in den Container gepackt oder aber über Umgebungsvariablen gelöst werden.

Container-basierte Anwendungen zu testen unterscheidet sich dabei nicht sonderlich vom Testen anderer verteilter Applikationen. Jeder Container sowie der gesamte Cluster sollte Komponenten-Tests unterzogen werden. Es sollte auch festgelegt werden, wie die Anwendung unter steigender Last skaliert. Sofern Cluster-Tools wie Swarm zum Einsatz kommen, sollten auch diese getestet werden.

Im letzten Schritt erfolgt das Deployment in die Produktionsumgebung. Für ein proaktives Überwachen der Umgebung sollten Monitoring- und Management-Tools mit Event-Logging aktiviert sein. Hier gibt es zwar noch einige Defizite, aber der Markt dürfte schnell auf den steigenden Bedarf reagieren.

Vor allem Cloudapplikationen sind wie gemacht für den Einsatz in Container-Umgebungen. Auch wenn die Migration von Anwendungen etwas komplexer ist als mit herkömmlichen Anwendungs-Stacks, bieten Container-basierte Umgebungen viele Vorteile, die das komplexere Management aufwiegen.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Cloud Computing

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close