Die Virtualisierung mit Software-Containern hat den Grundstein für ein neues Zeitalter in der Informationstechnik gelegt und bildet heute die Grundlage für eine Reihe an Webhosting-Produkten, die mit einer cloudbasierten Serverleistung arbeiten. Bei der Virtualisierung auf Betriebssystemebene kommt dabei dem Application-Container eine zentrale Rolle zu. Doch was steckt eigentlich hinter dem Begriff und welche Rolle spielen Open-Source-Projekte wie Docker in diesem Zusammenhang?
Was sind Application-Container?
Grundsätzlich handelt es sich bei einem Application-Container nicht um eine neue Erfindung, allerdings rückt das vor wenigen Jahren erschienene Docker die Technologie derzeit wieder in den Fokus. Im Prinzip können Software-Container als Apps für Server betrachtet werden, die dafür sorgen, dass bestimmte Softwares zuverlässig laufen, wenn sie von einer Umgebung in eine andere versetzt werden. Dies ist zum Beispiel der Fall, wenn ein Programm vom Laptop eines Entwicklers in eine neue Testumgebung transferiert wird oder Applikationen von einem physischen Computer auf eine virtuelle Maschine geladen werden. Der Application-Container verschnürt sowohl die Programmplattform als auch ihre Anhängsel – wie Bibliotheken oder Binär- und Konfigurationsdateien – zu einem Paket. Auf diese Weise können die Unterschiede in den Betriebssystemdistributionen durch Abstrahieren wirksam ausgehebelt werden.
>> So geht’s: Server richtig absichern
Docker: Die Rückkehr der Software-Container
Bei Docker handelt es sich um ein Open-Source-Projekt, das sich in den letzten Jahren auf dem Markt etabliert hat und heute eng mit der containerbasierten Virtualisierung verknüpft ist. Das Kommandozeilen-Tool ist dazu in der Lage, Application-Container zu verwalten und basiert auf Linux-Techniken – wie beispielsweise Namespaces und Cgroups – was die Trennung der Ressourcen einzelner Container erlaubt. Wo anfangs noch auf eine LXC-Schnittstellen zurückgegriffen wurde, werden heute eigene Programmschnittstellen eingesetzt, die als Libcontainer bezeichnet werden. Das Docker Hub ist bei der Verwaltung ein zentrales Feature der Plattform. Der onlinebasierte Dienst beinhaltet ein Repository für Docker-Images, was dem Nutzer erlaubt, selbstkreierte Images einfach und schnell mit anderen Anwendern zu teilen. Weiterhin profitieren Linux-Nutzer von der einfachen Installation fertiger Application-Container, die mit nur wenigen Klicks erledigt ist. Die einzelnen Anwendungen können dabei einfach über entsprechende Befehle in der Kommandozeile vom Docker-Hub heruntergeladen und kurz danach auf dem eigenen System ausgeführt werden.
>> Website Monitoring: Server-Überwachung kostenlos
Application Container mit Docker virtualisieren – Welche Vorteile resultieren aus dem Verfahren?
Die Virtualisierung von Application-Containern mit Docker bietet aufgrund der einfachen Installation nicht nur Vorteile in Bezug auf den Arbeitsaufwand, sondern ebenfalls im Bereich des Managements und der Automatisierung von containerbasierten Anwendungen. So stellen die Application-Container Administratoren sämtliche Server-Anwendungen, die für den Betrieb notwendig sind, in einem kompakten Paket zur Verfügung. Für die Installation werden die Container aus einem Image herausgestartet, das neben einem einzelnen Serverprogramm auch sämtliche Zusatzkomponenten enthält. Das Aufspielen der Software-Container funktioniert dabei plattformunabhängig, sodass die Images ohne Probleme zwischen Plattformen mit unterschiedlichem Betriebssystem transferiert werden können. Während dem Betrieb laufen die Programme in einzelnen Containern isoliert von Anwendungen in anderen Application-Containern, was die Gefahr von Softwarekonflikten auf ein Minimum reduziert. Dank der Isolierung ist es sogar möglich, Anwendungen mit gegensätzlichen Anforderungen auf einem System parallel zu betreiben, ohne dass dabei ein verhältnismäßig großer Aufwand entsteht. Einer der größten Pluspunkte der Virtualisierung von Application-Containern mit Docker ist zweifelsfrei die Möglichkeit der einheitlichen Administration. So geschieht die Verwaltung aller Server-Container unter Docker mit denselben Werkzeugen, was perfekte Voraussetzungen für die Automatisierung von Prozessen schafft. Für das Automatisieren von Anwendungen in Rechenzentren, wie beispielsweise die selbstständige Aktivierung zusätzlicher Instanzen bei Lastspitzen, stellt Docker Administratoren eine Reihe von Tools für die Konfiguration von Automatismen zur Verfügung.
>> Ratgeber: Ursachen und Behebung von Server-Problemen
Application-Container und Sicherheit
Die Virtualisierung mit einem Application-Container ist aufgrund der genannten Vorteile eine echte Alternative zur Hardware-Virtualisierung. Jedoch ist zu beachten, dass die containerbasierte Virtualisierung mit einem geringeren Sicherheitslevel verbunden ist. So wirken sich Sicherheitslücken im Betriebssystem bei Hardware-Virtualisierung in der Regel nur auf eine virtuelle Maschine – auch VM genannt – aus. Bei Virtualisierungen auf OS-Ebene sind hingegen alle Application-Container betroffen, da hier nicht dieselbe Kapselung vorherrscht, wie es bei einer VM mit eigenem Betriebssystem der Fall ist. Ein weiterer Nachteil in Bezug auf die Sicherheit ist, dass mittlerweile eine Vielzahl an Nutzern Container-Anwendungen bereitstellen und das Angebot entsprechend groß ist, was Hackern und Co die Möglichkeit gibt, manipulierte Software unter die Auswahl zu mischen. Aus diesem Grund sollte bei der Suche nach Containern immer die Herkunft sowie die Seriosität der Software geprüft werden.
>> Root-Server vor Brute-Force-Angriffen schützen
Application-Container mit Docker virtualisieren im Fazit
Zusammengefasst zeigt sich, dass sich die Virtualisierung von Application-Containern mit Docker aktuell auf dem Vormarsch befindet und das Verfahren eine echte Alternative zur Hardware-Virtualisierung darstellt. Insbesondere der Performance-Vorteil ist dabei häufig ein Argument für Application-Container. Allerdings ist zu erwarten, dass die Virtualisierung mit Software-Containern ihr Hardware-Pendant nie gänzlich ersetzen wird, was vor allem auf den Nachteil bezüglich der Sicherheit zurückzuführen ist. Application-Container oder Hardware-Virtualisierung? Was bevorzugen Sie und aus welchem Grund? Sagen Sie uns Ihre Meinung über die Kommentarfunktion!
Artikelbild: vladimircaribb / Fotolia