Die Digitalisierung stellt die IT-Abteilung auch im Softwarebereich vor ganz neue Herausforderungen. Je mehr Prozesse im Unternehmen digitalisiert werden (sollen), desto mehr Anwendungen werden benötigt, um diese digitalisierten Prozesse und die damit verbundenen Produkte und Strukturen abzubilden und zu verwalten. Und je mehr Anwendungen benötigt werden, desto schneller müssen diese entwickelt, ausgerollt und überwacht werden. Ziel muss es dabei sein, Tempo und Qualität des Anwendungslebenszyklus aus Entwicklung, Testen, Bereitstellung und Monitoring zu optimieren. Ein Ansatz, der dabei helfen soll, ist die so genannte Containerisierung.
Laut einer Studie im Auftrag der Firma Microsoft aus dem Jahr 2017 erwarten 90 Prozent der Entscheider in Unternehmen, dass Container-Technologien künftig einen Standard bilden. Dabei sind nur knapp die Hälfte der Unternehmen mit Containern vertraut. Es besteht also deutlicher Nachholbedarf zum diesem Thema.

Update vom 02.10.2020
Seit der Veröffentlichung dieses Artikels hat sich die Container-Technologie insbesondere für den Betrieb im Cloud-Umfeld fest etabliert. Neben Docker sind eine Reihe interessanter, alternativer Container Runtimes (CRI) für Kubernetes entstanden auf deren Entwicklung man ebenfalls ein Augenmerk setzen sollte. gVisor und Kata Containers (wahlweise mit Support für Firecracker oder Cloud Hypervisor) bieten eine erweiterte Isolation für Container ohne die nennenswerten Performance-Einbußen einer üblichen Hypervisor-Virtualisierung. Für große Unternehmen setzen wir für Cloud-übergreifende Kubernetes-Provisionierung mit metal-stack und SAP Gardener SAP Gardener, welcher seit kurzer Zeit ebenfalls die Konfiguration alternativer Container Runtimes erlaubt. Falls Sie Beratung bei der Einführung von Kubernetes in ihrem Unternehmen benötigen, werfen Sie gerne einen Blick auf unser Kubernetes Consulting-Angebot.

Container: Dank Docker raus aus der Nische
Das Konzept der Containerisierung ist dabei gar nicht so neu: Schon zu Mainframe-Zeiten wurden entsprechende Konzepte eingesetzt. Es ermöglicht das Ausführen von Anwendungen in einer virtuellen Umgebung, indem alle Dateien, Bibliotheken und dergleichen, gemeinsam in einem so genannten Container abgespeichert werden. Dieser Container interagiert direkt mit dem Kernel des Betriebssystems. Damit ist es nicht länger erforderlich, jedes Mal, wenn eine neue Instanz der Anwendung benötigt wird, eine neue virtuelle Maschine zu erstellen. Das Portieren der Applikation wird damit deutlich einfacher und schneller möglich.
Den „Sprung ins Rampenlicht“ schaffte die Containerisierung mit der Entwicklung der Open Source-Lösung Docker. Mit der Docker Engine ist es mittlerweile möglich, eine Anwendung so zu bündeln, dass sie bei Bedarf mühelos auf eine andere Maschine oder ein Betriebssystem übertragen werden kann.

Containerisierung vs. Virtualisierung: Ablösung oder Ergänzung
Im Gegensatz zu Containern benötigen virtuelle Maschinen (VM) sowohl einen Hypervisor als auch ein Gast-Betriebssystem. Dies beeinträchtigt die Portabilität von Anwendungen, verlangsamt den gesamten Prozess und verbraucht darüber hinaus mehr Ressourcen (zum Beispiel Speicherplatz). Und so ist es nicht verwunderlich, dass anfänglich bereits von einer Ablösung des VM-Ansatzes durch die Containerisierung gesprochen wurde.

Quo Vadis Containerisierung?: x-cellent Expert-Talk am 28.3.19
Die aktuelle Diskussion um das Thema Containerisierung ist Grund genug, dem Thema den nächsten x-cellent Expert-Talk zu widmen, der am 28. März 2019 bei x-cellent in München stattfindet.
Mit Christian Brunner von der Firma FI-TS konnten wir dabei einen IT-Experten auf Anwenderseite gewinnen, der über seine Erfahrungen bei der Einführung von Container-Technologien bei unternehmenskritischen Anwendungen im Finanzwesen berichten wird. Darüber hinaus informieren wir über die technische Vorgehensweise bei der Einführung von Containerisierung in Unternehmen. Ein weiterer wichtiger Aspekt der Veranstaltung, die um 18.30 Uhr beginnt, ist der Informations- und Erfahrungsaustausch unter den Teilnehmern.