Was sind Container & was bedeutet Containerisierung in der IT?

Anwendungen werden immer komplexer und die Nachfrage nach einer schnelleren Entwicklung nimmt stetig zu. Von der Entwicklungs- bis zur Produktionsphase können Container in der IT in verschiedenen Umgebungen eingesetzt werden und so Probleme reduzieren und Prozesse beschleunigen.

Was sind Container?

Definieren lässt sich ein Container als ein auf einer Computer-Infrastruktur ausführbares Paket, die einer kompletten Anwendung inklusive ihrer Konfiguration und Abhängigkeiten entspricht. Verpackt ist diese Anwendung in einem genau definierten und wiederverwendbaren Format. Man spricht in diesem Zusammenhang auch von der Virtualisierung von Anwendungen.

Im Gegensatz zu einer "echten" virtuellen Maschine enthält ein Container allerdings kein eigenes Betriebssystem oder eigenen Kernel. Es handelt sich somit nicht um eine Betriebssystemvirtualisierung. Aus diesem Grund fallen Container deutlich schlanker aus als herkömmliche virtuelle Maschinen. Eben weil es sich um keine echten virtuellen Maschinen handelt, spricht man in diesem Zusammenhang auch von der Virtualisierung von Anwendungen.

Warum werden Container in der IT verwendet?

Bei der Entwicklung einer Anwendung werden innerhalb eines Unternehmens meist mehrere Computer mit leicht variierenden Konfigurationen verwendet. Die entwickelte Anwendung stützt sich auf die spezifischen Konfigurationen eines bestimmten PCs und ist auf dessen Bibliotheken, Abhängigkeiten und Dateien angewiesen. Während der verschiedenen Phasen von der Entwicklung bis zur Produktion kommt die Anwendung mit Umgebungen mit jeweils unterschiedlichen Konfigurationen in Berührung, was zu Kompatibilitätsproblemen führen kann.

Wird die Anwendung innerhalb eines Containers entwickelt, so verfügt dieser über die notwendigen Bibliotheken, Abhängigkeiten und Dateien, um die Anwendung in allen unterschiedlichen Umgebungen zum Laufen zu bringen. So müssen keine neuen Serverumgebungen erstellt werden und der Container kann ohne Probleme von der Entwicklung über die Test- in die Produktionsphase verschoben werden.

Man kann sich den Inhalt eines Container-Image als Installation einer -Distribution vorstellen, weil er alle RPM-Pakete, Konfigurationsdateien usw. enthält. Die Distribution eines Container-Image ist allerdings viel einfacher durchzuführen als die Installation neuer Kopien von Betriebssystemen.

In manchen Fällen, wie dem Daten-Streaming in Echtzeit mit Apache Kafka, sind Container unerlässlich, da nur mit ihnen die notwendige Skalierbarkeit für Anwendungen bereitgestellt werden kann. Unabhängig von der Infrastruktur – On-Premise, in der Cloud oder in einer Hybrid-Umgebung – Container können die Anforderungen erfüllen.

Ist Containerisierung nicht einfach nur Virtualisierung?

Ja und nein. Man muss beide als Teile eines Ganzen sehen. Hier ist eine einfache Methode, sich dies vorzustellen:

  • Die Virtualisierung ermöglicht die gleichzeitige Ausführung mehrerer Betriebssysteme (Windows oder Linux) auf einem einzigen Hardware-System.
  • Container teilen sich den gleichen Betriebssystem-Kernel und isolieren die Anwendungsprozesse vom Rest des Systems. Beispiel: ARM Linux-Systeme führen ARM Linux-Container aus, x86 Linux-Systeme führen x86 Linux-Container aus, und x86 Windows-Systeme führen x86 Windows-Container aus. Linux-Container können sehr gut portiert werden, müssen aber mit dem zugrunde liegenden System kompatibel sein.

Was bedeutet das? Zunächst einmal wird bei der Virtualisierung ein Hypervisor zur Emulation der Hardware eingesetzt, was die gleichzeitige Ausführung mehrerer Betriebssysteme ermöglicht. Diese Variante ist jedoch viel aufwändiger als ein Container. Wenn Sie nur über endliche Ressourcen mit endlichen Fähigkeiten verfügen, benötigen Sie kompakte Apps, die in großer Dichte eingesetzt werden können. Container werden nativ auf dem Betriebssystem ausgeführt, das von allen Containern gemeinsam genutzt wird. So bleiben Apps und Services kompakt und können zügig parallel ausgeführt werden.

