Was ist Containertechnologie? | Der Vergleich

Was ist Containertechnologie? | Der Vergleich

Container-Technologie, auch einfach Wrapper-Technologie genannt, ist eine Methode zum Packen einer Anwendung, sodass sie mit ihren Abhängigkeiten isoliert von anderen Prozessen ausgeführt werden kann. Große öffentliche Cloud-Computing-Anbieter, darunter Amazon Web Services, Microsoft Azure und Google Cloud Platform, haben sich die Container-Technologie zu eigen gemacht, zu den Namen der Container-Software gehören beliebte Docker-Optionen, Apache Mesos, rkt (ausgesprochen „Rocket“) und Kubernetes. Die Containertechnik hat ihren Namen von der Schifffahrtsindustrie. Anstatt für jedes Produkt eine einzigartige Versandart anzubieten, werden die Produkte in Stahlcontainer gelegt, die bereits für die Aufnahme durch den Kran am Dock konzipiert sind, und in den Container eingesetzt, der auf die Standardgröße des Schiffes abgestimmt ist. Container . Kurz gesagt: Durch die Standardisierung des Prozesses und die Zusammenhaltung der Artikel kann der Container als Einheit bewegt werden, und das zu geringeren Kosten. Bei der Computer-Container-Technologie ist die Situation ähnlich. Hatten Sie schon einmal die Situation, dass ein Programm auf einem Computer einwandfrei funktionierte, sich dann aber in ein unangenehmes Durcheinander verwandelte, wenn Sie auf den nächsten umsteigen? Dies kann passieren, wenn Software vom PC eines Entwicklers auf einen Testserver oder von einem physischen Server in einem Unternehmensrechenzentrum auf einen Server in der Cloud migriert wird. Beim Verschieben von Software entstehen Probleme aufgrund von Unterschieden zwischen Maschinenumgebungen, wie z. B. installiertem Betriebssystem, SSL-Bibliotheken, Speicher, Sicherheit und Netzwerktopologie. So wie der Kran den gesamten Container als Einheit aufnimmt, um ihn zum Transport auf das Schiff oder den LKW zu stellen und so den Transport zu erleichtern, leistet die Computer-Containertechnologie dasselbe. Die Containertechnologie enthält nicht nur Software, sondern auch Abhängigkeiten, einschließlich Bibliotheken, Binärdateien und Konfigurationsdateien, und wird als Einheit migriert. Dadurch werden Unterschiede zwischen Maschinen, einschließlich Unterschiede im Betriebssystem und der zugrunde liegenden Hardware, vermieden, die zu Inkompatibilitäten und Abstürzen führen. Container erleichtern außerdem die Bereitstellung von Software auf einem Server.

Virtuelle Maschinen

Bevor Container populär wurden, waren virtuelle Maschinen ein früherer Ansatz. Hier könnte ein physischer Server durch Virtualisierungstechnologie, auch bekannt als virtuelle Maschine, für mehrere Anwendungen verwendet werden, wobei jede virtuelle Maschine das gesamte Betriebssystem sowie die gesamte Software enthält. Anwendung zum Ausführen. Auf dem physischen Server laufen dann mehrere virtuelle Maschinen, auf denen jeweils ein eigenes Betriebssystem läuft, mit einer einzigen Hypervisor-Emulationsschicht darüber. Durch die gleichzeitige Ausführung mehrerer Betriebssysteme entsteht ein hoher Overhead auf dem Server, da Ressourcen verbraucht werden und die Anzahl der virtuellen Maschinen auf wenige beschränkt ist. Im Gegensatz dazu läuft bei der Container-Technologie auf dem Server ein einzelnes Betriebssystem, da jeder Container dieses einzelne Betriebssystem mit den anderen Containern auf dem Server teilen kann. Gemeinsam genutzte Betriebssystemteile sind schreibgeschützt, um andere Container nicht zu beeinträchtigen. Dies bedeutet, dass Container im Vergleich zu virtuellen Maschinen weniger Serverressourcen bei geringerem Overhead benötigen und deutlich effizienter sind, sodass viel mehr Container auf einem einzigen Server geclustert werden können. Während beispielsweise jede virtuelle Maschine möglicherweise Gigabyte an Speicher benötigt, benötigt jeder Container, der ein ähnliches Programm ausführt, möglicherweise nur Megabyte.

