DLR veröffentlicht Open Source Library
Während die Welt über den Teich schaut wie die Nasa ein Portal veröffentlicht um ihre Open Source Aktivitäten zu bündeln und zu beschleunigen, stecken in Europa Bestrebungen, die öffentlich finanzierte Forschung und Softwareentwicklung als Open Source veröffentlichen noch in den Kinderschuhen.
Dabei ist klar an sich sonnenklar, Software, die wir durch unsere Steuergelder bezahlt haben, sollten wir auch nutzen können. Auch sollten wir nicht für das selbe Problem nochmal die Entwicklung bezahlen, nur weil die Software von einer anderen Behörde oder öffentlichen Einrichtung genutzt wird. Open Source Software ist unseres Erachtens nicht nur der beste, sondern sogar der einzige Lösungsweg.
Wo wir mit der NASA schon bei der Luft- und Raumfahrt waren, können wir zeigen, das sich dort langsam aber sicher auch etwas bei uns bewegt. Sicherlich ist das nicht das erste Open Source Projekt, aber der Mitarbeiter Roland Winkler vom Institut für Flugführung beim DLR Deutsches Zentrum für Luft- und Raumfahrt e.V. hat seine DataMining Java Library unter einer BSD Lizenz auf Github veröffentlicht.
Auch wenn das DLR selbst nicht zu unseren Kunden zählt, konnten wir im vorliegenden Fall Herrn Winkler -hoffentlich wertvolle- Tipps geben, wie man eine geeignete Open-Source-Lizenz auswählt und welche Rahmenbedingungen dabei zu beachten sind. Des weiteren konnten wir ihn über die Möglichkeiten und Risiken einer umfassenden Open-Source-Strategie beraten. Wir teilen gerne unser Wissen über Open-Source-Strategien. Wenn Sie also wissen wollen, wie Sie ihr Softwareprodukt mit einer Open-Source Strategie erfolgreich machen, melden Sie sich einfach bei uns.
Über Markus Schneider
Markus Schneider ist Experte für Shop- und ERP-Systeme. Er betreut mehrere eCommerce Kunden welche Magento oder Oxid eSales einsetzten. Dabei integriert er nicht nur CMS Systeme wie Joomla, TYPO3 oder WordPress in ihren Shop, sondern beschäftigt sich auch mit dem Einsatz von Warenwirtschaft und deren Prozesse, dabei greift er auf gesammelte Erfahrung von unterschiedlichen System von OpenERP, über Sage bis hin zu SAP zurück.
Magento meets Actindo ERP — Konnektorprobleme
Einer unser Kunden nutzt den kostenlosen Actindo ERP Konnektor und hatte in den letzten Tagen Probleme seine Produkte mit dem Magentoshop abzugleichen. Es klappte bis zu diesem Zeitpunkt problemlos. Nachdem die Artikelanzahl in den letzten paar Monaten auf mehrere Tausend gestiegen war, funktionierte der Abgleich plötzlich nicht mehr.
Es stellte sich nach Auswertung eines Netzwerkdumps heraus, dass die Shopseite eine Anfrage über den XMLRPC-Server erhält, aber nie auf den Request antwortet. Als das Zeit- und Speicherlimit für PHP, die üblichen Verdächtigen in solchen Fällen, ausgeschlossen waren, sahen wir, dass der Konnektor suboptimale Anfragen an die Datenbank stellt und diese somit schwer arbeiten musste. Die angefragten 500 Artikel können so nicht rechtzeitig geliefert werden und die Gegenseite bricht den Versuch ab.
Da der Kunde eine schnelle Lösung benötigt, um die neusten Produkte zu synchronisieren, beschränkten wir den Abgleich auf 350 Artikel. Weiterhin unterbreiteten wir ihm den Vorschlag das Problem durch geschicktere Datenbankanfragen und Caching der Ergebnisse komplett aus der Welt zu schaffen um die volle Funktionalität wiederherzustellen.
Falls Sie auch Unterstützung bei der Anbindung eines ERP-Systems an Magento oder der Anpassung am Shop benötigen, nehmen Sie Kontakt mit uns auf und wir helfen Ihnen gerne weiter.
Über Tobias Kalbitz
Tobias Kalbitz ist Experte für Software Architektur, skalierbare Systeme und Hochverfügbarkeit. Seine Erfahrungen in der Optimierung von Software helfen Kunden regelmäßig ihren Softwarestack und Hardwareressourcen zu konsolidieren.
Magento Performanceoptimierung
tl;dr: Seite laden: 16s -> 4.5s , TTFB: 4.5s -> 2.5s, Datenmenge: 1.1MB -> 0.59MB, PageSpeed: 75% -> 93%
Einer unserer Kunden kam mit dem Wunsch auf uns zu, seinen Magentoshop zu beschleunigen. Es ist ein relativ neuer Shop, der noch am Anfang seiner Entwicklung steht. Das Hosting übernimmt ein vServer, für den der Kunde auch root-Zugang hat. Unsere ersten Schritte bestanden in einer Ist-Analyse gefolgt von einer Soll-Definition. Der Kunde wählte dafür eine für Ihn repräsentative Seite aus.
Für die Untersuchung der Seite boten sich die Webseiten GTmetrix und WebPagetest an. GTmetrix fasst die Ergebnisse von YSlow und Google PageSpeed zusammen und als Bonus speichert es alte Messungen zum Vergleich der verschiedenen Optimierungen. Die Seite WebPagetest überzeugt mit aussagekräftigen Wasserfall und Verbindungsdiagrammen.
Bei der Analyse zeigte sich, dass das Rendern der Seite mehr als 15 Sekunden benötigt und diese Seite mehr als 1.1 MB an initialen Daten benötigt. Als Ziel setzte der Kunde 6 Sekunden zum Rendern der Seite. Das sahen wir auch als realistisch an.
Im Wasserfalldiagramm stellt sich die TTFB (Time To First Byte) als größter Posten dar und dort begannen wir auch mit unserer Arbeit. Nach eingehender Analyse der momentanen Systems zeigte sich auf PHP-Seite, dass der APC Bytecode Cache mit 12MB zu klein dimensioniert war und PHP per FCGI eingebunden ist.
Der kleine Cache sorgte für eine schnelle Verdrängung von Cacheeinträgen. Dies führt zu einer Hit / Miss Rate von 20 / 80. Da jeder FCGI Prozess seinen eigenen Bytecode Cache benötigt, wird bei der Nutzung von APC für den Magento Cache zusätzlicher Platz benötigt. Wir splitteten den Mangento Cache und Bytecode Cache in zwei verschiedene Systeme. Der APC-Cache ist mit 128MB bemessen und sorgt für das Cachen des Bytecodes. Der Magento Cache wird jetzt durch einen Memcached-Server mit 256MB übernommen. Durch diese Maßnahme kann der Kunde später durch neue Server horizontal skalieren und hat einen gemeinsamen Cache für alle Instanzen. Die TTFB war damit bei einem Drittel der ursprünglichen Zeit und die Hit- / Missrate für den APC- und Bytecode-Cache bei 99/1.
Die Begutachtung des Seiten-HTML-Codes förderte zu Tage, das Boxen mit aktuellen Angebote per iframe eingebunden wurden. Dies sorgte beim Laden der Seite für ein ständiges Neurendern und verzögerte den subjektiven Seitenaufbau. Die diversen iframes konsolidierten wir zu einem einzigen, der bereits von Magento an der richten Stelle im Template eingebunden wird.
Die Verbindungsanalyse von GTmetrix zeigte, das viele Bilder/CSS/JS Dateien sequenziell geladen werden müssen und nur eine begrenzte Anzahl von Verbindungen zum Server aufgebaut werden. Dies lösten wir durch Aktivieren von HTTP-Pipelining im Apacheserver und Aufteilung der js, media und skin Verzeichnisse auf verschiedene vHosts. Beispielhaft nachzulesen ist das in einem Blogeintrag zum Thema Hostplitting.
Als letztes widmeten wir uns dem Thema Trafficreduzierung. Dazu ließen wir Magento alle CSS- und JS-Dateien jeweils in eine Datei zusammenfassen und diese mit einem CSS- und JS-Minifier weiter komprimieren, die Produktbilder von Magento auf die korrekte Größe skalieren.
Weiterhin verkleinerten wir die Bilder ohne Qualitätseinbußen durch das Tool in Googles Pagespeed. Die GZip-Kompression aller textuellen Ressourcen und das Setzen eines Expires-Headers durch den Apache Server brachte noch einmal einen deutliche Geschwindigkeitssteigerung und Trafficreduzierung bei weiteren Zugriffen auf die Seite.
Desweiteren setzten wir alle einfach zu erreichenden Vorschläge von YSlow und Googles Pagerank um.
Das Ergebnis der Mühe ist ein Shop, der in 4.5 Sekunden lädt. Der benötigte Traffic für die Seite sank dabei von 1.1MB auf 590KB. Das YSlow-Ranking wuchs von 67% auf 80% und das PageSpeed-Ranking von 75% auf 93%.
Wir legten dem Kunden dar, dass er die Ladezeit von 4.5s weiter reduzieren könnte, da dort 2.5s als TTFB enthalten sind. Dies könnte er durch geschicktes Caching mittels eines Reverse Proxy wie beispielsweise Varnish erreichen. Das Laden des statischen Contents könnte weiterhin auch durch einen leichtgewichtigeren Webserver wie lighttpd oder nginx noch beschleunigt werden. Der Kunde ist mit dem erreichten Zustand sehr zufrieden und priorisiert momentanen andere Projekte höher.
Falls auch Sie Hilfe bei der Beschleunigung ihres eCommerce Portals benötigen, stehen wir Ihnen gerne mit Rat und Tat zur Seite. Fordern Sie uns ! Wir lieben Herausforderungen. Nehmen Sie einfach über das Kontaktformular mit uns Kontakt auf und wir melden uns bei Ihnen.
Über Tobias Kalbitz
Tobias Kalbitz ist Experte für Software Architektur, skalierbare Systeme und Hochverfügbarkeit. Seine Erfahrungen in der Optimierung von Software helfen Kunden regelmäßig ihren Softwarestack und Hardwareressourcen zu konsolidieren.