Container sind ein weiterer Evolutionsschritt bei der Entwicklung, Bereitstellung und Verwaltung von Anwendungen. Container-Images bieten Portabilität und Versionskontrolle und sorgen mit dafür, dass Anwendungen, die auf dem Laptop eines Entwicklers korrekt laufen, auch in der Produktion funktionieren.Red Hat bietet mit OpenShift eine unternehmensfähige Kubernetes-Container-Plattform. Im Vergleich zu virtuellen Rechnern (Virtual Machines, VMs) benötigt ein Container weniger Ressourcen, besitzt eine Standardoberfläche (Start, Stopp, Umgebungsvariablen usw.), gewährleistet die Anwendungsisolierung und lässt sich als Bestandteil einer großen Anwendung (mehrere Container) viel einfacher verwalten. Dazu können Sie diese Multi-Container-Anwendungen über mehrere Clouds hinweg orchestrieren.

Welche Vorteile haben Unternehmen?

Time to market

Icon Clock

Unterschiedliche Produktionsumgebungen sind kein Problem mehr und die Anwendungen können überall zum Laufen gebracht werden. Die Portierbarkeit, Konfigurierbarkeit und Isolation verkürzen die Entwicklungsphase erheblich und aus einer Idee wird viel schneller ein Produkt.

Business Driver

Icon board

Der Container stellt all die notwendigen Bibliotheken, Abhängigkeiten und Dateien zur Verfügung, um ihn problemlos von der Entwicklung über die Test- bis in die Produktionsphase verschieben zu können. Die einfache Handhabung macht die Entwicklung von Anwendungen unkomplizierter, Container können so ein wichtiger Triebfaktor für die Weiterentwicklung von Unternehmen sein.

Flexibilität

Icon Arrows

Container bieten Portabilität und Versionskontrolle, so funktionieren Anwendungen sowohl in der Entwicklungs-, als auch in der Produktionsphase. Sie sind komplett unabhängig von der Infrastruktur. Als Bestandteil einer großen Anwendung lassen sich Container viel einfacher verwalten, diese Multi-Container-Anwendungen lassen sich über mehrere Clouds hinweg orchestrieren.

Schnelligkeit

Icon Moving Clock

Ein funktionierendes Unternehmen befindet sich in stetigem Wandel. Durch die Open Source Container-Technologie können Unternehmen sofort bei Verfügbarkeit auf die neuesten Weiterentwicklungen zugreifen. Das ermöglicht eine kurze Reaktionszeit auf Markt- und Umwelteinflüsse und lässt unternehmerische Erfordernisse stets zeitnah umsetzen.

Was ist Quellcode?

Quellcode bietet einen Satz mit Anweisungen, die elektronischen Geräten erklären, wie Anwendungen der digitalen Welt auszuführen sind, darunter Betriebssysteme, Textverarbeitungsprogramme, Browser, Videospiele, Smartphones und Websites. Millionen von Computern führen den gleichen Code aus, der aus diesem Grund extrem stabil sein und einheitliche Ergebnisse liefern muss.

Was ist Closed Source-Software?

Guter Code bzw. gute Anwendungen haben einen enormen Wert. Viele Unternehmen halten ihren Code deshalb geheim, um den Produktvertrieb gewinnträchtig kontrollieren zu können. Der verwendete proprietäre Code führt zur Entwicklung von Closed Source-Software, die gegen den Zugriff von außen geschützt ist und nicht entschlüsselt werden kann.

Was ist Open Source?

Dagegen ist Open Source Code öffentlich und kann von jedermann angezeigt, studiert, verwendet, modifiziert und verteilt werden. Die Open Source Initiative hat eine präzise Definition für Open Source-Software entwickelt. Eine Open Source-Lizenz schützt vor Einschränkungen der Softwarenutzung, und zwar von der Vermarktung über die Personen, die die Software nutzen können, bis hin zum jeweiligen Zweck. Sie fördert so Neutralität, Zugänglichkeit und Freiheit.

Open Source Communities

Open Source Communities setzen sich aus Hobby-Entwicklern, Profis von großen wie kleinen Technologieunternehmen sowie Mitgliedern des breiteren Geschäftsuniversums zusammen, die sich zwecks Lösung interessanter, komplexer Probleme beteiligen. Diese integrativen Communities geben ihren Mitgliedern die Möglichkeit, sich einzubringen und die Entwicklung der von ihnen genutzten Software mitzubestimmen. Und aus dieser Zusammenarbeit entsteht dann die bestmögliche Software.