Wie funktionieren die Container?

Container werden so konfiguriert, dass sie die Arbeit in einer Multi-Container-Architektur erledigen, die als Container-Cluster bezeichnet wird. In einer Kubernetes-Containergruppe gibt es einen einzelnen Cluster-Master, während die anderen zugehörigen Container als Knoten bezeichnet werden, bei denen es sich um mehrere Arbeitsmaschinen handelt. Die Rolle des Cluster-Masters besteht darin, die Arbeitslasten für die Knoten zu planen, aber auch deren Lebenszyklus und Aktualisierungen zu verwalten. Container-Technologie ist kein neues Phänomen und seit langem ein wesentliches Merkmal von Linux. Die in den letzten Jahren erzielten Fortschritte in der Containertechnologie sind einfacher zu verwenden und werden von Softwareentwicklern aufgrund ihrer Einfachheit und der Vermeidung von Kompatibilitätsproblemen begrüßt. Sie ermöglichen es Ihnen auch, ein Programm in kleine Teile, sogenannte Microservices, zu unterteilen. Der Vorteil, das Programm als Komponenten-Microservices zu haben, besteht darin, dass verschiedene Teams separat an jedem der Container arbeiten können, solange die Interaktionen zwischen den verschiedenen Containern aufrechterhalten werden, was eine schnellere Softwareentwicklung ermöglicht. Schließlich ermöglicht die Containertechnologie eine vollständige granulare Kontrolle von Containern. Während Container alle Arten von Software ausführen können, lassen sich ältere Programme, die für die Ausführung in einer virtuellen Maschine konzipiert sind, nicht gut auf die Containertechnologie migrieren. Diese alte Software, die in einer virtuellen Maschine läuft, kann auf einer Cloud-Plattform wie Microsoft Azure installiert werden, sodass es unwahrscheinlich ist, dass Container in absehbarer Zukunft virtuelle Maschinen vollständig ersetzen werden.

Wie verwalten Unternehmen Container?

Da so viele Programme als Container ausgeführt werden, ist die Containerverwaltung zu einer Notwendigkeit geworden, und es ist schwer vorstellbar, dass es unmöglich ist, diese Aufgabe manuell zu erledigen. Es ist spezielle Container-Management-Software erforderlich, und eine beliebte Open-Source-Lösung ist Kubernetes, das über mehrere Distributionen verfügt, darunter Red Hat OpenShift. Container-Management-Software erleichtert die Bereitstellung von Containern und funktioniert gut mit den schnellen Bereitstellungsstrategien der DevOps-Philosophie. Ein weiteres großartiges Merkmal der Containertechnologie ist ihre Flexibilität. Bei einer virtuellen Maschine dauert der Start mehrere Minuten, genau wie der PC auf Ihrem Desktop zu Beginn des Tages startet. Im Gegensatz dazu kann bei der Container-Technologie ein Container in Sekundenschnelle gestartet werden, da das Betriebssystem bereits auf dem Server läuft. Dadurch können Container je nach Bedarf gestartet und gestoppt werden, sie können sich in Zeiten hoher Nachfrage bewegen und wenn sie nicht benötigt werden, können sie sich bewegen. Und wenn ein Container abstürzt, kann er schnell neu gestartet werden, sodass Sie wieder an die Arbeit gehen können. Diese Art der Verwaltung wird Container-Orchestrierung genannt, und Software wie Docker Swarm kann diese Art der Orchestrierung bewältigen und Aufgaben auf Gruppen von Containern verteilen. Da mehrere Container dasselbe Betriebssystem verwenden, bestehen Bedenken, dass die Containertechnologie weniger sicher ist als eine virtuelle Maschine. Dies liegt daran, dass eine Sicherheitslücke im Host-Kernel mehrere Container betrifft. Es wurden Anstrengungen unternommen, um Container sicherer zu machen. Ein Ansatz besteht darin, dass Docker eine Signaturinfrastruktur benötigt, um den unbefugten Start von Containern zu verhindern. Es gibt auch Container-Sicherheitssoftware wie Twistlock, die das Verhalten eines Containers beschreibt und dann einen Container stoppt, der nicht Teil des erwarteten Profils ist.