Entwicklung mit DDEV für Wordpress, TYPO3 und Co.
Workflow mit DDEV

Was ist DDEV?

DDEV ist ein seit 2017 von der Firma DRUD Technology LLC entwickeltes dockerbasiertes Open Source-Tool, mit welchem innerhalb kurzer Zeit – stark vereinfacht – eine lokale PHP-Entwicklungsumgebungen eingerichtet werden kann. Dabei gilt DDEV als besonders leistungsstark und flexibel. Die Einrichtungszeit beträgt in der Regel nur wenige Minuten. DDEV bietet projektbezogene Umgebungskonfigurationen für z.B. TYPO3, WordPress, Drupal 6 bis 8, Backdrop CMS und Java-Anwendungen an. Diese vorkonfigurierten Entwicklungsumgebungen lassen sich relativ einfach aufsetzen, aktualisieren, durch eigene Konfigurationen erweitern, versionieren und freigegeben.

Warum wurde DDEV eingeführt?

Entwicklung mit DDEV für Wordpress, TYPO3 und Co.

Ziel von DRUD’s DDEV ist es, dass Entwicklerteams Docker ohne die Komplexität einer maßgeschneiderten Konfiguration in ihrem Workflow nutzen können – das gilt sowohl für neue als auch für bereits bestehende Projekte. Die Idee dabei ist, dass du ein standardisiertes Setup für eine lokale Entwicklungsumgebung hast, die super leicht einzurichten ist und die es später unkompliziert ermöglicht, ein Projekt zu einem oder mehreren Hostern zu deployen. Es ist die Mission von DDEV, einen schnelleren, besseren, einfacheren und zuverlässigeren Web-Entwicklungs-Workflow zu schaffen. Langfristiges Ziel ist dabei eine Zusammenarbeit mit möglichst vielen Hostern für Live-Deployments.

DDEV Local und DDEV Live

Befasst du dich intensiver mit dem Angebot von DDEV, wirst du mit DDEV Local und DDEV Live konfrontiert. Dabei steht DDEV Local, als Open-Source-Tool für die lokale Entwicklungsumgebung jedem frei zur Verfügung und kann von der großen Community der Entwickler ungebremst optimiert und erweitert werden. DDEV Live hingegen stellt das zugehörige Hosting-Produkt dar, um sein Projekt erfolgreich und performant in ein Staging-/Production-System deployen und betreiben zu können. An dieses Produkt bist du aber nicht zwingend gebunden. Man kann auch weiterhin mit allen gängigen Automatisierungsprozessen, seine Projekte zu jedem beliebigen Hosting-Provider deployen.

DDEV Local bietet den Vorteil, dass du einfach und schnell Kontext und Projekt wechseln kannst. Dieser Kontextwechsel beinhaltet einen schnellen Wechsel zwischen verschiedenen Plattformen, wie beispielsweise einem TYPO3-basierten Projekt hin zu einem WordPress-Projekt. Vereinfacht wird auch die Arbeit mit den verschiedenen technischen Diensten und Konfigurationen (Linux, Nginx, Apache, PHP, Redis, Varnish, Memcache, Grunt, MySQL, Composer, Bower, SOLR, usw.)

Die Vorteile von DDEV Local
Entwicklungsumgebung DDEV

Die Bereitstellungszeit der lokalen Umgebung wird mittels DDEV stark verkürzt, wesentlich konsistenter und der Aufwand damit vorausplanbarer. Installation und Update eines Systems erfolgen mühelos. (siehe Abschnitt „Zur Nutzung von DDEV local am Beispiel eines TYPO3-Projektes“). Entwickler können sich endlich einfacher auf die eigentliche Projektumsetzung fokussieren.

Im Zusammenspiel mit der Qualitätssicherung lassen sich schnellere „time-to-fix“-Zeiten erzielen, da der Aufwand für die Isolierung, Behebung und die Bereitstellung von Korrekturen bei kritischen Problemen stark reduziert wird. Diese Zeitersparnis steigert also die Effizienz der Entwicklerteams und verringert zeitgleich die Entwickler- und Projektkosten – was den Kunden, der das Projekt in Auftrag gegeben hat, freuen dürfte.

