Schluss mit unnötiger Computing Ressourcenverschwendung und monolithischen Applikationen, hin zu mobilem und effizientem Arbeiten mit Hilfe von Containerisierten Applikationen! Der Blogbeitrag zeigt Ihnen, wieso Sie jetzt Ihren Kahn verlassen und auf das Containerschiff aufspringen sollen.
Was sind Container?
Mit Container sind natürlich nicht Grossraumbehälter gemeint, um Sachen zu transportieren oder zu lagern, sondern es ist eine Möglichkeit um Applikationen bereitzustellen. Wie sich dies von normalen Anwendungen unterscheidet, die auf Virtuellen Servern oder auf einem Laptop installiert sind, zeigt ich am Besten diese Grafik:
Links seht Ihr die klassische Virtualisierung von Betriebssystemen, mit einem Hypervisor und darauf weitere Virtuellen Maschinen (Guest OS) mit einer oder mehreren Applikationen installiert. Rechts seht Ihr die Container im Vergleich welche ohne einen Hypervisor und ein Betriebssystem auskommen. Sie verwenden stattdessen die Container Runtime. Somit spart man sich mit containerisierten Applikationen die Gastbetriebssysteme.
Hier ein spannendes Video zur Thematik. Vor allem die Analogie zur Schifffahrt in diesem Video ab Minute 3:39 passt zum Beitrag.
Welche Vorteile bieten Container?
Vorteile aus technischer Sicht
Überall ausführbar
Container können auf den verschiedensten Plattformen ausgeführt werden, da Sie unabhängig vom Host-Betriebssystem sind. Dies reicht vom lokalen Laptop, über die eigene Serverfarm bis zur Public Cloud.
Konsistente Umgebung
Container sind in einem genau definierten Format und ist somit unabhängig davon, wo Sie bereitgestellt werden.
Isolation
Die Virtualisierung von CPU, Arbeitsspeicher, Speicher und Netzwerkressourcen auf Betriebssystemebene ist mit Containern möglich. Die Anwendungen können so logisch von anderen isoliert werden.
Ressourcenverwendung
Da das Gastbetriebssystem wegfällt ist die Ressourcenverwendung von Containern geringer. Container teilen sich das Betriebssystem des Hosts.
Schlanker
Container sind schlanker als herkömmliche Applikationen da Sie eine dienstbasierte Architektur verwenden. Die verschiedenen Komponenten einer Applikation werden voneinander getrennt.
Flexibel
In vielerlei Hinsicht sind Container Flexibel. Da die einzelnen Komponenten einer Anwendung getrennt sind, können diese Unabhängig voneinander weiterentwickelt werden. Flexibel sind Sie auch aufgrund Ihrer Unabhängigkeit der zugrundeliegenden Hardware oder Plattform.
Wie erleichtern uns Container die Arbeit?
Wo liegen denn genau die Vorteile der Container für uns Menschen? Was haben wir davon in der täglichen Arbeit und allgemein im Leben?
Vorteile aus Sicht der Endanwender*innen
- Keine Unterbrüche mehr des Workflows durch Wartungsfenster.
- Applikationen werden mobiler und agiler.
- Keine Komplizierten Installationen. Geringer Speicherverbrauch.
- Schneller
Vorteile aus Sicht der IT Administratoren*innen und Entwickler*innen
- Es kann schneller auf Änderungen reagiert werden.
- Kürzere Entwicklungszyklen.
- Keine Störung der Endanwender*innen.
- Unabhängiger von der gewählten Plattform. Läuft überall.
- Multi Cloud wird möglich. Unterstützt dabei einen Lock-in zu verhindern.
- Skalierbarkeit.
- Konsistente Umgebung.
Vorteile aus Sicht der Geschäftsleitung
- Kosteneinsparung da geringerer Ressourcenverbrauch.
- Hilft auf dem Markt agiler zu sein.
- Unterstützt dabei einen Lock-in zu verhindern.
Was gibt es für Container Runtimes?
- Docker
- rkt
- Podman
- Red Hat Openshift
- Pivotal
Quelle: https://de.wikipedia.org/wiki/Containervirtualisierung
Unternehmen die bereits Container einsetzten
Viele Unternehmen setzten bereits auf Container. Darunter sind folgende Unternehmen:
- New York Times
- Airbnb
- Swisscom
- PayPal
- Ebay
- Spotify
Quellen:
https://jaxenter.com/big-companies-using-kubernetes-159007.html
https://www.quora.com/Which-companies-use-Docker
Weiterführende Links zum Thema
https://de.wikipedia.org/wiki/Containervirtualisierung