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

Kleine Demonstration

Quellen

  • https://www.drud.com/what-is-ddev/
  • https://github.com/drud/ddev
  • https://ddev.readthedocs.io/en/stable/

Fragen?

Danke.