DDEV Live rundet das Angebot von DRUD vollends ab und stellt ein schnelles, sicheres Webhosting mit Rundum-Service-Rahmenvertrag zur Verfügung, welches vollständig auf das anzuwendende System ausgelegt ist. Dabei spielt es keine Rolle auf welchem Bereitstellungsmodell deployed wird, seien es  Bare-Metal-Server, eine Public Cloud, Inhouse-Server oder Hybrid-Server.

Umfangreiches DDEV Angebot

DDEV Live verspricht eine produktionstaugliche Container-Orchestrierung für autonome Selbstheilung und horizontal skalierbare Flexibilität.

Seitenaufrufe liegen im Sekundenbereich, da ihre Anwendungen von Cloudflare CDN-Diensten, wie etwa Load Balancing, Smart Routing und Streaming angetrieben werden und maximale Leistungen erzielen.

Hier erfährst du was das DDEV Live Hosting Produkt im Detail bietet.

DDEV Live oder Pantheon-Website- Management

Aktuell bietet DDEV eine Integration mit der Drud-S3- (DDEV Live) oder der Pantheon-Website- Management-Platform, die es deren Benutzern ermöglicht, ein Projekt schnell über ihren Amazon AWS S3 Backup-Bereich in eine lokale DDEV-Entwicklungsumgebung herunterzuladen und bereitzustellen. Das setzt jedoch voraus, dass du bereits eine DDEV-Live-Site mit einem Backup hast, um sie nutzen zu können.

Zur Nutzung von DDEV am Beispiel eines TYPO3-Projektes:

Für die Verwendung von DDEV gelten zunächst bestimmte Systemvorraussetzungen. So läuft DDEV auf den gängigen MAC-OS-Versionen High Sierra und neuer, unter Windows 10 und den verschiedenen Linux-Distributionen, die Docker-CE unterstützen, denn DDEV nutzt Docker und Docker-Compose zum Simulieren einer virtuellen Entwicklungsumgebung.

Der Einsatz von DDEV

Zunächst solltest du auf deinem System die Docker Toolbox und DDEV installieren.

Jetzt wird das Projektverzeichnis mit den relevanten Systemdaten eingerichtet. Das kannst du manuell anlegen oder viel einfacher mit Composer kreieren. Dafür hinterlegst du in deinem Projektverzeichnis eine composer.json, die die Rahmenbedingungen des Systems absteckt, wie u.a. die TYPO3-Version, benötigte Extension-Packages, PHP-Anspruch und wichtig: die Angabe eines Webverzeichnisses, wie z.B „public“. Du führst im Projektverzeichnis über die Shell „composer update“ aus und installierst nun binnen Sekunden dein System mit allen wichtigen Verzeichnissen und Dateien.

Jetzt kommt DDEV zum Einsatz. Mit dem Shell-Befehl ddev config startet die Konfiguration der Entwicklungsumgebung. Insgesamt gibt es dabei drei Abfragen, die bereits vorausgefüllt simpel mit „Enter“ zu bestätigen sind. Es wird nach dem Projekt-Namen, dem Webverzeichnis und nach dem Anwendungs-Typ, also hier typo3 gefragt.  Du hast natürlich die Option abweichende Angaben zu machen. Mit Bestätigung dauert es nun wieder Sekunden und ein .ddev“-Verzeichnis mit den nötigen Konfigurations-Dateien für Docker, Webserver, Datenbank, etc. entsteht. Das wirklich Tolle hierbei: auch das TYPO3-System wird mit einer automatisch bereitgestellten Additional-Configuration.php für den HOST, Datenbank, Mail-Transport-SMTP und Debug-Modi vorkonfiguriert. Dies musst du also nicht mehr selbst einrichten.

Im letzten Schritt startest du die Entwicklungsumgebung mittelsddev start“. Insgesamt vier Docker-Container (Webserver, Datenbank, PHPmyadmin und Router) starten und du erhältst drei Domains (http-Domain / https-Domain / IP-Adresse), über die du dein System lokal aufrufen und einrichten bzw. bearbeiten kannst.

