Nach der Installation muss Windows richtig eingerichtet werden. Einige Sachen sind eine Geschmacksfrage andere essentiell.…
Docker: Warum ich auf eine neue Testumgebung umstelle?
Docker statt XAMPP. Mein Plan für dieses Wochenende ist die Umstellung meiner eigenen Entwicklungsumgebung, die derzeit auf XAMPP läuft, auf Docker umzustellen. Der Grund dafür ist ziemlich simpel. Meine Produktivumgebungen sind mit PHP-Version und Co. meiner Entwicklungsumgebung weit voraus. Außerdem weiß ich derzeit nicht, ob meine Websites auf nginx-Servern laufen würden und würde dies natürlich gerne testen.
Docker vs. XAMPP
Ich habe vor einigen Jahren hier gezeigt, wie eine Entwicklungsumgebung aussehen kann, leider habe ich damals einen wichtigen Punkt nicht erwähnt: XAMPP.
XAMPP von Apachefriends.org ist ein Programmpaket, dass es ermöglicht auf dem PC (Betriebsystem: Windows, Linux und MacOS) einen bereits konfigurierten Apache samt PHP, mySQL-Datenbank, Perl und anderen Features zu installieren. Zur damaligen Zeit war dies sicher auf Windows auch die schnellste Empfehlung. Derzeit steht ein Update dieser XAMPP-Umgebung an. Die Produktivserver laufen weit vor dem Entwicklungssystem. Da wäre es für das Bugfixing besser, wenn beide Umgebungen zusammenpassen.Nach einer kurzen Frage an Tante Google, habe ich festgestellt, dass das einiges an Aufwand ist.
Außerdem würde ich gerne testen, wie meine Websites auf einem nginx-Server laufen. nginx.og bietet zwar eine Anleitung an, aber so richtig vom Hocker gehauen hat mich die jetzt nicht. Ach ja, wie installiere ich dann dort PHP, Perl oder mySQL. Was ist mit mehreren PHP-Versionen für unterschiedliche Projekte? Meine Idee: Docker.
Docker ist ein Open-Source-Community-Projekt. Containerisierung ist die Hauptaufgabe dieser Software. Mittlerweile kann es mit Hyper-V nahezu problemlos auf Windows-PCs installiert werden.
Docker: Vorteile in der Web-Entwicklung
Docker-Container ermöglichen es auf einem Windows-Hostsystem auch andere Betriebsysteme als Basis des Gastsystems zu nutzen. Wenn die Produktivumgebung z.B. ein Linux-Derivat wie Debian oder RedHat ist, kann dies ein Vorteil sein. Mehrere PHP-Versionen oder auch ein anderer Server (nginx vs. Apache) sind problemlos möglich.
Dabei kann ich im Gegensatz zu einer Virtualisierung mit Virtualbox oder ähnlichen Tools weiterhin so arbeiten, wie ich es gewohnt bin. Der Code liegt dabei auf meiner Festplatte ist von den IDEs zugänglich, wird vom Container bereitgestellt und ist von Browser erreichbar. Ich muss keine Files umständlich zwischen Systemen oder auf FTPs kopieren.
Beim Updaten wird es in Zukunft auch einfacher. Ich vermute mal, dass eine Zahl ändern in einer YAML-Datei wesentlich schneller geht als das Update des XAMPP. Wenn ich die Struktur clever gestalte, dann ist es sogar möglich alle Projekte weiterhin in einem Ordner abzulegen und alle Container auf diese zugreifen zu lassen. Ebenso kann ich dann die lokalen HOST-Einträge für alle Container verwenden.
Die YAML-Files lassen sich in GIT-Versionieren und so kann ich jederzeit auf einem weiteren PC erneut schnell diese Umgebung aufsetzen. Sollte ein neuer MSI Der Gaming-Serie Einzug halten, dann wäre dieser Punkt schneller erledigt als mit XAMPP.
Im Vergleich mit XAMPP werde ich wahrscheinlich keine Performance-Verbesserung sehen können. Jedoch im Gegensatz zu virtualisierten Systemen mit VirtualBox oder einem anderen Tool, wird Docker ebenfalls die Nase vor haben.
Swarm oder Kubernetes, die eine Orchestrierung der Container ermöglichen, werde ich jetzt hier eher weniger benötigen. Jedenfalls nicht im großen Stil.
Fazit: Auf zu neuen Ufern – auf zu Docker
Das klingt nach jeder Menge Vorteile für Docker. Aus Erfahrung weiß ich, dass Docker diese halten wird. Wie sieht jetzt also das Wochenende aus?
- Backup der Daten & Konfigurationsfiles inkl. XAMPP-Ordner, DeInstallation von XAMPPP
- Installation von Docker unter Windows 10 Pro
- Einrichtung der neuen Entwicklungsumgebung mit nginx- & Apache-Servern
- Tools zum Management von Docker-Containern