Facebook
Twitter
Google+
Kommentare
13

Magento – Erfahrungsbericht

media_logo1

Da momentan, meiner Meinung nach, ein Hype um Magento besteht wollte ich kurz einen Erfahrungsbericht zu dem Shopsystem schreiben. Im Januar 2008 habe ich meinen Arbeitgeber gewechselt, der Neue wollte von eine alten Lösung (Perl, Online Katalog) auf ein neues modernes System wechseln. Zu diesem Zeitpunkt war die Seite schon sehr gut besucht, so das man ungefähr abschätzen konnte wie viele Besucher Magento mindestes beliefern sollte. Entschieden haben wir uns also für Magento, zu seiner Zeit als Beta vorhanden. Dies war natürlich ein Risiko und sollte sich leider auch halb bewahrheiten. Als Programmierer versucht man natürlich schnell eine Schnittstelle zu schaffen um die Produkte erstmal in den Shop zu bekommen. Entweder man schreibt direkt in die Datenbank (Nachteil: man muss das ganze System erstmal verstanden haben) oder man nutzt eine Schnittstelle. Magento hat eine nette Schnittstelle die man hätte benutzen können.

Diese war jedoch sehr langsam (ca. 1 Produkt/sec) und somit für uns mit damaligen 85.000 Produkten unbrauchbar. Die Probleme begannen also: Bei fast jeder neuen Version die Magento herausbrachte, wurde die Datenbankstruktur verändert. Was natürlich Probleme darstellt, da man bei jeder Version sein Importscript anpassen musste.

Nun muss man sich vorstellen, nach 2 Tagen hat man die Produkte endlich im Shop und testet ein bisschen die Suche und die Navigation. Dann kam der erste Schock, die Suche dauert über 3 Minuten!!! Ich wusste nicht ob ich lachen oder weinen sollte. Zu diesem Zeitpunkt lief Magento auf meinem Macbook (2 Ghz, 4 GB Arbeitsspeicher). Wir haben also einen Webserver mit Quad Core mit 8 GB RAM und Debian als Betriebssystem eingerichtet. Danach flott Magento darauf kopiert und die Datenbank eingespielt.

Man muss nun dazu sagen, dass die Suche nur 2 Minuten gedauert hat was auch nicht wirklich besser war. Ich meldete mich mit meinen Performanceproblemen im Forum, dort jedoch wollte man nicht wirklich auf uns hören. Es wurde uns immer nur gesagt das Magento eher Enterprise ist und wenn man so viele Produkte hat „ordentliche“ Server braucht. Ups ?!? Ordentliche Server? Viele Produkte? Wir fanden die Antwort von Varien nicht wirklich hilfreich und optimierten und spielten etwas mit der MySQL udn APC konfiguration rum.

Alles im allem konnten wir noch gute 10 Sec. bei der Suche rausholen. Wir sind nun im März angelangt wo Varien Magento 1.0 freigeben wollte. Wir konnten das ganze nicht glauben, weil es doch noch recht viele Fehler und Bremsen gab. Dennoch wurde Magento mit den Problemen freigegeben und schon rannten alle in die oben genannten Performanceprobleme.

Diese bekamen dann alle nett gesagt das man für den Shop halt bisschen mehr braucht als nur ein Webpaket bei Anbieter XY. Ich denke im März hat Varien endlich verstanden, dass Sie etwas mit der Datenbank machen müssen, da diese alles andere als performant war. Wenn man sich die Datenbank von Magento anschaut, sieht man sofort den Lösungsansatz der gewählt wurde.

Es sind einfach flache Tabellen dazugekommen die damit blablubb_index heißen. Um diese zu füllen benutzt Magento Cronjobs. Natürlich lief die Suche dann schneller und besser, aber nun hat man die Daten praktisch dreifach in der Datenbank. Einmal in der Index Tabelle, dann in der Fulltext und dann natürlich in product_text,product_varchar,product_int…

