Um komplexe E-Commerce-Projekte erfolgreich zum Go-live zu bringen, ist viel Teamarbeit nötig, die es abzustimmen gilt. Neben einheitlichen Kommunikationssoftwares für Dienstleister und Kunden, ist auch eine interne Orchestrierung der Entwicklung essentiell. Eine Lösung dafür ist ddev – eine Entwicklungsumgebung, die alles abdeckt und hochkompatibel ist.
Was ist ddev?
Jeder kennt das: Beim Antritt eines neuen Jobs werden einige Onboarding-Prozesse durchlaufen, Einweisungsgespräche geführt, Einarbeitungsphasen bewältigt. Bei dem Berufsstand der Entwickler fällt das noch umfangreicher aus, denn jedes Unternehmen hat eine andere Herangehensweise bei der Projektentwicklung, der verwendeten Software und dem generellen Entwicklungs-Setup.
Das für PHP-Projekte entwickelte Tool ddev ist genau für solche Situationen geschaffen, denn damit lässt sich in kurzer Zeit eine containerbasierte Entwicklungsumgebung bereitstellen. So kann ein quasi blanker Rechner innerhalb von 2 Stunden zu einem einsatzbereiten Projektentwicklungs-Setup gebracht werden. Dabei ist ein Setup mit bekannten PHP-Projekten wie Drupal, TYPO3, WordPress oder Magento absolut kein Problem für ddev.
Gerade letztgenannte Möglichkeit erfreut sich hoher Popularität. Durch das Einspielen der Konfiguration eines Projekts in GIT, kann jeder involvierte Entwickler mit der gleichen Entwicklungsumgebung arbeiten. Benötigte Infrastrukturen können so auch von Entwicklern, die sich mit der Umgebungs-Einrichtung nicht auskennen schnell auf den eigenen Rechner geladen werden.
Vorteile und Benefits von ddev
Neben den bereits erläuterten Qualitäten von ddev, bringt die Verwendung dieses Tools noch viele weitere Vorteile mit sich. Alle Vorteile von ddev im Überblick
- Einheitliche Umgebung für alle Entwickler
- Keine Spezial-Setups auf den einzelnen Rechnern
- Reduktion des Wartungsaufwands auf den Entwickler-Rechnern
- Besser Qualitätssicherung, da durch die Orchestrierung Fehler viel schneller bemerkt werden
- Standardisierte Nutzung von Tools, keine Kompatibilitätsprobleme bei der gemeinsamen Entwicklung am gleichen Projekt
- Schnellere Einarbeitung von Entwicklern in ein Projekt
- Schnelleres Aufsetzen von neuen Projekten
- Volle Konzentration auf die Magento-Entwicklung,
- “Infrastructure as Code”
- Bessere Zusammenarbeit mit Kunden – Entwickler auf Seite des Shopbetreibers können schneller mitarbeiten
Einbindung in den Workflow von netz98
Auch bei netz98 haben wir ddev bereits in den meisten Projekten eingesetzt und verwenden das Tool mittlerweile regulär zur Einrichtung von containerbasierten Infrastrukturen für unsere Projektentwicklung. Da auch Magento 2 als Projekt-Typ in ddev bekannt ist, konnten wir auf die zahlreichen Vorteile der Entwicklungsumgebung zurückgreifen. Allerdings haben wir einige Anpassungen vorgenommen, um das Tool noch konvergenter in unser Entwicklungs-Setup einzubinden. Die einzelnen Maßnahmen umfassten unter anderem:
- Neue Kommandos zum automatischen Setup der Integrationstest-Umgebung
- Standardisierte QA Kommandos (Unit-Tests, Static Code Checks)
- Automatische Magento Installation
- Automatisches Einspielen von Konfigurationen
- Anlage eines Standard REST-API Key für Entwickler
- Automatisches Einspielen von projektspezifischen Demo-Daten
- Diverse automatische Fehlerkorrektur nach Projekt-Start
- Installation von Tools wie n98-magerun
- Registrieren von PSR4 Namespaces in PhpStorm
- Einrichten von Cronjobs (Ausführung von Prozessen zu festgelegten Zeiten)
- Einrichten von Message Queue / Consumer
- CMS Datenimport
- Bereitstellen von Logindaten für Paketmanager
- Erstellen von lokalen Admin-Accounts
Wie ist der Aufbau eines typischen ddev-Projekts bei netz98?
Da es sich bei einer ddev Entwicklungsumgebung um eine containerbasierte Infrastruktur handelt, wird die Live-Umgebung eines Projektes mithilfe diverser Container auf dem lokalen Entwicklungsrechner abgebildet. Involvierte Technologien, die zu diesem Setup gehören sind:
- Eine MySQL/MariaDB Datenbank
- Ein Nginx-Webserver mit PHP FastCGI
- Ein Mail-Catcher zur Vermeidung von versehentlich versendeten E-Mails
Fast jedes netz98-Projekt beinhaltet auch eine ElasticSearch Datenbank (seit Magento 2.4 auch Magento-Standard) mit einer Kibana-Oberfläche für einen einfachen Webzugriff. Des Weiteren setzen wir in jedem Projekt auf das Datenbank-System Redis, zum einen als Cache-Backend und zum anderen als Session-Container. Wenn Varnish im Projekt eingesetzt werden soll, kann natürlich auch dieser Cache ganz einfach lokal eingebunden werden. Auch auf der Frontend-Seite haben wir einen hohen Automatisierungsgrad erreicht, mithilfe von Tools auf Basis der Laufzeitumgebung Node.js. Damit war es unter anderem möglich, das PWA-Frontend „Vue Storefront“ in ddev-Umgebungen für unsere Entwickler bereitzustellen.
So konnten wir Dank ddev eine Basis schaffen, die die Vorbereitungszeit vor dem Start in die Projektentwicklung maximal minimiert. Dies gibt uns die Möglichkeit, neue Entwickler schnell zu integrieren und gleichzeitig die Qualität der Entwicklung nicht nur zu gewährleisten, sondern auch zu steigern.
Bilder: netz98, freepik