Offtopic | Systemupgrade für Docker Entwicklung

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.