Open Source im professionellen Einsatz
Linux-Magazin 06/2016
© khunaspix, 123RF

© khunaspix, 123RF

Chancen und Risiken: Container für Devops

Transportlogistik

Container sind für verschiedene Devops-Konzepte eine unerlässliche Zutat. Doch falsch eingesetzt richten sie mehr Schaden als Nutzen an. Wer Docker & Co. im produktiven Umfeld verwendet, sollte die folgenden Ratschläge beherzigen.

682

Ähnlich wie den Begriff "Cloud" führen heute so viele "Devops" im Munde, dass sie sich nicht mehr auf eine einheitliche Definition einigen können. Die gängigste Annahme sieht vor, dass Devops als Philosophie anzusehen ist, nach der die Optimierung von Abläufen am Ende automatisch dazu führt, dass Entwicklung und Betrieb von IT besser aufeinander abgestimmt sind. Konkrete Vorgaben im Hinblick auf zu nutzende Werkzeuge oder Programme machen die meisten Definitionen nicht mehr.

Dennoch haben sich Container flächendeckend durchgesetzt. Der kometenhafte Aufstieg von Docker hat die Technik in den Köpfen von Entwicklern, Admins und Planern gleichermaßen verankert. Logisch: Container bieten Entwicklern einerseits in Windeseile eine saubere Umgebung, in der sie beliebig experimentieren können. Andererseits minimieren sie den Aufwand beim Deployment beträchtlich. Man könnte fast meinen, ein Container sei die technische Umsetzung des Devops-Prinzips.

Doch wer in klassischer Manier mit Containern umgeht und sie in der beschriebenen Weise nutzt, geht gerade im betrieblichen Alltag ein erhöhtes Risiko ein, denn eine Blackbox (Abbildung 1) in Form eines Containers ist für Admins ein Horrorszenario. Der folgende Artikel erläutert die potenziellen Probleme von Containern und stellt Alternativen vor. Denn wer Container in der richtigen Weise nutzt, profitiert von ihren Vorteilen und umgeht die Fallen.

Abbildung 1: Der Community-Teil des Docker-Hub enthält viele Images, deren Herstellung meist kaum nachvollziehbar ist. Zum Problem wird das beispielsweise beim Updaten.

Bestandsaufnahme

Um die Probleme im Zusammenhang mit Containern zu verstehen, hilft ein Blick auf die Ausgangssituation, wenn Docker zum Einsatz kommt: Entwickler arbeiten vor sich hin und haben am Ende einen fertigen Container, in dem die gewünschte Applikation problemlos läuft. Meist beginnen sie ihre Arbeit bereits mit einem fertigen Abbild: Wer etwa eine Webanwendung auf Basis von Ubuntu 16.04 entwickeln möchte, nimmt einen Container, in dem Ubuntu und Apache bereits vorinstalliert sind, und fügt die eigene Anwendung hinzu. Läuft sie nach ein paar Anpassungen in diesem Container, erstellt der Entwickler daraus erneut ein Abbild und stellt es dem Admin zur Verfügung.

Der ist für den Betrieb der IT-Infrastruktur zuständig: Er lädt den Container also auf einen Docker-Host und nimmt ihn dort in Betrieb. Unmittelbar danach steht der Dienst des Containers im Netz zur Verfügung – Entwickler und Admin, klopfen sich auf die Schulter (sofern nicht einer beide Rollen in Personalunion verkörpert) und entfernen den Eintrag von ihrer To-do-Liste. Dass der Container zum Problem werden könnte, wird erst viel später offenbar.

Notwendige Updates werden zum Problem

Auffallen wird das Problem, wenn Updates eingespielt werden müssen. Meist handelt es sich um Sicherheitsupdates, und man muss nach etwaigen Beispielen in der Vergangenheit nicht lange suchen. Erinnert sei an verschiedene Fehler in der SSL-Standardbibliothek, die deren Austausch nötig machten. Auch das Problem im Resolver der C-Bibliothek (»libc« ) vor ein paar Monaten ist so ein Fall.

Wenn es hart auf hart kommt, sieht sich der Admin mit der Anforderung konfrontiert, viele Systeme gleichzeitig zu aktualisieren. Für physische Rechner ist die Lösung einfach: Sobald der Distributor ein passendes Update bereitstellt, installiert die Update-Funktion des Systems oder eine Automatisierungslösung die entsprechenden Pakete.

Bei Containern nach Docker-Art ist die Sache komplizierter. Weil sie oft auf dem Basis-Image eines Drittanbieters beruhen, kann der Admin kaum etwas über ihre Update-Fähigkeit sagen. Im besten Fall hat auch der Container automatische Updates aktiviert und ist entlang gängiger Standards gebaut, sodass das Update funktioniert. Nutzt die Applikation innerhalb des Containers aber zum Beispiel eigene Bibliotheken, ist das Chaos perfekt. Eine lokal gebaute C-Bibliothek innerhalb des Containers lässt sich auch nur direkt im Container updaten.

Alternativ dazu könnte der Entwickler den Container auch neu bauen, sodass er danach die notwendige Sicherheitskorrektur von vornherein enthält. Dazu müsste aber sichergestellt sein, dass der Entwickler den Container samt Applikation jederzeit wieder neu erstellen kann. Je nach Anzahl der ausgerollten Container müsste das außerdem für viele verschiedene Container zur gleichen Zeit passieren. Wer also Hunderte oder Tausende Container nutzt, sieht sich einem Mammutprojekt gegenüber.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Docker

    Docker ist das englische Wort für Hafenarbeiter. Das passt, denn die gleichnamige Software füllt und verschiebt Container – die unter anderem Webanwendungen enthalten.

  • Neue Orchestration-Tools für Docker

    Neue Services beschleunigen das Management von Multi-Container-Applikationen mit Docker.

  • Docker unter Apache-2.0-Lizenz

    Dotcloud hat den Quellcode für seine Software Docker veröffentlicht und unter die Apache-2.0-Lizenz gestellt.

  • Container

    In dem Maße, wie Containerlösungen wie Docker in Unternehmen immer mehr Anwender finden, rücken Sicherheitsaspekte stärker in den Fokus. Schon länger bescheinigen Kritiker Docker Schwächen in diesem Bereich. Doch wo genau hat sich das Projekt verhoben?

  • Docker 1.9 unterstützt virtuelle Netzwerke und verbessert Volume-Management

    Docker 1.9 sei eine umfangreiche Release geben die Macher der Containerlösung zu Protokoll. Docker Swarm und Multihost-Networking seien einsatzbereit, zudem wartet ein überarbeitetes Volume-Management-System, um Daten dauerhaft zu speichern.

comments powered by Disqus

Ausgabe 11/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.