kalafoto - stock.adobe.com
Wichtige Begriffe rund um Container und Container-Storage
Container bestechen durch Einfachheit und Portierbarkeit und benötigen spezifisches Storage. Anwender sollten fürs bessere Verständnis die wichtigsten Begriffe zum Thema kennen.
Container sind inzwischen eine beliebte Methode, Applikationen zu erstellen und zu packen. Ihre Vorteile liegen in Einfachheit und besserer Portierbarkeit. Manche Analysten sehen die Technologie als Konkurrenz für virtuelle Maschinen. Deshalb haben Container in der letzten Zeit stetig mehr Aufmerksamkeit von Kunden und Herstellern auf sich gezogen.
Warum sollte man Container und Containerisierung statt anderer Alternativen vorziehen? Container arbeiten auf Bare-Metal-Systemen, Cloud-Instanzen und virtuellen Maschinen (VMs), sie sind kompatibel zu den Betriebssystemen Linux, ausgewählten Windows- und MacOS-Varianten. Container verbrauchen in der Regel weniger Ressourcen als VMs und können Applikationsbibliotheken und Abhängigkeiten in einer bequemen, einfach bereitzustellenden Ressource bündeln.
Es folgen einige wichtige Begrifflichkeiten rund um Container und deren Storage – von technischen Details bis zu spezifischen Produkten auf dem Markt. Wer in Containerisierung investieren möchte, sollte diese Begriffe und Konzepte kennen.
Unentbehrliche technische Begriffe
Containerisierung. Seine Wurzeln hat die Containerisierung in der Partitionierung. Containerisierung ist daher eine effiziente Strategie der Datenspeicherung, wenn auch keine langfristige Sicherung, da Container kurzlebig und als Prozesse konzipiert sind. Diese Art der Virtualisierung isoliert Applikationen virtuell und ermöglicht dadurch, dass mehrere Container auf einer Maschine laufen und gemeinsam dasselbe Betriebssystem nutzen. In Containern laufen unabhängige Prozesse in einem gemeinsam genutzten Raum. Sie können unterschiedliche Umgebungen nutzen und bilden damit eine flexible Alternative zu virtuellen Maschinen.
Die Vorteile der Containerisierung sind unter anderem ein reduzierter Hardware-Overhead und Portabilität. Andererseits gibt es Probleme mit der Data Protection, die in Containern gespeichert werden. Da alle Container auf einem Betriebssystem laufen, sind alle dort befindlichen Container dem gleichen Risiko ausgesetzt, auch wenn ein Problem nur auf einen zutrifft.
Container Management Software. Wie der Name schon andeutet, wird Container Management Software eingesetzt, um die Arbeit mit Containern zu vereinfachen, sie zu organisieren und zu verwalten. Container Management Software automatisiert die Erstellung, Löschung, die Bereitstellung und die Skalierung von Containern. Besonders hilfreich ist sie, wenn sehr viele Container auf einem OS laufen. Allerdings ist der Orchestrierungsaspekt der Container Management Software komplex und das Aufsetzen der Containerumgebung schwierig.
Zu den Produkten dafür gehört als derzeit marktdominante Lösung Kubernetes. Es handelt sich um eine Open-Source-Software zur Container-Orchestrierung. Apache Mesos ist ein Open-Source-Projekt, das Compute Cluster managt. Docker Swarm ist ein Managementwerkzeug für Container Cluster.
Persistentes Storage. Um persistent (beständig) zu sein, muss ein Storage-System Daten vorhalten, nachdem es abgeschaltet wurde oder einen Stromausfall erfahren hat. Während Persistenz bei modernem Storage an sich essentiell und selbstverständlich ist, hat der Aufstieg der Containerisierung das Thema „Persistentes Storage“ wieder aktuell gemacht.
Container haben persistentes Storage nicht von Anfang an unterstützt. Das bedeutet, dass Daten, die durch eine containerisierte Applikation erzeugt wurden, mit der Löschung dieses Containers ebenfalls verschwanden. Glücklicherweise hat sich die Containertechnologie inzwischen so weit entwickelt, dass dieses Problem gelöst ist und Containerdaten erhalten bleiben.
Stateful Apps. Eine Stateful App speichert die Client-Daten der Aktivitäten einer Sitzung für die nächste Sitzung. Die meisten Applikationen und Betriebssysteme arbeiten per se Stateful. Allerdings ließen sich Stateful Apps auf den frühen Cloud-Architekturen schlecht skalieren. Deshalb begannen die Entwickler, vermehrt Stateless Apps zu bauen.
Mit einer derartigen App wird jede Sitzung so ausgeführt, als geschehe alles zum ersten Mal. Antworten hängen nicht von Daten aus vorangehenden Sitzungen ab. Stateless Apps passen besser zum Cloud Computing, denn sie können bei einem Fehler oder Ausfall leichter wieder bereitgestellt und bei Veränderungen skaliert werden.
Allerdings ermöglicht Containierisierung, dass Dateien während des Starts in den Container gezogen werden und andernorts bleiben, wenn der Container gestoppt und neu hochgefahren wird. Das behebt das Problem, dass Stateful Apps instabil werden, wenn sie in einer Stateless Cloud-Umgebung laufen.
Containeranbieter und Produkte
Bei modernen Containern ist unzweifelhaft ein Hersteller Spitzenreiter, nämlich Docker (siehe unten). Doch das Feld hat sich geöffnet und umfasst nun einige weitere wichtige Anbieter. Die Auswahl unten deckt nur einen kleinen Teil der Container-Anbieter und -Produkte rund um Container ab.
Docker. Dieser Name steht oft als Synonym für Container. Docker wird auch zugeschrieben, die Renaissance der Container in der IT ausgelöst zu haben. Der Quellcode der Docker-Plattform liegt offen. Registrierte Anwender können Container über diverse Hosts in privaten und öffentlichen Umgebungen hinweg gemeinsam nutzen. In den vergangenen Jahren hat Docker Containertechnologie kommerziell zugänglich gemacht und bietet nun diverse Editionen davon an.
Der Name Docker bezieht sich entweder auf das Unternehmen, Docker Inc., oder auf die Docker Engine. Sie wurde anfangs für Linux-Systeme entwickelt. Inzwischen gibt es Versionen, die nativ auf Windows und Apple-Betriebssystemen arbeiten. Die Docker Engine unterstützt alle Aufgaben und Prozesse, die zum Bauen, Versenden und zum Ablauf von containerbasierten Applikationen gehören.
Container Linux. Ursprünglich hieß dieses Produkt CoreOS Linux. Heute ist Container Linux von CoreOS ein Open-Source-Betriebssystem, das die Applikationen in Containern bereitstellt und verwaltet. Das Betriebssystem basiert auf einem Linux-Kern und skaliert massiv bei minimalem Overhead. Zwar ist Container Linux Open Source, doch bietet CoreOS kommerzielle Supportservices dafür an. 2018 wurde das Unternehmen von Red Hat gekauft, das inzwischen zu IBM gehört. CoreOS entwickelt aber weiterhin Open-Source-Werkzeuge und -Komponenten.
Azure Container Instances (ACI). Mit ACI können Entwickler Data Storage Container auf der Microsoft Azure Cloud bereitstellen. Organisationen können einen neuen Container über das Azure-Portal oder über eine Befehlszeile hochfahren. Microsoft stellt automatisch die benötigten Compute-Ressourcen bereit und skaliert sie. ACI unterstützt auch Standard-Docker-Images sowie Linux- und Windows-Container.
Microsoft Windows Container. Windows Container sind abstrahierte und portable Betriebsumgebungen, die Microsoft Windows Server 2016 unterstützt. Sie können mit Docker und PowerShell verwaltet werden und arbeiten mit etablierten Windows-Technologien zusammen. Neben Windows Containers unterstützt Windows Server 2016 auch Hyper-V-Container.
VMware vSphere Integrated Containers (VIC). Der Name VIC bezieht sich sowohl auf individuelle Container-Instanzen als auch auf eine Plattform, die Container innerhalb VMs bereitstellt und verwaltet. Dies geschieht über VMwares Managementlösung für VMs, vShpere, Zudem hat VMware die Demo-Version von Projekt Bonneville gezeigt. Hier geht es um Container, die auf einem einem virtuellen Container-Host laufen. Er repräsentiert Werkzeuge und Hardwareressourcen, die Containerservices erzeugen und steuern.