24
Magento API performant nutzen Meet Magento #4.10 Dominik Krebs

Magento Core API performant nutzen

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

Page 1: Magento Core API performant nutzen

Magento APIperformant nutzenMeet Magento #4.10Dominik Krebs

Page 2: Magento Core API performant nutzen

_Vorstellung NETZKOLLEKTIV_Performance der Magento API_Best Practices zur Optimierung_Fallbeispiel

Themen

Page 3: Magento Core API performant nutzen

E-Commerce Lösungen auf hohem Niveau

Page 4: Magento Core API performant nutzen

E-Commerce

www.skidress.de

Page 5: Magento Core API performant nutzen

SyncAnt &Magento APINutzung seit mehr als zwei Jahren

www.syncant.de

Page 6: Magento Core API performant nutzen

Core API ExtensionErweiterung seit über einem Jahr

Page 7: Magento Core API performant nutzen

Magento API

Google Suche nach »Magento API«

Page 8: Magento Core API performant nutzen

_ 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?

Page 9: Magento Core API performant nutzen

_ Datenbank_ Application-Server_ Verbindungsgeschwindigkeit

Flaschenhälse

Page 10: Magento Core API performant nutzen

_ 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?

Page 11: Magento Core API performant nutzen

Best Practices zur performantenVerwendung

API optimiert

Page 12: Magento Core API performant nutzen

1_ Magento richtig konfigurieren2_ Application-Server optimieren3_ Datenbank-Server optimieren4_ Verbindungsgeschwindigkeit überprüfen5_ Anfragen reduzieren6_ Optimierte Methoden verwenden

6 Punkte Plan

Page 13: Magento Core API performant nutzen

_ Caches aktivieren_ (Magento Compiler verwenden)

1_Magentorichtigkonfigurieren

Page 14: Magento Core API performant nutzen

_ 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

Page 15: Magento Core API performant nutzen

_ query_cache_size_ query_cache_limit_ innodb_buffer_pool_size_ table_cache

3_Datenbank-Serveroptimieren

Page 16: Magento Core API performant nutzen

_ Webservice über XML bedeutet Overhead_ Bilder übertragen über DSL?_ jede Anfrage benötigt zusätzliche Zeit

4_Verbindungs-geschwindigkeit überprüfen

Page 17: Magento Core API performant nutzen

_ 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

Page 18: Magento Core API performant nutzen

5_Anfragenreduzieren

Page 19: Magento Core API performant nutzen

_ optimierte Methoden führen mehrere Aktionen auf einmal durch_ ähnlich Multi-Call_ weniger XML-Daten - weniger Overhead

6_optimierte Methodenverwenden

Page 20: Magento Core API performant nutzen

_ catalog_product.delete(array(1,2,3,4,5)) statt _ catalog_product.delete(1) _ catalog_product.delete(2) _ ...

6_optimierte Methodenverwenden

Page 21: Magento Core API performant nutzen

Verwendung der Magento API bei SyncAnt

Fallbeispiel

Page 22: Magento Core API performant nutzen

_ Abgleich der JTL WaWi mit Magento_ konsequente Verwendung der API_ Entstehung der Magento Core API Extension

SyncAnt

Page 23: Magento Core API performant nutzen

_ 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

Page 24: Magento Core API performant nutzen

_ Erfahrungen_ Fragen_ Anregungen

Diskussion