Da kommt dem Leser die Frage auf wieso wir dieses Shopsystem trotzdem nutzen. Zum einen ist das Erweitern des Shops meist sehr schnell möglich (basiert auf Zend Framework), die Performance konnte man mit eigenen Scriptänderungen erhöhen, sodass die Suche nun wirklich nur 2-3 Sek. dauert. Zudem haben wir es geschafft das die Produkte aus unserer internen Datenbank mit Replication und ein paar Cronjobs immer aktuell sind (im 5 Minuten Takt). Mittlerweile hat unser Shop fast 200.000 Produkte und läuft immer noch sehr flott.

Ich könnte hier noch einiges über Themes und die Layer Navigation von Magento schreiben, jedoch würde das wohl den Rahmen sprengen. Wenn das in den Kommentaren gewünscht wird, kann ich dazu gerne einen neuen Beitrag schreiben.

Varien ist übrigens die Firma die hinter Magento steht. Varien verdient am Magento Support und bietet Bronze,Silber,Gold Mitgliedschaften und Zertifizierungen an.

Über den Autor

Damian Luszczymak

Kommentare

13 Comments

  1. hallo,

    freut mich zu hören das auch du mit magento kämpfst.
    wir wollen demnächst auch live gehen, allerdings nicht mit 80.000 bzw. 200.000 Produkten, bei uns sind es nicht mal 10.000.

    hättest du eine URL wo man sich das mal anschauen kann?

    grüße

    Reply
  2. Also als Entwickler, der schon lange mit dem Zf arbeitet muss man aber auch dazu sagen, was die Zf-Nutzung von Magento betrifft wirkt es eher wie eine Flickenschusterei, es scheint, ich persönlich denke dass man Magento erst auf einem eigenen Framework entwicklet hatte und dann um „Enterprise-Ready“ zu sein als starken Grund auf das Zend Framework switchte (der Name Zend macht sich ja immer gut).
    Anders kann ich mir die Architektur nicht erklären, es ist an sovielen Stellen vorbei an dem Sinn oder wie man das Zf nutzt, wie es mitlerweile aussieht weiß ich nicht, aber zu den Beta-Versionen erweckte es noch genau den Eindruck.

    Reply
  3. Schön hier einen Erfahrungsbericht mit Magento zu lesen. Ich bin von den Features und der sauberen und durchdachten Oberfläche sehr begeistert, bin aber immernoch von dem mächtigen Backend abgeschreckt. Es braucht schon eine gewisse Einarbeitungszeit einigermaßen ordentliche Module entwickeln zu können.

    Die Probleme mit der Performance waren schon seit Anfang an ein Contra. Bin gespannt was da in den nächsten Releases noch verbessert wird.

    Grüße
    Tobi

    Reply
  4. @Tobias: das sehe ich jetzt auch noch so 🙁
    @Stephan Hochdoerfer: danke, sehr interessante Folien

    Ich hätte da noch paar andere Sachen im petto, evtl. kommen noch paar andere kleinere
    Magentoberichte 😉

    Reply
  5. Hallo zusammen,

    alternativ kann ich OXID v4 empfehlen. Unter den PHP-basierten
    Shops wohl auch aus Entwicklersicht durchaus deutlich zu bevorzugen (in
    der neuen Version V4). Gibt es seit einiger Zeit ja auch als
    kostenlose OpenSource Variante.

    Grüße, Björn.

    Disclosure: wir sind OXID Premium Solution Partner.

    Reply
  6. Folgende Fragen habe ich mir beim Lesen gestellt:
    – Warum entscheidet eine Firma Beta-Software für einen geschäftskritischen Bereich zu verwenden? Ich geh auch mal davon aus, dass zum damaligen Zeitpunkt noch kein Releasedatum bekannt war
    – Warum habt ihr für die Suche nicht einen Patch geschrieben, den ihr committet habt? Immerhin ist das ganze Open Source. Vor allem ist es nicht so schwer einen vernünftigen Suchalgorithmus zu schreiben, der auch noch performant ist. Alternativ hätte man die Suche doch auch in Lucene oder Sphinx auslagern können
    – Gab es vor der Entscheidung Magento zu verwenden eine Evaluierungsphase?

    Reply
  7. Klar war in der Zeit erst die Beta raus. Wir hatten auch nicht vor mit eine Beta an den Start zu gehen. Das Releasedatum war aber zu der Zeit schon bekannt. Die Suche ist ein Problem für sich, da hätte man kein Patch machen können da die SQL Queries einfach mist wahren. Die hatten wir optimiert aber dennoch wegen der Datenbankstruktur war das Ding langsam. Nun hat einfach Magento Flattables und index tabellen eingeführt, was dann natürlich schneller geht.
    „Alternativ hätte man die Suche doch auch in Lucene oder Sphinx auslagern können“. Stimme ich dir voll zu, leider war und ist das Wissen nicht so tief das ich mir das zugetraut habe. Ein Kollege hatte es jedoch implementiert und war zufrieden. Nur wir brauchen halt auch noch zusätzlich die Layer Navigation, die wäre meines bisschen Wissens mit Lucene nicht möglich gewesen.

    Wie schon gesagt, zu der Zeit war leider OXID nicht Open Source und andere Systeme waren auch noch in Entwicklung. Wir haben halt die Entscheidung gemeinsam getroffen. Nachdem Magento Final rausgekommen ist, sind auch mehrere andere Shopsysteme nach und nach auf den Markt gekommen.

    Hoffe ich konnte deine Punkte klar Begründen, wenn nicht kannste mich nochmal anschreiben 😉

    Reply
  8. Hallo,

    “Alternativ hätte man die Suche doch auch in Lucene oder Sphinx auslagern können”.

    ja das ist wohl war, ich war auch ein wenig enttäuscht, ich dachte die neue Suche würde mittels Zend-Framework (Magento nutzt es ja überall), implementiert.

    Leider nicht, aber derartige Probleme mit der Performance kann ich nicht bestätigen bei der Suche, heute hat es ja einen „Suchindex“ denn man getrennt aufbauen kann unter SYSTEM -> Cache, das denke ich hat einen Geschwindigkeitszuwachs gebracht.

    Auch der neue Flat-Catalog in Magento 1.3 hilft auch die Performance zu steigern.

    Magento wird immer besser und schneller und bietet wirklich schon eine Menge Extensions 🙂

    Reply
  9. Danke für den interessanten Bericht.
    Er macht doch deutlich, wie wichtig eine Evaluierungsphase ist -gerade bei Produkten, die als „Beta“ gekennzeichnet sind. Ansonsten läuft man schnell Gefahr, in die falsche Richtung zu laufen. Aus meiner Sicht ist das tatsächlich hier geschehen:
    Es wäre vermutlich empfehlenswert gewesen, schon bei der Entdeckung der langsamen Schnittstelle darüber nachzudenken, ein anderes Produkt in Betracht zu ziehen – oder aber dem Problem genauer auf den Grund zu gehen. So habt ihr Zeit verschwendet, indem ihr die Datenbank analysiert habt, seid dann noch auf der ebenfalls DB-basierten Suche auf die Schnute gefallen und habt noch eine instabile Schnittstelle aus Eurem Produktkatalog zu Magento. Auf Updates von Magento seid ihr hingegen angewiesen, um die Produktschwächen auszugleichen, aber genau hier wird es wohl früher oder später dazu führen, dass sich die DB-Strukturen ändern, und dann kann der Importer wieder neu geschrieben werden.
    Was für ein Aufwand.
    Zugegeben – auch APIs ändern sich. Doch das wird ein (guter) Hersteller frühzeitig ankündigen (etwa indem er Methoden als deprecated kennzeichnet) oder durch ein neues Major Release gezielt umstellen.

    Reply
  10. ich habe auch schon einige projekte mittels magento realisiert, finde jedoch den oxid shop deutlich besser implementiert.

    ich habe oft das gefühl bei magento, die entwickler hätten teilweise klassen oder komplette parts neu implementiert, weil sie die übersicht über magento selber verloren haben.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen