Container-Technologie leicht erklärt: Analogien aus dem Alltag

Softwareentwickler stehen oft vor der Herausforderung, ihre Anwendungen reibungslos von der lokalen Entwicklungsumgebung in die Cloud zu bringen. Ein Lösungsweg dafür sind Containern – eine Technologie, die die Softwareentwicklung und -bereitstellung grundlegend verändert hat.

Dieser Artikel bietet Ihnen einen verständlichen Einstieg in die faszinierende Welt der Software-Container. Was sind die Begrifflichkeiten und wie kann man sich die Handhabung von Containern vorstellen? Um das Konzept greifbar zu machen, werde ich Container mit alltäglichen Prozessen wie Kochen und dem Gütertransport vergleichen.

Was ist das Ziel?

Für Entwickler ist es entscheidend, dass die erstellte Software konsistent und zuverlässig überall lauffähig ist – egal, ob in der Testumgebung, auf einem Server oder in der Cloud. Dabei konzentrieren wir uns in diesem Artikel auf serverseitige Software, die häufig aus komplexen, miteinander verbundenen Bausteinen besteht.

Ausgangsmaterialien

In den folgenden Analogien gehen wir von folgenden Teilen aus:

  • Eigener Code: Der selbst geschriebene Code in einer bestimmten Programmiersprache, der die spezifische Funktionalität der Software realisiert

  • Abhängigkeiten: Vorhandene Software-Bibliotheken, die Teile der Softwarefunktionen übernehmen und integrierbar sind.

  • Bauanleitung für Container: Tools wie das Dockerfile haben sich als Standard für den Containerbau etabliert. Die Datei beschreibt die Schritte um den Container zu bauen.

  • Weitere Komponenten: Oft sind größere Softwarekomponenten wie Datenbanken, Web- oder Caching-Server erforderlich, die nicht eigens entwickelt werden müssen.

  • Werkzeuge: Verschiedene Tools unterstützen die Verwaltung und Integration dieser Bausteine.

Container-Technologie - verglichen mit Transport und Kochen

Zwei Beispiele aus dem Alltag veranschaulichen, wie mit Software-Containern Material transportiert und bereitgestellt wird.

Natürlich sind die Beispiele stark vereinfacht, aber für ein mentales Modell von Software-Containern sind sie trotzdem nützlich.

Containertransport

Der Transport von Gütern mit Containern ist heutzutage ein unverzichtbarer Bestandteil der globalisierten Logistik. Verschiedenste Güter sollen schnell, effizient und kostengünstig transportiert werden.

Dabei kommen Transportwege wie LKWs, Züge oder Schiffe zum Einsatz.
Die Ausgangsmaterialien lassen sich wie folgt auf den Containertransport übertragen:

  • Programmcode und Abhängigkeiten: Der Inhalt des Containers, etwa Reis oder industrielle Güter
  • Dockerfile: Eine Anleitung wie genau alles in den Container eingeräumt werden muss und welche Containerart es sein soll (z.B. Kühlcontainer, Tankcontainer)
  • Image: Der voll gepackte Container, der in der IT-Welt beliebig oft kopiert werden kann
  • Container: Eine Kopie des gepackten Containers der an seinem Einsatzort ausgepackt bzw. in Betrieb genommen wird
  • Werkzeuge: Dank standardisierter Containergrößen können die Inhalte unabhängig vom Typ einfach mit LKWs und Schiffen transportiert und von Hafenkränen verladen werden.

Kochen

Das Konzept von Software-Containern lässt sich auch mit Kochen vergleichen. In der Küche gibt es ebenfalls Ausgangsmaterialien die mit Werkzeugen zu Anleitungen zu einem Ergebnis verarbeitet werden das sich (mehr oder weniger leicht) lagern und dann nutzen lässt.

  • Abhängigkeiten und Programmcode: Die Zutaten, aus denen das Gericht entsteht

  • Dockerfile: Das Rezept das Schritt für Schritt beschreibt wie die Zutaten kombiniert werden müssen.

  • Image: Das fertige Gericht, nachdem das Rezept zubereitet wurde und in einem wiederverwendbaren Format konserviert wurde. In dem Beispiel am besten Tiefgefroren. Wie auch beim Beispiel mit den Transportcontainern könnte es in der IT-Welt nun beliebig oft kopiert werden.

  • Container: Wenn das tiefgefrorene Essen aus dem Gefrierfach genommen wird, wird es aufgetaut, erwärmt und serviert.

  • Werkzeuge: Im Laufe der Zeit haben sich Werkzeuge wie Mixer, Töpfe und Löffel etabliert. Diese Werkzeuge besitzen standardisierte Eigenschaften, um mit einer Vielzahl von Gerichten, Zutaten und Küchen kompatibel zu sein.

Ein Beispiel

Ein kleines Beispiel aus der IT-Welt sähe dann zum Beispiel so aus:

  1. Die Datenbank Postgresql in einer bestimmten Version soll in der Entwicklungsumgebung auf dem Laptop als auch in Produktionsumgebung benutzt werden.
  2. Das Image (zum Beispiel von Docker Hub) wird mit Docker Desktop während der Entwicklung lokal benutzt
  3. In der Produktionsumgebung wird das selbe Image für die Datenbank benutzt, aber für Produktiveinsatz konfiguriert

Zusammenfassung

Eine komplexe Software lässt sich in ein standardisiertes Image verpacken dass dann als Container in verschiedenen Umgebungen zum Einsatz gebracht werden kann. Damit bieten Software-Container eine klare und strukturierte Lösung, um Anwendungen zuverlässig und unabhängig von ihrer Umgebung bereitzustellen.

Mit diesen Grundlagen ausgestattet, können Entwickler ihre Software effizienter erstellen, testen und bereitstellen – ein wichtiger Schritt, um den Anforderungen moderner Infrastruktur und Arbeitsabläufe gerecht zu werden.

Weitere Blogeinträge

Unsere Website verwendet technisch notwendige Cookies. Weitere Informationen finden Sie in unserer Datenschutzerklärung.