Nicht selten sind miteinander konkurrierende Firmen Nutzer und Beitragende der gleichen Projekte. Auf diese Weise entsteht ein Klima des kooperativen Wettbewerbs. Sie arbeiten gemeinsam an der Entwicklung und werben dann getrennt um die gleichen Kunden. So helfen Unternehmen ihrer Konkurrenz aktiv bei der Verbesserung des grundlegenden Quellcodes. Die Kehrseite der Medaille aber ist, dass sie gleichzeitig von den Beiträgen ihrer Wettbewerber profitieren.

Was sind die Vorteile von Open Source?

Icon Lock

Sicherheit

Der freie Zugang zum Code sorgt für eine größere Anzahl an Entwicklern. Dadurch können Schwachstellen leichter entdeckt und schneller beseitigt werden. Warum? Im Fall eines auftretenden Problems kann gemeinsam an einer Lösung gearbeitet werden. Im Gegensatz zu Closed Source wo die interne Unternehmens-IT auf sich allein gestellt ist.
Icon Badge

Qualität

Die Mehrheit aller technologischen Innovationen haben heute ihren Ursprung in der Open Source Community. Es wird ein offenes Forum geschaffen, wo durch die kollektive Innovationskompetenz der Community viele neue Ideen entstehen. Der Input technischer Talente von überall auf der Welt ermöglicht die besten Lösungen für Technologien und Anwendungen.
Icon Scale

Stabilität

Individuen, Kunden und Firmen bestimmen gemeinsam die Entwicklung der von ihnen genutzten Software mit – zum Wohle aller. Selbst konkurrierende Firmen arbeiten oft gemeinsam an der bestmöglichen Lösung. Laufend wird erweitert, optimiert und werden Fehler behoben, Verbesserungen stehen dabei immer der ganzen Community zur Verfügung.

Top Referenzen

BMW

Key-Note auf dem Red Hat Forum Darmstadt 2020: BMW Group cloud-native Application Plattform

Dr. Roland Bader BMW Group

Deutsche Bank optimiert Entwicklungsplattform, demokratisiert IT mit Hilfe von Red Hat

Als Marktführer der Bankenbranche mit Privat-, Firmen- und Treuhandkunden hat sich die Deutsche Bank die digitale Transformation auf die Fahne geschrieben. So wollte das Unternehmen die Erfahrungen der Bankkunden und der Nutzer seiner Backend-Technologie verbessern, darunter Mitarbeiter, externe Anbieter und Entwickler, die mit der Plattform Anwendungen entwickeln und ausführen. So hat die Deutsche Bank mithilfe von Red Hat® Lösungen eine Open Source Platform-as-a-Service (PaaS) entwickelt, um die DevOps- Kollaboration zu vereinfachen, Kapazitäten zu optimieren und die Effizienz zu steigern, und zwar durch eine Verkürzung der End-to-End-Anwendungsentwicklung von sechs bis neun Monaten auf gerade einmal zwei bis drei Wochen.

Software und Services

  • Red Hat OpenShift® Container Platform
  • Red Hat Enterprise Linux®
  • Red Hat Ansible® Tower
  • Red Hat Consulting

"Unsere Durchführung mit Fabric und Red Hat OpenShift Container Platform ist nichts anderes als die Demokratisierung der IT. Denn damit geben wir jedem Entwickler in unserem Unternehmen leistungsstarke Technologien an die Hand."

Tom Gilbert Managing Director, Global Head of Cloud, Application and Integration Platforms
Deutsche Bank
Plattformoptimierung für eine effiziente Entwicklung

Die Deutsche Bank wollte ihre Entwicklungszyklen verkürzen und so schnellere Markteinführungszeiten für ihre Produkte gewährleisten. Allerdings bremste ihre restriktive Infrastruktur Integration und Anwendungsentwicklung aus. Die Verwaltung Tausender Server und Datenbanken behinderte das Wachstum und die Einführung neuer Technologien. Zwecks Erfüllung dieser Anforderungen entschied sich das Unternehmen für PaaS, womit sich Entwicklung und Management optimieren, Risiken reduzieren und eine einfache Skalierung realisieren lassen und agilere Workloads im gesamten Geschäft unterstützt werden.

Entwicklung einer neuen Plattform mit Open Source-Technologie

So entschied sich die Deutsche Bank, mit der Hilfe von Red Hat eine containerisierte, auf Microservices basierende Plattform zur Anwendungsentwicklung namens Fabric zu bauen. Die Lösung dient als Host für Systeme und Tools und bietet On-Demand-Computing für alle Anwendungsentwicklungs-Teams des Unternehmens.

Mehr Effizienz sowie Zeit- und Kosteneinsparungen

