DDEV - Vereinfache die lokale Entwicklungsumgebung
Was für die Handwerker ihre Werkstätten, ist für unser Entwicklungsteam die lokale Entwicklungsumgebung. Und da wollen wir es schön einfach und gemütlich haben. Zum Denken und zum Knobeln haben wir schließlich noch genug andere Dinge.
Von MAMP/LAMP und Docker zu DDEV
Früher hatte jeder unserer Entwickler ein eigenes MAMP/LAMP-Setup auf seinem Rechner. Das war einfach aufzusetzen, funktionierte relativ unkompliziert und zudem noch schnell. Jedoch gab es mit der Zeit immer mehr Probleme. Unter anderem erforderten einige Projekte neuere PHP-Versionen oder spezielle Server-Einstellungen, die sich auf den lokalen Rechnern nur schwer nachbilden ließen. Zudem wurde es immer schwieriger, schnell zwischen einzelnen Projekten zu wechseln, da man immer wieder die lokalen Konfiguration seines Systems anpassen musste.
Aus diesem Grund wechselten wir zu einem auf Docker basierten Setup für die lokale Entwicklung. Hiermit war es uns recht einfach möglich, die Eigenheiten der Server, auf denen die von uns betreuten Webseiten lagen, nachzubilden. Dadurch waren wir besser vor bösen Überraschungen nach Deployments geschützt - schließlich verhielt sich die lokale Entwicklungsumgebung nun nahezu identisch zum Live-Server.
Mit der Zeit traten jedoch auch Nachteile unseres Docker-Setups in den Vordergrund. So war es teilweise noch ziemlich kompliziert, ein Projekt neu aufzusetzen (man musste diverse Dateien an die richtigen Stellen kopieren, Einstellungen überschreiben, …). Zudem war da eine große Schwäche gegenüber dem alten MAMP/LAMP-Setup: Es konnten nicht mehrere Projekte gleichzeitig lokal laufen; zumindest nicht, ohne einige Einstellungen manuell zu überschreiben. Dies bewog uns schließlich dazu, unser Setup nochmal zu überdenken und nach besseren Alternativen Ausschau zu halten. So kamen wir schließlich auf DDEV.
Was ist DDEV?
DDEV-Local - so die vollständige Bezeichnung - ist ein open-source-basiertes Tool für die Softwareentwicklung. Es baut einen lokalen Webserver mit den entsprechenden Softwarepaketen auf, über welchen Code einfach gebaut, getestet und deployed werden kann. DDEV basiert auf Docker, vereinfacht jedoch die Arbeit für das Entwicklungsteam enorm und bietet zusätzliche Erweiterungen.
Alles für eine einfache Arbeitsumgebung
Mit DDEV geht das initiale Setup ganz einfach von der Hand und ist fix erledigt. Mit nur drei Befehlen in der Kommandozeile (git clone, composer install, ddev start) ist ein Projekt nun in der Regel lokal eingerichtet. Vor allem zwei Argumente haben uns beim Umstieg zu DDEV absolut überzeugt:
- Das Aufsetzen eines lokalen Projekts geht wunderbar einfach und schnell.
- Wir können unkompliziert mehrere Instanzen in der lokalen Umgebung parallel laufen lassen.
Als Drupal-Agentur bearbeiten wir verschiedene Kundenseiten und nicht jeder Entwickler hat immer alle Projekte auf seinem Rechner eingerichtet. Mit DDEV haben wir besonders bei den wechselnden Sprints und den Sicherheitsupdates nun eine deutliche Zeitersparnis. Das eigentliche Killer-Feature für uns ist aber der Parallelbetrieb. Bei den wöchentlichen Update-Abenden spielen wir die aktuellsten Updates in alle unsere (SLA-)Kundenprojekte ein. Wenn nun jedes Projekt sequentiell abgearbeitet werden würde, wären die Updates von unserem Team an einem Abend kaum zu schaffen. Dank DDEV können wir diese Projekte nun einfach parallel bearbeiten und müssen keine komplexen Workarounds mit Docker starten. Damit sparen wir uns enorm viel Zeit und in Zukunft hoffentlich lange Nachtschichten ein.
Es gibt noch weitere vorgefertigte Dinge für DDEV, die das Arbeiten vereinfachen. So beispielsweise den Befehl ddev share, mit dem die lokale Instanz der Seite über eine öffentliche URL verfügbar gemacht werden kann. Damit lassen sich lokale Seiten wunderbar auch auf anderen Devices (wie dem Smartphone, Tablet) testen.
Unter https://github.com/drud/ddev-contrib gibt es eine Vielzahl von nützlichen Beispielen und Vorlagen, um DDEV zu erweitern. So kann man relativ einfach Solr oder auch Varnish zum Projekt-Setup hinzufügen, damit man lokal möglichst nah an der Produktiv-Umgebung ist.
Unser Fazit
DDEV erleichtert uns schon jetzt, wo wir es in den ersten Projekten einsetzen, den Arbeitsalltag enorm. Die Entwicklungsteams können damit Docker-Funktionen schnell und einfach nutzen. Und ein weitere Plus: DDEV ist nicht auf Drupal beschränkt. Damit können wir es allen ans Herz legen, die mit PHP-Projekten arbeiten und auch verschiedene CMS lokal aufsetzen möchten.