LFCA lernen die grundlegenden Konzepte der Verwendung von Containern - Teil 22

LFCA lernen die grundlegenden Konzepte der Verwendung von Containern - Teil 22

Im Laufe der Zeit, als die Nachfrage nach schnellem Test und die Bereitstellung von Anwendungen in Verbindung mit schnelleren Geschäftszyklen zunahm, waren Organisationen gezwungen, innovativ zu sein, um mit dem schnelllebigen Geschäftsumfeld Schritt zu halten.

Das Streben, Anwendungen zu modernisieren und neue zu erstellen, um agile Workflows zu erstellen, führte zum Konzept der Verwendung von Containern. Die Containerisierungstechnologie ist fast so alt wie die Virtualisierung. Behälter zündeten jedoch nicht viel Aufregung, bis Docker explodierte 2013 in die Szene und reservierte ein rasendes Interesse unter Entwicklern und anderen IT -Profis.

Derzeit alle riesigen Technologien wie z Google, Amazonas, Microsoft, Und roter Hut Einige zu erwähnen, sind auf den Zug gesprungen.

Warum Container?

Eine der Herausforderungen, mit der Entwickler konfrontiert waren, ist der Unterschied in den Rechenumgebungen in jeder Phase der Softwareentwicklung. Es treten Probleme auf, wenn sich die Softwareumgebung von einer Stufe zur nächsten unterscheidet.

Beispielsweise kann eine Anwendung mit dem Ausführen nahtlos in einer Testumgebung ausgeführt werden Python 3.6. Die Anwendung verhält sich jedoch seltsam, gibt einige Fehler oder Abstürze insgesamt zurück, wenn sie auf eine Produktionsumgebung portiert werden Python 3.9.

Container kamen zur Szene, um diese Herausforderung anzugehen und sicherzustellen, dass Anwendungen zuverlässig ausgeführt werden, wenn sie in jeder Phase der Softwareentwicklung von einer Computerumgebung in die nächste verschoben werden - vom PC der Entwickler bis zur Produktionsumgebung. Und es ist nicht nur die Softwareumgebung, die solche Inkonsistenzen bewirken kann, sondern auch die Unterschiede in der Netzwerk -Topologie- und Sicherheitsrichtlinien.

Was sind Container?

A Container ist eine isolierte Softwareinheit, die alle Binärcode, Bibliotheken, ausführbaren Abhängigkeiten und Konfigurationsdateien in ein einzelnes Paket packt, so dass die Anwendung reibungslos ausgeführt wird, wenn sie von einer Computerumgebung zu einem anderen portiert werden. Es wird nicht mit einem Betriebssystembild geliefert, das es leicht und leicht tragbar macht.

Ein Containerbild ist ein eigenständiges, leichtes und ausführbares Paket, das alles bündelt, was für die Ausführung der Anwendung erforderlich ist. Zur Laufzeit verwandelt sich ein Containerbild in einen Container. Im Fall von Docker, Zum Beispiel wird ein Docker -Bild zu einem Docker -Container, wenn es ausgeführt wird Docker -Motor. Docker ist eine Laufzeitumgebung, die zum Erstellen von Containeranwendungen verwendet wird.

Container werden vollständig isoliert aus dem zugrunde liegenden Betriebssystem ausgeführt, und Containeranwendungen werden unabhängig von der Computerumgebung oder Infrastruktur immer konsequent ausgeführt. Aus diesem Grund kann ein Entwickler bequem von diesem Laptop eine Anwendung entwickeln und sie leicht auf einem Server bereitstellen.

Die Konsistenz und Zuverlässigkeit von laufenden Containern verleihen den Entwicklern die Sicherheit, dass ihre Bewerbungen wie erwartet läuft, unabhängig davon, wo sie eingesetzt werden.

Wie unterscheiden sich Behälter von virtuellen Maschinen??