Fabric bietet einen schnelleren Zugriff auf Ressourcen, sorgt für mehr Produktivität bei den Entwicklern sowie eine beschleunigte Markteinführung. So dauert es nicht wie vorher sechs bis neun Monate, sondern nur noch zwei bis drei Wochen, um Anwendungen vom Machbarkeitsnachweis bis zur Produktion zu bringen. Dazu konnte die Deutsche Bank die DevOps-Kollaboration mit einer flexiblen Integration sowie einem agilen Ansatz vereinfachen. Ebenfalls gelungen sind die Optimierung des Ressourcenzugriffs, der Nutzung von Rechenzentren und Cloud-Kapazität sowie die Einsparung von Zeit, Geld und Ressourcen.


Lufthansa Technik baut digitale Zukunft mit Red Hat

Zusammen mit Lufthansa Technik – ein führender Anbieter von Wartungs-, Reparatur- und Instandsetzungsdienstleistungen für Flugzeuge – entwickelte Red Hat AVIATAR: Die offene Plattform ermöglicht es Unternehmen der Luftfahrtindustrie, besser zusammenzuarbeiten und digitale Angebote bereitzustellen, die die Customer Experience verbessern. Mit unseren Container- und Automatisierungstechnologien – kombiniert mit agilen DevOps- Prozessen – kann Lufthansa Technik neue Applikationen schneller entwickeln und implementieren; gleichzeitig fördert dies die Integration zwischen interner Infrastruktur und Lösungen von Drittanbietern.

Lufthansa Technik baute eine Hybrid-Cloud-Umgebung auf, in der die AVIATAR Application Services sowohl unter Azure als auch in einer On-Premise-Infrastruktur laufen können. Dadurch kann das Unternehmen neue Komponenten schneller implementieren und AVIATAR-Anwendern eine Public-Cloud-Option anbieten. Zusammen mit unserem Software- Stack setzt Lufthansa Technik auf eine offene und herstellerunabhängige Architektur mit einer Vision für ein Multi-Cloud-Szenario.

Die AVIATAR-Plattform von Lufthansa Technik umfasst folgende Bausteine:
  • Das flexible Betriebssystem Red Hat Enterprise Linux stellt eine zuverlässige Enterprise- Linux-Plattform für Unternehmen bereit.
  • Red Hat OpenShift Container Platform läuft unter Azure und wurde entwickelt, um den agilen DevOps-Ansatz einer kontinuierlichen Verbesserung von AVIATAR zu fördern. Darüber hinaus unterstützt Red Hat OpenShift Container Platform Lufthansa Technik auch beim Aufbau, der Bereitstellung, dem Betrieb und der Integration von Komponenten der neuen Infrastruktur, einschließlich Cloud-nativer Anwendungen und Microservices.
  • Container Native Storage von Red Hat basiert auf Red Hat Gluster Storage und bietet flexiblen, skalierbaren, Cluster-basierten und für Red Hat OpenShift Container Platform optimierten Software-Defined Storage, der mit minimalem manuellem Aufwand die Datenanforderungen effizienter erfüllt.
  • Red Hat JBoss Enterprise Application Platform bildet die zentrale Backend-Basis für Applikationen, die Anwendern über die AVIATAR-Plattform zur Verfügung stehen, und unterstützt durch Standardisierung und benutzerfreundliche Funktionen die Entwicklung von Enterprise-Java-Anwendungen.
  • Red Hat Data Grid ersetzt herkömmliche relationale Datenbanken, um Informationen schneller In-Memory zu speichern und abzurufen sowie gleichzeitig die Berechnung und Abfrage der Daten zu ermöglichen.
  • Red Hat JBoss Fuse ermöglicht die Integration interner und externer Datenquellen.
  • Red Hat 3scale API Management gibt Entwicklern die Möglichkeit, ihre Application Programming Interfaces (APIs) selbst zu verwalten.
  • Red Hat Ansible Tower hilft bei der Erstellung und Ausführung von wiederverwendbarem Infrastrukturcode und der Automatisierung von Provisionierungsaufgaben für Azure, Red Hat Gluster Storage und anderen Infrastrukturkomponenten.

„Unser Red Hat Stack hat uns geholfen, schneller und Cloud-unabhängig zu werden. Mit Red Hat OpenShift Container Platform beispielsweise können wir sofort mit der Implementierung einer neuen Anwendung beginnen, ohne auf die Bereitstellung der benötigten Infrastruktur warten zu müssen. Damit erzielen wir innerhalb weniger Tage erste Ergebnisse und verfügen nach wenigen Wochen über ein Minimum Viable Product."

Thorsten Pohl Project Manager
Information Systems, Lufthansa Technik AG