Entwickler haben noch zusätzlich vielfältige Konfigurations-Möglichkeiten um ihre Entwicklungsumgebung auf die individuellen Bedürfnisse anzupassen. Du kannst beispielsweise beliebige weitere Hostnamen auflisten, die beim nächsten „ddev start“ miterzeugt werden und aufgerufen werden können. XDebug wird mitgeliefert und kann einfach über die config.yaml (Konfigurationsdatei von DDEV) aktiviert werden. Ebenfalls lässt sich die benötigte PHP-Version festlegen. Als Webserver hast du derzeit die Auswahl zw. NGINX und Apache. Außerdem lohnt es sich die Dokumentation zu DDEV zu lesen, um herauszufinden, was alles möglich ist.

DDEV bietet viele Vorteile.

Und das Fazit zu DDEV?

Nach ersten Testläufen mit DDEV kann ich bestätigen, das lokale Systeme einfach aufzusetzen sind, schneller als gewohnt starten und sehr flüssig und stabil laufen. Das Angebot möglicher Systeme bietet schon jetzt ein interessantes Spektrum und wird voraussichtlich in den kommenden Monaten noch Lösungen u.a. für Magento, Laravel oder Shopware bereitstellen.

War es bislang so, dass vor allem für kleine Projekte, der Aufwand und damit der Kostenpunkt für das Einrichten der Entwicklungsumgebung im Bezug zur eigentlichen Leistung des Produktes zu hoch waren, lassen sich diese jetzt schneller, weniger aufwändig und damit günstiger umsetzen.  Für lokale Entwicklung würde ich DDEV getrost empfehlen. Langfristig ist von DRUD geplant oder besser „gewünscht“ DDEV für alle Hoster verfügbar zu machen. Das ist jedoch noch ein langer Weg. DDEV muss daher verstärkt vom Markt genutzt und Unterstützung von den Hostern gefordert werden, damit diese sich dahingehend bewegen und die Technologie dafür bei sich bereitstellen. Dies Entwicklung bleibt abzuwarten.

Wichtigste DDEV-Befehle in der Übersicht

ddev describezeigt Infos, wie Datenbankzugänge, Hosting URLs, PHP-Version
ddev listzeigt alle ddev-Projekte an und deren Status
ddev logszeigt Logs, wie bspw. Error-Logs
ddev startstartet ein ddev-Projekt bzw. bringt deren Container zum laufen
ddev stopstoppt laufende Container eines Projektes
ddev removeentfernt Docker Container
ddev remove –remove-dataentfernt Docker-Container und Datenbank
ddev sshwechselt in den Webcontainer
ddev exec ls -alführt Befehl im Container aus
ddev snapshotbackupt die Datenbank / erstellt einen db_dump

Quellen

[1] DRUD

[2] DDEV Documentation,DRUD Technology, LLC

[3]  YouTube: „Full Tutorial – Running TYPO3 with DDEV“,Mathias Schreiber, TYPO3 GmbH, 24.08.2018

[4] Stackflow

[5]  YouTube: „TYPO3 CMS local development environment BETA-TEST!“, Mathias Schreiber, TYPO3 GmbH und Steve Grandchamp, DRUD Technology, 15.02.2018

[6]  TYPO3 Slack Channel: #ddev

[7]  Facebook Kommentar von Mathias Schreiber unter folgendem Beitrag, 15.02.2018

Bildnachweise

[8]  Header-Teaser, Bild 1: © DDEV Logo +  Freepik designed by katemangostar /© Freepik

[9]  Bild 2: CMS-Logos von DRUD und Hintergund  designed by kjpargeter /© Freepik

[10] Bild 3: Designed by suksao /© Freepik

[11] Bild 4: Designed by Pixies/© Pixabay

[12] Bild 5: Designed by StartupStockPhotos/© Pixabay

[13] Bild 6: Designed by AlfredMuller/© Pixabay

[14] Bild 7: Designed by katemangostar / ©Freepik + Screenshot DDEV Documentation

Weitere Beiträge aus dem Bereich