Eine gemeinsame Sache, die Container und virtuelle Maschinen teilen, ist, dass sie in einer virtualisierten Umgebung arbeiten. Containerisierung ist in gewissem Sinne eine Form der virtualisierten Technologie. Behälter unterscheiden sich jedoch in mehr als einer Weise von virtuellen Maschinen.

Virtuelle Maschinen

Eine virtuelle Maschine, die auch als virtuelle Instanz bezeichnet wird oder VM Kurz gesagt ist eine Emulation eines physischen Servers oder PCs. Virtualisierung ist eine Technologie, die es ermöglicht, virtuelle Maschinen zu erstellen. Das Konzept der Virtualisierung stammt aus den frühen 1970er Jahren und legte die Grundlage für die erste Generation von Cloud -Technologie.

In der Virtualisierung wird eine Abstraktionsebene über einem backmetalischen Server oder einer Computerhardware erstellt. Dies ermöglicht es, dass die Hardwareressourcen eines einzelnen Servers über mehrere virtuelle Maschinen freigegeben werden.

Die Software, mit der die Abstraktionsschicht erstellt wurde, wird als Hypervisor bezeichnet. Der Hypervisor abstrakt. So sitzt eine virtuelle Maschine über dem Hypervisor, wodurch die Hardware -Ressourcen dank der Abstraktionsschicht verfügbar sind.

Virtuelle Maschinen führen ein komplettes Betriebssystem (Guest OS) aus, das unabhängig vom zugrunde liegenden Betriebssystem (HOST -OS) ist, auf dem der Hypervisor installiert ist. Das Gast -Betriebssystem bietet dann eine Plattform zum Erstellen, Testen und Bereitstellen von Anwendungen neben ihren Bibliotheken und Binärdateien.

[Möglicherweise mögen Sie auch: So installieren Sie KVM auf CentOS/RHEL 8]

Es gibt zwei Arten von Hypervisoren:

Typ 1 Hypervisor (Bare Metall Hypervisor)

Das Hypervisor wird direkt auf einem physischen Server oder der zugrunde liegenden Hardware installiert. Es gibt kein Betriebssystem zwischen dem Hypervisor und der Computerhardware, daher der Tag -Name Rohmetall Hypervisor. Es bietet hervorragende Unterstützung, da die Ressourcen nicht an das Betriebssystem des Hosts weitergegeben werden.

Typ 1 Hypervisor

Aufgrund ihrer Effizienz werden Hypervisoren vom Typ 1 hauptsächlich in Unternehmensumgebungen verwendet. Typ -1 -Hypervisor -Anbieter enthalten VMware ESXI Und Kvm.

Typ 2 Hypervisor:

Dies wird auch als gehosteter Hypervisor angesehen. Es ist oben im Betriebssystem des Hosts installiert und teilt die zugrunde liegenden Hardware -Ressourcen mit dem Host -Betriebssystem auf.

Typ 2 Hypervisor

Typ -2 -Hypervisoren sind ideal für kleine Computerumgebungen und werden hauptsächlich zum Testen von Betriebssystemen und Forschung verwendet. Zu den Hypervisor -Anbietern vom Typ 2 gehören Oracle VirtualBox und VMware Workstation Pro.

Der Nachteil mit virtuellen Maschinen

Virtuelle Maschinen haben in der Regel enorm (können mehrere GBs einnehmen), langsam zu starten und zu stoppen und zu verschlingen viele Systemressourcen, die zu Aufhängen und langsamer Leistung aufgrund begrenzter Ressourcen führen. Daher wird eine virtuelle Maschine als sperrig angesehen und mit hohen Gemeinkosten verbunden.

Behälter

Im Gegensatz zu einer virtuellen Maschine benötigt ein Container keinen Hypervisor. Ein Container befindet. Mehrere Container können auf demselben System ausgeführt werden, wobei jeweils eigene Anwendungen und Prozesse aus dem Rest ausgeführt werden. Zu den beliebten Containerplattformen gehören Docker und Podman.

Behälter

