Aktuell nutze ich ein knapp 3-4 Jahre altes System für meine Entwicklung – welches an sich wunderbar funktioniert, aber ich glaube es wird Zeit für etwas neues. 1.) weil neuer (fast) immer besser ist 😉 und 2.) ich vermute das ich so effizienter entwickeln kann, da ich aktuell für Features und Pluginentwicklung Docker als Staging-Setup nutze. Finden wir also heraus, ob es was bringt und wenn ja, wie viel…
Testcase
Geladen werden sollen ein Traefik Container, ein PHP Container und ein MYSQL Container mit einer Shopware Datenbank (1,6Gbyte).
Altes Setup
CPU: I7-4790 @ 3.60GHz
RAM: 16GB DDR3-1600
SSD: ADATA SP550
OS: Ubuntu 18.04 LTS Kernel Version 4.15.0-65
MYSQL und PHP Container
docker-compose up -d: 29.70 s elapsed 12%CPU
Datenbankimport: 9 Minuten
Traefik
docker-compose up -d: 1.62 s elapsed 9%CPU
Neues Setup
CPU: AMD Ryzen 5 3600 (endlich ist AMD wieder am Start 🙂 )
RAM: 32GB DDR4-3000
SSD: Samsung 970 Evo Plus
OS: Ubuntu 18.04 LTS Kernel Version 4.15.0-65
MYSQL und PHP Container
docker-compose up -d: 10.41 s elapsed 14%CPU
Datenbankimport: 5 Minuten
Traefik
docker-compose up -d: 1.46s elapsed 9%CPU
Ergebnis
Beim „kleinen“ Container von Traefik hat sich kaum etwas getan. Beim up von Mysql und PHP hat sich die Dauer um 2/3 verkürzt und auch beim DB Import ging es wesentlich flotter (von 9 auf 5 Minuten).
32 Gbyte erscheint erstmal viel an Speicher – lädt man aber erstmal mehr als 5-6 Features in getrennte Umgebungen kann es schnell knapp werden. Gerade wenn man noch eine IDE + Chrome etc. laufen hat. Meine 16 GB waren zeitweise schon bei knapp 90%.
Wenn man bedenkt, dass man jeden Tag mind. an 2-3 Features oder Bugfixes arbeitet ist die Ersparnis schon ganz ordentlich. Natürlich braucht man nicht immer eine frische DB mit allen Daten – dafür kann man aber einfach ein Flag einführen und dann muss nur der Container mit dem passenden DB Link hochgefahren werden.