Zurück zu den Notizen

veröffentlicht 2025-10-30

Gründe für die Containerisierung des Entwicklungsworkflows

l-you avatarGanz Du

Stand 2025 ist die Containerisierung der Industriestandard für moderne Softwareentwicklung und -bereitstellung.

Die folgenden Aussagen zur Containerisierung der Entwicklung sind einfach und geradlinig.

Persönliches Feedback

  • Sie eliminiert den “works on my machine”-Drift, indem Code in einer kontrollierten, reproduzierbaren Umgebung läuft.
  • Ich nutze denselben Stack wie in Produktion und wie mein Team, ohne mein OS zu vermüllen.
  • Ich kann mehrere Projekte mit kollidierenden Versionen sauber jonglieren.
  • docker compose up -d ist schneller als Datenbanken, Queues und Webserver von Hand zu installieren und zu konfigurieren.
  • Laptop- oder OS-Wechsel sind egal. Image ziehen, dann starten.

Die Probleme der bisherigen Vorgehensweise, die es löst

  • Konfigurationsdrift: versteckte lokale Tweaks, automatisch installierte IDE-Plugins oder offene Ports, die es in der Produktion nicht gibt.
  • Dependency-Hölle auf dem Host: kollidierende Toolchains, Paket-Upgrades, die andere Projekte beschädigen.
  • Reibung beim Onboarding: fehlende Setup-Schritte, veraltete Dokus, Tribal Knowledge.
  • Repro-Herausforderungen: Bugs aus Test/Produktion auf einem chaotischen Host zu reproduzieren, ist unzuverlässig.
  • Unternehmensrichtlinien: eingeschränkte Möglichkeit, Build-Tools auf Desktops zu installieren.
  • Saubere Exits: containers stop. Keine herumlungernden Daemons, die Ports/CPU blockieren.
  • CI-Parität: Dasselbe Image läuft lokal und in Pipelines für konsistente Ergebnisse.
  • Team-Standardisierung: Eine Compose-Datei teilen und alle fahren denselben Stack.

Was es unerwartet vereinfacht

  • Lebende Dokumentation: Das Dockerfile ist eine ausführbare Spezifikation der Umgebung.
  • Zeitreise: Das Pinnen von Images/Locks macht das Zurückrollen von Toolchain-Änderungen trivial.
  • Parallele Stacks: Mehrere Versionen von Services starten, ohne mit dem Host zu kämpfen.
  • Sicherheitsprofil: Weniger Bedarf an Host-Installationen und erhöhten Privilegien.

Nachteile

  • Overhead: Images können groß sein; Builds und Pulls kosten Zeit und Speicherplatz.
  • Lokale UX: Datei-I/O-Performance, Netzwerk-Eigenheiten und Volume-Berechtigungen können wehtun.
  • Debugging: Die zusätzliche Ebene (Container + Orchestrator) erhöht die Komplexität für Tooling und Logs.

Zu beachten

  • Wartung: Dockerfiles, Basis-Images und CVE-Patching brauchen weiterhin Pflege.
  • Secrets/Config: Umgebungsvariablen, Mounts und Credentials müssen sicher gehandhabt werden.
  • Kein Allheilmittel: Man kann weiterhin Ports, Ressourcen oder Compose-Dateien falsch konfigurieren.