Im Gegensatz zu virtuellen Maschinen werden Container vollständig isoliert vom zugrunde liegenden Betriebssystem ausgeführt. Behälter sind außergewöhnlich leicht - nur ein paar Megabyte - nehmen weniger Platz ein und sind ressourcenfreundlich. Sie sind leicht zu starten und zu stoppen und können mehr Anwendungen als eine virtuelle Maschine behandeln.

Vorteile der Verwendung von Containern

Container bieten eine bequeme Möglichkeit zum Entwerfen, Testen und Bereitstellen von Anwendungen von Ihrem PC auf eine Produktionsumgebung, sei es in der Prämisse oder in der Cloud. Hier sind einige der Vorteile der Verwendung von Containeranwendungen.

1. Größere Modularität

Vor den Behältern hatten wir das altmodische monolithische Modell, bei dem eine ganze Anwendung aus Frontend- und Backend-Komponenten in ein einzelnes Paket gebündelt wird. Container ermöglichen es, eine Anwendung in mehrere einzelne Komponenten aufzuteilen, die miteinander kommunizieren können.

Auf diese Weise können Entwicklungsteams an verschiedenen Teilen einer Anwendung zusammenarbeiten.

Darauf basiert das Konzept der Microservices.

2. Erhöhte Produktivität

Mehr Modularität bedeutet mehr Produktivität, da Entwickler in der Lage sind, an einzelnen Komponenten der Anwendung zu arbeiten und Fehler viel schneller als zuvor zu debuggen.

3. Reduzierte Gemeinkosten

Im Vergleich zu virtuellen Maschinen und anderen herkömmlichen Computerumgebungen verwenden Container weniger Systemressourcen, da sie kein Betriebssystem enthalten. Dies wendet unnötige Ausgaben für die Beschaffung teurer Server zum Erstellen und Testen von Anwendungen ab.

4. Erhöhte Portabilität

Aufgrund ihres geringen Fußabdrucks können Containeranwendungen problemlos in mehreren Computerumgebungen / Betriebssystemen bereitgestellt werden.

5. Größere Effizienz und Flexibilität

Container ermöglichen eine schnelle Bereitstellung und Skalierung von Anwendungen. Sie bieten auch die dringend benötigte Flexibilität, Anwendungen in mehreren Softwareumgebungen bereitzustellen.

Wie kommen Container DevOps -Teams zugute?

Container spielen eine Schlüsselrolle in DevOps und es wäre unmöglich vorstellbar, wie die Situation ohne Containeranwendungen wäre. Was bringen Behälter auf den Tisch??

Erstens untermauert Container die Microservices -Architektur und ermöglicht es, die Bausteine ​​einer gesamten Anwendung zu entwickeln, einzusetzen und unabhängig voneinander zu skalieren. Wie bereits erwähnt, führt dies für eine größere Zusammenarbeit und eine schnelle Bereitstellung von Anwendungen.

Die Containerisierung spielt auch eine wichtige Rolle bei der Erleichterung der CI/CD -Pipelines durch Bereitstellung einer kontrollierten und konsistenten Umgebung für den Bau von Anwendungen. Alle Bibliotheken und Abhängigkeiten werden zusammen mit dem Code in eine einzige Einheit für eine schnellere und einfachere Bereitstellung verpackt. Die getestete Anwendung ist die genaue Software, die in der Produktion bereitgestellt wird.

Darüber hinaus verbessern Container die Einführung von Patches und Updates, wenn eine Anwendung in mehrere Microservices aufgeteilt wird., jeweils in einem separaten Behälter. Einzelne Container können untersucht, gepatcht und neu gestartet werden, ohne den Rest der Anwendung zu unterbrechen.

Abschluss

Jede Organisation, die eine Reife in der Lage ist, in DevOps sollte in Betracht ziehen, die Leistung von Behältern für agile und nahtlose Bereitstellungen zu nutzen. Die Herausforderung besteht darin, zu wissen, wie man sie in mehreren Umgebungen konfigurieren, sichern und nahtlos bereitstellt.

Werden Sie ein Linux Foundation Certified IT Associate (LFCA)