Upload
netzkollektiv
View
1.234
Download
2
Embed Size (px)
DESCRIPTION
Die Magento Core API erfreut sich einer großen Beliebheit unter den zahlreichen Schnittstellen-Entwicklern. Aber sie wird auch genau lange als zu langsam kritisiert. In diesem Vortrag soll mit dem Vorurteil aufgeräumt werden und gezeigt werden wie sich auch mit der Magento API annehmbare Ergebnisse erzielen lassen. Es werden sowohl serverseitige als auch clienttseitige Optimierungsmaßnahmen vorgestellt und im Anschluss diskutiert.
Citation preview
Magento APIperformant nutzenMeet Magento #4.10Dominik Krebs
_Vorstellung NETZKOLLEKTIV_Performance der Magento API_Best Practices zur Optimierung_Fallbeispiel
Themen
E-Commerce Lösungen auf hohem Niveau
E-Commerce
www.skidress.de
SyncAnt &Magento APINutzung seit mehr als zwei Jahren
www.syncant.de
Core API ExtensionErweiterung seit über einem Jahr
Magento API
Google Suche nach »Magento API«
_ mit einem Server gleicher Leistung ist Magento langsam_ Magento benötigt mehr Performance als prozedural programmiertes Shop-System (vgl. XT-Commerce)_ Flexibilität & Wartbarkeit wird durch Performance-Hunger erkauft
Magento API= langsam?
_ Datenbank_ Application-Server_ Verbindungsgeschwindigkeit
Flaschenhälse
_ Flexibilität kostet Leistung_ Entity-Attribute-Value Model _ verteilte Datenbanktabellen _ keine vollständige Ausnutzung der Datenbank- performance _ Datenbanken sind optimiert auf Tabellen mit Attributen _ Joins kosten Arbeitsspeicher
Warum ist Magento langsam?
Best Practices zur performantenVerwendung
API optimiert
1_ Magento richtig konfigurieren2_ Application-Server optimieren3_ Datenbank-Server optimieren4_ Verbindungsgeschwindigkeit überprüfen5_ Anfragen reduzieren6_ Optimierte Methoden verwenden
6 Punkte Plan
_ Caches aktivieren_ (Magento Compiler verwenden)
1_Magentorichtigkonfigurieren
_ Bytecode-Cache verwenden _ Alternative PHP-Cache _ X-Cache _ Zend Optimizer_ Memcached verwenden_ nur benötigte Apache-Module_ nur benötigte PHP-Module laden_ keep-alive verwenden
2_Application-Serveroptimieren
_ query_cache_size_ query_cache_limit_ innodb_buffer_pool_size_ table_cache
3_Datenbank-Serveroptimieren
_ Webservice über XML bedeutet Overhead_ Bilder übertragen über DSL?_ jede Anfrage benötigt zusätzliche Zeit
4_Verbindungs-geschwindigkeit überprüfen
_ je weniger Anfragen, desto weniger Zeitaufwand_ mittels Hash erkennen was sich verändert hat_ nur veränderte Daten aktualisieren_ Anfragen cachen - soweit möglich (lesende Anfragen)_ Methodensignaturen cachen (system.methodSignature)_ Multi-Calls verwenden
5_Anfragenreduzieren
5_Anfragenreduzieren
_ optimierte Methoden führen mehrere Aktionen auf einmal durch_ ähnlich Multi-Call_ weniger XML-Daten - weniger Overhead
6_optimierte Methodenverwenden
_ catalog_product.delete(array(1,2,3,4,5)) statt _ catalog_product.delete(1) _ catalog_product.delete(2) _ ...
6_optimierte Methodenverwenden
Verwendung der Magento API bei SyncAnt
Fallbeispiel
_ Abgleich der JTL WaWi mit Magento_ konsequente Verwendung der API_ Entstehung der Magento Core API Extension
SyncAnt
_ Synchronisation von bis zu 10.000 Artikeln_ bei täglichem Abgleich_ unidirektional (von JTL nach Magento)_ Dauer - je nach Änderungsvolumen - zwischen einer und zehn Stunden
SyncAnt
_ Erfahrungen_ Fragen_ Anregungen
Diskussion