Login
Newsletter
Werbung

Do, 19. Juli 2018, 15:00

Skalierbare Container-Infrastrukturen

Das Buch »Skalierbare Container-Infrastrukturen: Das Handbuch für Administratoren« behandelt Container unter Linux in bisher nicht dagewesener Ausführlichkeit.

Vorwort

Cover von »Skalierbare Container-Infrastrukturen«

Rheinwerk-Verlag

Cover von »Skalierbare Container-Infrastrukturen«

Bei Software-Containern handelt es sich um eine relativ junge Technik der Anwendungsbereitstellung. So wie man die Virtualisierung von Maschinen als Hardware-Abstraktion bezeichnen kann, so stellen Container die Abstraktion des Userspace dar.

Es gibt in der IT-Welt und insbesondere bei Linux einige Vorläufer mit eigenen Lösungen, die moderne Technik setzt aber auf zwei Funktionen neuerer Versionen des Linux-Kernels auf, nämlich auf Linux-Namespaces und Control Groups. Damit ist es möglich, einen Software-Container an einen bereits laufenden Kernel anzudocken, und ihm so die für die Ausführung der darin enthaltenen Applikationen benötigten Ressourcen individuell zur Verfügung zu stellen. Ein Container bringt in dem ihm zu Grunde liegenden Image immer die gesamte benötigte Laufzeitumgebung inklusive aller benötigten Abhängigkeiten und Bibliotheken mit. So ist es möglich, damit gleichzeitig verschiedene Anwendungen zu betreiben, die widersprüchliche Anforderungen an den Host stellen, und Container lassen sich ohne Probleme zwischen heterogenen Servern portieren.

Software-Container sind längst als Grundlage einer zukunftsweisenden IT ausgerufen, und kommen modernen DevOps-Prozessen entgegen, bei denen die herkömmliche Trennung zwischen Entwicklung und IT-Betrieb (Operations) aufgelöst oder zumindest eingeebnet wird. Eine Entwicklungsabteilung kann die gesamte für die Anwendungsentwicklung eingesetzte Umgebung mit in einen Container packen, der dann theoretisch sogar vollkommen automatisiert durchgeschoben und für die Produktion deployt werden kann. Die Notwendigkeit, bei Produktupdates angepasste Produktionsumgebungen neu aufzusetzen oder bereits bestehende Systeme umzubauen, und die damit üblicherweise verbundenen Abstimmungsprobleme macht die Container-Technik möglich zu überkommen.

Mit der Veröffentlichung von Docker als Open Source-Projekt 2013 ist die moderne Container-Technik begründet worden, und in dem Zeitraum bis heute ist ein außer für Spezialisten kaum noch überschaubares Ökosystem von Software und Services entstanden, das sich in rasender Geschwindigkeit laufend weiterentwickelt. Das ganze Thema ist so komplex geworden vor allem, weil Container nicht in lokalen Installationen und bei Single Node-Setups, sondern gerade im größeren beziehungsweise komplexeren Maßstab ihr volles Potential entfalten. So können die Komponenten einer komplexen Anwendung in kleinere selbstständige Komponenten aufgeteilt (Stichwort: Microservices) und in separaten Containern in einem Cluster verteilt zu einem Dienst gebündelt werden (Stichwort: Orchestrierung), der redundant mit mehreren parallel laufenden Instanzen ausgelegt werden kann. So lassen sich Vorgaben der Skalierbarkeit und Ausfallsicherheit auf Enterprise-Niveau mit dieser Technik gut umsetzen.

Das Buch

Gerade diese Dimension von modernen Software-Containern ist das Hauptthema des hier besprochenen Buches, das bereits 2017 erschienen ist und im Herbst 2018 eine Neuauflage erfährt. Für das Clustering und die Orchestrierung von komplexen Anwendungen auf der Basis von Software-Containern ist mittlerweile eine Reihe von Lösungen entstanden, und so hat sich allem-in-allem ein umfangreiches Wissensfeld gebildet, das der vorliegenden Band dementsprechend auf über tausend Seiten abhandelt, mit einer umfassenden Einführung im ersten Teil.

Ein Großteil des Buches behandelt im zweiten Teil zunächst die »Single Node Container-Plattformen« als Vorstufe für das Hauptthema über den Betrieb von Container-Setups auf multiplen Knoten beziehungsweise auf verteilten Hosts. Die Hauptrolle spielt dabei Docker als Container-Engine mit dem weiterhin mit Abstand größten Marktanteil, und Leser, die ausführliche Informationen zu alternativen Lösungen wie rkt (»Rocket«) suchen, werden eher enttäuscht sein.

Die Anwendungsbeispiele beziehen sich hauptsächlich auf »Mainstream«-Distributionen wie Red Hat Enterprise Linux/CoreOS, Suse Linux Enterprise/Leap und Ubuntu, während die speziellen Container-OS wie zum Beispiel CoreOS/Container Linux oder Red Hat Atomic lediglich im Kapitel »Weitere Container-Plattformen« kurz angerissen werden.

Der dritte Teil »Skalierbare Container Cluster und Container-Orchestrierung« behandelt zunächst die für das Thema grundlegenden Techniken Key/Value-Stores und Service Discovery, und dann in einem eigenen Kapitel die in Docker eingebaute Clusterlösung Swarm Mode. Die Hauptrolle in diesem Teil spielt allerdings das ursprünglich von Google entwickelte Kubernetes (K8s).

In einem weiterem eigenen Teil werden alternative Lösungen vorgestellt, und zwar Rancher und das über eine Lösung für Container-Orchestrierung weit hinausgehende DC/OS (Datacenter Operating System) von Mesosphere. Der Umfang der Untersuchung der Kubernetes-Alternativen bleibt dabei allerdings ähnlich eingeschränkt wie derjenige der Docker-Alternativen im Teil davor. Über DC/OS immerhin kommen einige Seiten mehr an Informationen zusammen, die so sonst kaum zu finden sind. Ein letzter Teil über »Software-Defined Storage für verteilte Container-Infrastrukturen« schließt das Werk ab.

Wie umfangreich der gesamte Wissensbereich »"Software-Container« bereits geworden ist, zeigt sich daran, dass, wenn man alleine die verbreitetste Software umfangreich und tiefgehend behandeln möchte, schon ein Wälzer von über tausend Seiten zusammenkommt, und alternative Lösungen dagegen nur nebensächlich behandelt werden können.

Das vorliegende Werk bietet aus diesem Ansatz heraus eine Fülle von praxisorientierten Informationen für den Betrieb von auf Docker basierten Software-Containern in Clustern hauptsächlich auf der Basis von Kubernetes. Es richtet sich dabei an Admins, DevOps-Teams und (vorwiegend im ersten generellen Teil) an Entscheider, die diese Technologie bewerten können wollen.

Der Autor schreibt aus der »Operations«-Sicht, und so findet sich im Buch kein Kapitel darüber, welche Besonderheiten bei Container-Images für verschiedene Programmiersprachen zu beachten sind, und ähnliche Fragen, die sich hauptsächlich Entwicklern stellen. Das Werk ist weniger wie ein Nachschlagewerk aufgebaut, sondern eignet sich am besten dafür, ausgiebig durchgearbeitet zu werden, und spricht dementsprechend eher (berufliche) Praktiker an als ein generell interessiertes Publikum.

Komplett ausgespart bleiben - wahrscheinlich auch, um dem Richtwert von tausend Seiten nicht komplett zu sprengen - muss der gesamte Themenbereich »Cloud« mit den Container-Services von Public Cloud-Providern und Spezialfragen des Cloud-Deployments. Trotzdem handelt es sich um ein sehr reichhaltiges Standardwerk für das mit der Einrichtung und dem Betrieb von Container-Clustern beschäftigten IT-Personal, das - so weit ich das überblicken kann - auch auf dem englischsprachigen Buchmarkt bisher keinen ebenbürtigen Titel findet.

Autoreninformation

Daniel Stender (www.danielstender.com) ist zertifizierter Linux-Administrator, Debian Developer (stender@debian.org), und arbeitet als freier Devops Engineer.

Fakten

Titel:Skalierbare Container-Infrastrukturen: Das Handbuch für Administratoren
Jahr:2017
Autor:Oliver Liebel
Preis:69,90 EUR
Umfang:1071 Seiten
Verlag:Rheinwerk Computing
Homepage:Homepage
ISBN:978-3-8362-4366-7

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung