Containerisierung ist eine Art der Virtualisierung, bei der alle Komponenten einer Anwendung in einem einzigen Container-Image gebündelt werden und in einem isolierten Benutzerbereich auf demselben gemeinsamen Betriebssystem ausgeführt werden können.
Container sind leicht, tragbar und eignen sich hervorragend für die Automatisierung. Infolgedessen ist die Containerisierung zu einem Eckpfeiler der Entwicklungspipelines und der Anwendungsinfrastruktur für eine Vielzahl von Anwendungsfällen geworden. Wenn Sie wissen, was Containerisierung ist und wie Sie sie sicher implementieren, kann dies Ihrem Unternehmen dabei helfen, seine Technologie-Stacks zu modernisieren und zu skalieren.
Bei der Containerisierung werden alle erforderlichen Teile einer bestimmten Anwendung in einer einzigen Einheit virtualisiert.
Unter der Haube bedeutet das, dass Container alle Binärdateien, Bibliotheken und Konfigurationen enthalten, die eine App benötigt. Container enthalten jedoch KEINE virtualisierten Hardware- oder Kernel-Ressourcen.
Stattdessen laufen Container „auf“ einer Container-Laufzeitplattform, die die Ressourcen abstrahiert. Da Container nur die Grundkomponenten und Abhängigkeiten einer App ohne zusätzlichen Aufwand enthalten, sind sie schneller und leichter als Alternativen wie Virtuelle Maschine oder Bare-Metal-Server. Sie ermöglichen es auch, die Probleme zu abstrahieren, die mit der Ausführung derselben App in verschiedenen Umgebungen verbunden sind. Wenn Sie die zugrunde liegende Container-Engine bereitstellen können, können Sie die containerisierte Anwendung ausführen.
Der Unterschied zwischen Containerisierung (was Containerisierungssoftware wie Docker ermöglicht) und herkömmlicher Servervirtualisierung (was Hypervisoren wie HyperV und VMware ESXi ermöglichen) kann für Uneingeweihte leicht verwirrend sein. Vereinfacht ausgedrückt läuft der Unterschied auf Folgendes hinaus:
Bei der Servervirtualisierung geht es darum, Hardware zu abstrahieren und ein Betriebssystem auszuführen. Bei der Containerisierung geht es darum, ein Betriebssystem zu abstrahieren und eine App auszuführen.
Beide abstrahieren Ressourcen, die Containerisierung ist nur eine weitere Ebene „über“ der Servervirtualisierung. Tatsächlich schließen sich Containerisierung und Servervirtualisierung nicht gegenseitig aus. Sie können containerisierte Apps auf einer Container-Engine ausführen, die in einer virtuellen Maschine bereitgestellt wird.
Um eine bessere Vorstellung davon zu bekommen, wie die Containerisierung genau funktioniert, werfen wir einen genaueren Blick darauf, wie alle Teile – von der Hardware bis zur containerisierten Anwendung – zusammenpassen.
Anhand unseres Wissens können wir erkennen, dass die Containerisierung nur das bündelt, was eine App benötigt, in einer einzigen Einheit und es ermöglicht, dass die Apps überall dort ausgeführt werden, wo die Container-Engine vorhanden ist. Vor diesem Hintergrund werden die Vorteile der Containerisierung deutlich, darunter:
Es ist wichtig, die Vorteile der Containerisierung zu kennen, aber das Verständnis realer Anwendungsfälle ermöglicht es Ihnen, das Wissen in die Praxis umzusetzen. Hier sind einige Beispiele für beliebte Anwendungsfälle der Containerisierung:
Kubernetes, auch bekannt als K8s, ist ein beliebtes Tool zur Skalierung und Verwaltung der Containerbereitstellung. Containerisierungssoftware wie Docker oder LXC fehlt die Funktionalität, um die Bereitstellung größerer Container zu orchestrieren, und K8s füllt diese Lücke. Es gibt zwar auch andere Container-Orchestrierungstools (wie Apache Mesos und Docker Swarm), aber K8s ist bei weitem das beliebteste.
Natürlich sind „Management“ und „Orchestrierung“ vage Begriffe. Was genau kann Kubernetes also? Lass uns einen Blick darauf werfen:
Sie denken vielleicht, dass Container „sicher“ sind, weil sie isoliert sind. Leider ist es nicht so einfach. Obwohl Container im Userspace voneinander isoliert sind, stellen Fehlkonfigurationen, Schwachstellen und böswillige Akteure Bedrohungen dar. Einfach ausgedrückt: Die Sicherung Ihrer Container ist ein Muss.
Es gibt viele spezifische Überlegungen zur Containersicherheit , die Sie bei der Containerisierung von Anwendungen berücksichtigen müssen. Beispielsweise sind die kontinuierliche Überwachung der Container-Register auf neue Schwachstellen und die Nutzung der Container- Firewall wichtige Aspekte einer umfassenden Container-Sicherheit. Darüber hinaus ist die Sicherung des Host-Betriebssystems, auf dem Ihre Container-Engine läuft, ein Muss.
Natürlich bedeutet die Sicherung einer containerisierten Anwendung, dass Sie auch die Anwendungssicherheit (appsec) ernst nehmen müssen. Das bedeutet, dass Sie Ihre Umgebung ganzheitlich betrachten, Sicherheitsprofile erstellen, Bedrohungen identifizieren und gegebenenfalls Tools wie Interactive Anwendung Security Testing (IAST)-Lösungen und Web Anwendung Firewall (WAFs) nutzen.
Check Point-Produkte wie CloudGuard wurden speziell für DevOps-Pipelines und Containersicherheit entwickelt. Als Branchenführer im Bereich Containerisierungssicherheit wissen wir, worauf es ankommt, um die Containersicherheit richtig zu gestalten. Um tief in die Welt der Containerisierungssicherheit einzutauchen, laden Sie noch heute unseren kostenlosen Leitfaden zur Container- und Kubernetes-Sicherheit herunter. In diesem kostenlosen Leitfaden erfahren Sie Folgendes:
Wenn Sie außerdem für die Sicherung von Multi-Cloud-Umgebungen verantwortlich sind, können Sie gerne unser kostenloses Whitepaper „Achieving Cloud With Confidence in the Age of Advanced Threats“ lesen. In diesem Dokument erhalten Sie fundierte Einblicke in die Bedrohungsprävention und Infrastrukturtransparenz in Multi-Cloud-Umgebungen.