Was ist Containertechnik?
NachrichtenDie Containertechnologie, auch als Container bezeichnet, ist eine Methode, um eine Anwendung so zu verpacken, dass sie mit ihren Abhängigkeiten von anderen Prozessen isoliert ausgeführt werden kann. Die großen öffentlichen Cloud-Computing-Anbieter, einschließlich Amazon Web Services, Microsoft Azure und Google Cloud Platform, setzen auf Containertechnologie, wobei Containersoftware unter anderem die populären Optionen Docker, Apache Mesos und rkt (ausgesprochen) enthält “Rakete”) und Kubernetes.
Die Containertechnik hat ihren Namen von der Schifffahrt. Anstatt einen einzigartigen Weg zu finden, jedes Produkt zu versenden, werden die Waren in Stahltransportcontainer verbracht, die bereits für die Abholung durch den Kran auf dem Dock vorgesehen sind und in das Schiff passen, das für die Standardgröße des Containers ausgelegt ist. Kurz gesagt: Durch die Standardisierung des Prozesses und das Zusammenhalten der Elemente kann der Container als eine Einheit bewegt werden, und es kostet weniger, dies auf diese Weise zu tun.
Bei der Computercontainertechnologie ist dies eine analoge Situation. Haben Sie schon einmal die Situation, dass ein Programm auf einem Rechner perfekt läuft und sich dann in ein klobiges Durcheinander verwandelt, wenn es auf den nächsten verschoben wird? Dies kann bei der Migration der Software von einem Entwickler-PC zu einem Testserver oder einem physischen Server in einem Rechenzentrum eines Unternehmens zu einem Cloud-Server auftreten. Beim Verschieben von Software treten Probleme auf, weil sich die Computerumgebungen wie installiertes Betriebssystem, SSL-Bibliotheken, Speicher, Sicherheit und Netzwerktopologie unterscheiden.
So wie der Kran den gesamten Container als Einheit aufnimmt, um ihn zum Transport auf das Schiff oder Lastkraftwagen zu setzen, was die Bewegung erleichtert, erreicht die Computer-Containertechnologie dasselbe. Die Containertechnologie umfasst nicht nur die Software, sondern auch die Abhängigkeiten, einschließlich Bibliotheken, Binärdateien und Konfigurationsdateien, und sie werden als Einheit migriert. Dadurch werden Unterschiede zwischen den Betriebssystemen, einschließlich Betriebssystemunterschieden und zugrunde liegender Hardware, die zu Inkompatibilitäten und Abstürzen führen, vermieden. Container erleichtern auch die Bereitstellung von Software auf einem Server.
Virtuelle Maschinen
Bevor Container an Popularität gewonnen haben, waren virtuelle Maschinen ein früherer Ansatz. Hier konnte ein physischer Server über Virtualisierungstechnologie, auch als virtuelle Maschine bezeichnet, für mehrere Anwendungen verwendet werden, wobei jede virtuelle Maschine das gesamte Betriebssystem sowie die auszuführende Anwendung enthält.
Auf dem physischen Server werden dann mehrere virtuelle Maschinen mit jeweils einem eigenen Betriebssystem ausgeführt, auf denen sich eine einzige Hypervisor-Emulationsebene befindet. Wenn mehrere Betriebssysteme gleichzeitig ausgeführt werden, ist auf dem Server ein erheblicher Overhead, wenn die Ressourcen verwendet werden, und die Anzahl der virtuellen Maschinen ist auf einige wenige beschränkt.
Im Gegensatz dazu führt der Server bei der Containertechnologie ein einzelnes Betriebssystem aus, da jeder Container dieses einzelne Betriebssystem mit den anderen Containern auf dem Server gemeinsam nutzen kann. Die gemeinsam genutzten Teile des Betriebssystems können nur gelesen werden, um die anderen Container nicht zu beeinträchtigen. Dies bedeutet, dass Container im Vergleich zu virtuellen Maschinen weniger Ressourcen für den Server benötigen und einen geringeren Overhead aufweisen. Sie sind erheblich effizienter, sodass viel mehr Container auf einen einzelnen Server gepackt werden können. Während für jede virtuelle Maschine beispielsweise Gigabytes an Speicher erforderlich sind, benötigt jeder Container, der ein ähnliches Programm ausführt, möglicherweise nur Megabytes.
Wie funktionieren Container??
Container sind so eingerichtet, dass sie die Arbeit in einer Architektur mit mehreren Containern durchführen können, die als Container-Cluster bezeichnet wird. In einem Kubernetes-Container-Cluster gibt es einen einzelnen Cluster-Master, wobei die anderen zugehörigen Container als Knoten bezeichnet werden, dh die mehreren Arbeitsmaschinen. Die Rolle des Cluster-Masters besteht darin, die Workloads für die Knoten zu planen und ihren Lebenszyklus sowie ihre Upgrades zu verwalten.
Die Containertechnologie ist kein neues Phänomen und seit langem ein Kernmerkmal von Linux. Der Fortschritt der Containertechnologie in den letzten Jahren ist einfacher zu bedienen, und Softwareentwickler haben sie aufgrund ihrer Einfachheit und der Vermeidung von Kompatibilitätsproblemen angenommen. Sie ermöglichen es auch, ein Programm in kleinere Teile aufzuteilen, die als Microservices bezeichnet werden.
Der Vorteil des Programms als Komponenten-Mikrodienstleistungen besteht darin, dass verschiedene Teams an jedem der Container separat arbeiten können, solange die Interaktionen zwischen den verschiedenen Containern aufrechterhalten werden, wodurch die Software schneller entwickelt werden kann. Schließlich ermöglicht die Containertechnologie die vollständige Kontrolle der Container.
Während Container alle Arten von Software ausführen können, werden ältere Programme, die für die Ausführung auf einer virtuellen Maschine entwickelt wurden, nicht gut auf die Containertechnologie migriert. Diese ältere Software, die auf einer virtuellen Maschine ausgeführt wird, kann auf einer Cloud-Plattform wie Microsoft Azure abgelegt werden, so dass Container virtuelle Maschinen auf absehbare Zeit nicht vollständig ersetzen können.
Wie verwalten Unternehmen Container??
Bei so viel Software, die als Container ausgeführt wird, ist die Verwaltung der Container mittlerweile zu einer Anforderung geworden, und es ist schwierig, diese Aufgabe manuell auszuführen. Eine spezielle Software für das Containermanagement ist erforderlich. Eine beliebte Open Source-Lösung ist Kubernetes, das mehrere Distributionen einschließlich Red Hat OpenShift hat. Containerverwaltungssoftware erleichtert die Bereitstellung von Containern und funktioniert gut mit den schnellen Implementierungsstrategien der DevOps-Philosophie.
Ein weiteres wichtiges Merkmal der Containertechnologie ist ihre Flexibilität. Bei einer virtuellen Maschine dauert es einige Minuten, bis der Computer hochgefahren ist, so wie der PC auf Ihrem Schreibtisch zu Beginn des Tages gestartet wird. Vielmehr kann mit der Containertechnologie ein Container in wenigen Sekunden gestartet werden, da das Betriebssystem bereits auf dem Server läuft. Auf diese Weise können Behälter nach Bedarf gestartet und gestoppt werden, um sich zu einem Zeitpunkt hoher Nachfrage nach oben zu beugen, und nach unten, wenn sie nicht benötigt werden.
Wenn ein Container abstürzt, kann er zudem schnell neu gestartet werden, damit er zur Aufgabe zurückkehren kann. Diese Art der Verwaltung wird als Container-Orchestrierung bezeichnet. Software wie Docker Swarm kann diese Art der Orchestrierung steuern und die Aufgaben auf den Container-Cluster verteilen.
Da mehrere Container das gleiche Betriebssystem verwenden, besteht die Gefahr, dass die Containertechnologie weniger sicher ist als eine virtuelle Maschine. Dies liegt daran, dass im Host-Kernel ein Sicherheitsfehler auftritt, der mehrere Container beeinträchtigt. Es wurden Anstrengungen unternommen, um Container sicherer zu machen. Ein Ansatz beinhaltet, dass Docker eine Signaturinfrastruktur benötigt, um das Starten nicht autorisierter Container zu verhindern. Es gibt auch Containersicherheitssoftware wie Twistlock, die das Verhalten eines Containers erfasst und dann einen Container herunterfährt, der außerhalb des erwarteten Profils liegt.
- Wir besprechen hier auch Hybrid Cloud