Magento Core API performant nutzen

Preview:

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

Recommended