Ivaylo Kolbinger Ivanov
14.01.2026

Lesezeit: 7 Minuten

Containerisierung Teil 2 – So setzen wir bei dkd DDEV und Docker in Projekten ein

Grafik von identischen Schiffen auf dem Meer, beladen mit der gleichen Fracht

Identisches Setup. Immer und überall.

Im ersten Teil haben wir die Vorteile der Containerisierung beschrieben. Jetzt möchten wir zeigen, wie wir das bei der dkd konkret umsetzen – von der lokalen Umgebung mit DDEV über unsere CI/CD-Pipeline bis hin zur dynamischen Vorschau, Staging und Produktion.

Wie sieht das Setup im Überblick aus?

Unsere Entwicklungsumgebung basiert auf DDEV, das Docker verwendet. Für jeden Merge Request erstellen wir eine dynamische Review Stage. Diese Vorschau hilft uns, Änderungen schnell zu überprüfen, bevor sie in eine produktionsnahe Staging-Umgebung und schließlich auf die Live-Plattform gelangen. Einmal entwickelte Container-Images nutzen wir über alle Stufen hinweg – so stellen wir Konsistenz sicher, von der lokalen Entwicklung bis zur Live-Ebene.

Lokale Entwicklung mit DDEV

Die lokale Entwicklungsumgebung basiert auf dem TYPO3-DDEV-Blueprint und wird durch eigene Images für verschiedene Projektkomponenten ergänzt. Dazu gehören der Webserver Apache, PHP (inklusive der passenden Version und Extensions) und Datenbanken wie MariaDB oder MySQL. Optional setzen wir je nach Projekt Redis, Varnish, Solr oder Mailcatcher ein. Durch den Einsatz von Docker können diese Dienste über alle Stages hinweg einfach eingesetzt werden. Wichtig ist uns die Konsistenz: Die gleichen Images, die lokal genutzt werden, kommen auch in den Staging- und Live-Umgebungen zum Einsatz, sodass getestete Änderungen zuverlässig live gehen.

Pipeline mit Docker-Containern

Statt klassisches Deployen per Copy & SSH setzen wir auf eine moderne Pipeline mit Docker-Containern. Alle Änderungen werden in einem Container-Image im Repository gespeichert und durchlaufen dieselben Stufen:

  • Commit & Merge Request: Ein Feature-Branch wird erstellt und ein Merge-Request eröffnet.
  • Build: Die CI baut versionierte Images aus dem Code-Repository.
  • Test: Es werden automatisierte Tests wie Linting, Unit-Tests, Performance- und Regression-Tests, Security-Tests und UAT's durchgeführt.
  • Provisionierung: Images werden in einer Review Stage gestartet, die der Live-Umgebung entspricht.
  • Review & QS: Fachliches und technisches Review sowie Kundenabnahme erfolgen.
  • Merge: Die temporäre Stage wird nach der Freigabe automatisiert abgebaut und die Änderung in den Hauptzweig übernommen.
  • Rollback-fähig: Über Git-Tags ist der Einsatz einer Rollback-Funktion gesichert.

Die praktischen Vorteile des Deployment-Setups

Unsere Methode beschleunigt die Entwicklung und reduziert Fehler: Gleichartige Container sorgen für Stabilität, während automatisierte Tests die Qualität garantieren. Entwicklungskosten sinken, da weniger Feedbackschleifen und Entwicklungsaufwände nötig sind.

Dynamische Review Stages

Pro Merge Request entsteht eine isolierte Umgebung, die wir innerhalb weniger Minuten bereitstellen können. Sie nutzt dieselben Images wie die Staging- und Live-Umgebung und ist über passwortgesicherte URLs zugänglich. Diese Stages ermöglichen es, Features separat zu testen und freizugeben, ohne andere Pipeline-Prozesse zu stören.

Ansicht der dynamischen Review Stages

Staging-Umgebung

Die Staging-Umgebung spiegelt die Produktionsumgebung genau wider, einschließlich Images, Konfigurationen und bei Bedarf Daten. Hier werden alle Änderungen aus den dynamichen Review-Stages zusammengeführt und durch weitere umfangreiche Tests für ein finales Deployment vorbereitet.

Live-Umgebung

Die Live-Umgebung wird ebenfalls über das Docker-Setup betrieben. Unterstützt wird sie durch einheitliche Images und Prozesse wie Monitoring, Alerting, Fehlerüberwachung und Backups.

Ein Setup für nachhaltigen Erfolg

Die dkd bietet ein bewährtes und zukunftsorientiertes, containerbasiertes Setup. Unsere standardisierten und gehärteten Images sowie klar strukturierte Prozesse beschleunigen die Entwicklung spürbar. Wir stehen für planbare Releases, minimiertes Risiko und gleichzeitig gesteigerte Geschwindigkeit und Qualität in Entwicklung und Betrieb.

Risiken minimieren, Qualität steigern – starten Sie jetzt

References

[1] Containerisierung & Docker | Teil 1
 

Kommentar schreiben

* Diese Felder sind erforderlich

Kommentare

Keine Kommentare