Lesezeit: 7 Minuten
Containerisierung Teil 2 – So setzen wir bei dkd DDEV und Docker in Projekten ein
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.
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
Kommentare
Keine Kommentare
Kommentar schreiben