Im Zuge des Relaunch des GO IN – Webshops war die Herausforderung die extreme Variantenvielfalt mit Bildern anzureichern. Allerdings war es nicht möglich, für jede Variante eigene Bilder zu erzeugen, zu speichern und im Web anzuzeigen. Die Idee eines Microservice zur automatischen Bildgenerierung war geboren und wurde sukzessive anhand bestehender Modelle und PSD-Dateien verfolgt.

Die Umsetzung erfolgte über einen Zeitraum von ca. 2 Monaten. Die Ausgangslage war ein Bestand von ca. 150 PSD-Dateien, welche eine Größe von bis zu 3 GB besaßen. Als Framework fiel die Wahl auf Symfony 2 wegen der großen Flexibilität und Aktualität des Frameworks sowie stetiger Weiterentwicklung.

Die PSD-Dateien wurden in einem nächtlichen Job vollständig indexiert und jede Ebene mit ihren Meta-Informationen in einer MySQL-Datenbank erfasst. Nach einer solchen Indexierung war es möglich, über URL-Parameter beliebige Ebenen, aus beliebigen PSD-Dateien performant zusammenzuführen. Dabei wurden die Ebenen in Reihenfolge der Angabe innerhalb der URL sowie eines Regelwerks von GO IN übereinander gelegt.

Mit einem weiteren Job wurden die Ebenen der PSD-Dateien in PNG-Dateien exportiert. Ein weiteres Modul (damit war es ab sofort kein Microservice mehr) sorgte für eine Verteilung der Daten. Dabei war die Herausforderung, dass jede Instanz des Bildkonfigurators API-Client sowie API-Server darstellte. Ich konnte also einen ganzen Baum mit beliebigen Ästen versorgen.

Die Applikation war ausgereift, als verschiedene Performance-Tests erfolgreich waren und Bilder mit bis zu 10 Ebenen in unter 1 Sekunde generiert werden konnten.

Bildkonfigurator
Markiert in: