DDEV
26. Webmontag Kassel, 10.12.2018
Stephan Salzmann
@kaffdaddy
www.insomniaonline.de
Was wollt ihr?
Eine einheitliche Entwicklungsumgebung für alle!
Wann wollt ihr sie?
JETZT!
Wie sah es in der Vergangenheit aus?
- Vielzahl von Möglichkeiten, um AMP-Systeme (Apache/nginx/MySQL/PHP) auf den unterschiedlichen OS herzustellen
- Schwer, eine funktionierende Lösung für alle Entwickler bereit zu halten
OS-abhängige Lösungen wie MAMP oder XAMPP
- Vorteile:
- man muss sich um nichts kümmern, da alles aufeinander abgestimmt ist und von Haus aus funktioniert
- Nachteile:
- Änderungen und Erweiterungen sind nur schwer durchführbar
- Updates sind abhängig vom Release-Zyklus des Main-Packages
Paketmanager wie Homebrew oder Scoop
- Einzel-Installation von Apache/nginx, MySQL oder MariaDB und PHP
- Vorteile:
- "Native" Installation im OS
- Meist schnelle Verfügbarkeit von Updates, da nur Install-Skripte in einem Repository geändert werden müssen
- Nachteile:
- Konfiguration muss selbst erstellt werden
- Abhängigkeitskonflikte müssen selbst gelöst werden
Docker oder Vagrant
- Virtualisierung
- Vorteile:
- Konfiguration wie auf dem Zielsystem möglich
- Jeder Entwickler hat die selbe Konfiguration (sogar versionierbar)
- Nachteile:
- Konfiguration der Virtualisierung muss erstmal erstellt werden
- Konfiguration der Komponenten muss selbst erstellt werden
Wünsch dir was
- Eine Konfiguration für alle Entwickler
- Leicht zu installieren (out of the box)
- Erweiterbarkeit
DDEV
- kommt von einer Drupal Agentur (DRUD)
- Konfigurationssoftware für spezielle Docker-Container
- Konfiguration findet in YAML-Dateien statt
- Open Source
Welche Funktionen bietet DDEV?
- stellt einen nginx/Apache, MariaDB, PHP Stack zur Verfügung
- Stack ist auf die Entwicklung mit Drupal, TYPO3 und Wordpress ausgerichtet (Symfony, Zend sollten aber auch funktionieren)
- Services wie phpMyAdmin und MailHog sind vorkonfiguriert
- composer, node und npm sind installiert
- Xdebug ist vorbereitet und kann per einfachem Switch in der Hauptkonfiguration gestartet werden
- Überschreiben von Konfigurationen von jeder Systemkomponente (Webserver, PHP, MySQL) möglich
- CLI zum Steuern von Funktionen von außerhalb eines Containers (ssh, composer, DB-Ex- und -Import, Snapshots usw.)
- mehrere DDEV-Instanzen können gleichzeitig laufen, Erreichbarkeit wird über einen eigenen Router-Service ermöglicht
- Erweiterbarkeit von weiteren Instanzen wie Solr
Quellen
- https://www.drud.com/what-is-ddev/
- https://github.com/drud/ddev
- https://ddev.readthedocs.io/en/stable/