PHP Usergroup Berlin

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
相关话题: #zalando
1. PHP Usergroup Berlin 6. April 2010 Ein Leben mit und ohne Magento
2. Wer wir sind ... Volker Pilz (Zalando) Daniel Nowak (Rocket Internet) xing.com/profle/Volker_Pilz xing.com/profle/Daniel_Nowak Senior Software Developer Senior Software Developer Davor: VZ Netzwerke Ltd. Davor: Captain Ad, Infopark Zalando 6.4.2010 Folie 2 von 28
3. Zalando ● Gegründet im Oktober 2008 ● Sitz in Berlin, Zinnowitzer Straße 1 ● ca. 10.000 verschiedene Artikel ● ca. 160 Mitarbeiter ● Davon ca. 23 in der Software-Entwicklung ● Zalando Shop basierend auf Magento Community Edition, Zalando Lounge basierend auf Magento Enterprise Edition Zalando 6.4.2010 Folie 3 von 28
4. Grundproblem Zalando 6.4.2010 Folie 4 von 28
5. Typical Magento Scaling ● Zu Beginn meist 1 Server: WS+DBS auf einer Maschine ● Dann 1 WS + 1 DBS ● WS++ ● DBS: Master-Slave Replikation ● Event. Server für: Memcache, Static, Squid, Mail, Administration Zalando 6.4.2010 Folie 5 von 28
6. Aktuelles Zalando Setup ● 14 Webserver ● 1 DB-Master + 7 DB-Slaves ● 4 Memcache Server ● 2 Service Server ● 3 Squid Server ● 2 Solr/Lucene Server ● 2 Admin Server ∑ 35 Server Zalando 6.4.2010 Folie 6 von 28
7. Herausforderung Scaling from this ... … to this Zalando 6.4.2010 Folie 7 von 28
8. Grundlegendes über Magento ● Entwickelt von Varien Inc. (L.A.) ● Version 1.0 vom 31.3.2008 ● Aktuell: Version 1.4.x (seit Februar 2010) ● Best New Open Source Project 2008 ● magentocommerce.com ● Ca. 1.500 Extensions auf Magento Connect Zalando 6.4.2010 Folie 8 von 28
9. Vorteile von Magento ● Aktuelle State-of-the-art Features ● Open Source Software ● Starke Community - CAB (Community Advisory Board), Meet Magento, Foren usw. ● Mächtiges Backend ● Flexibilität & Erweiterbarkeit ● Extensions mit Magento Connect ● Zend Framework Zalando 6.4.2010 Folie 9 von 28
10. Nachteile von Magento ● ● ● ● Keine UnitTests (auch nicht bei wichtigen Komponenten) Schlechte Dokumentation (dementsprechend fache Lernkurve für Neueinsteiger) Hardwarehungrig und teilweise schlechte Performance Teure Enterprise-Version mit nützlichen Features Zalando 6.4.2010 Folie 10 von 28
11. Magento Performance ● ● ● ● ● EAV (Entity-Attribute-Value) Prinzip ist langsam => Gegenmaßnahme: Flat Tables Exzessive Instanziierung von Objekten Teilweise verworrene Programmabläufe und viel „Magic“ Vor allem bei Admin-Operationen wird lesend auf den Master zugegriffen Filterung/Suche generiert komplexe Queries Zalando 6.4.2010 Folie 11 von 28
12. Projekt: Booster ● ● ● ● Ziel: Schnelle Antwortzeiten bei gleichzeitiger Reduzierung der Last auf den Web- und Datenbank-Servern Umsetzungszeit Phase 1 (ohne Volltext-Suche): 2 Wochen Umsetzungszeit Phase 2 (mit Volltext-Suche): 1 Woche 4 Software-Entwickler Zalando 6.4.2010 Folie 12 von 28
13. Zalando 6.4.2010 Folie 13 von 28
14. Cache Marker ● ● ● Post-Processing mit Markern preg_replace_call back Datenbasis: Session, Cookies usw. Zalando 6.4.2010 Folie 14 von 28
15. Warum Solr/Lucene? ● Performanz ● Facetten-Suche ● Sprachunabhängigkeit ● Business-erprobt in großen Szenarien ● Fähigkeit zur Replikation / Skalierbarkeit ● OpenSource Zalando 6.4.2010 Folie 15 von 28
16. Herausforderungen 1.Import der Daten 2.Anbindung an PHP 3.Loadbalancing / Failover 4.Zeitnahe Updates 5.Facetten 6.Volltext-Suche Zalando 6.4.2010 Folie 16 von 28
17. 1. Import der Daten ● ● Daten-Chaos in Magento ● Sortierung ● Produktanzeige ● Redundante und fehlerhafte Daten Lösung: Verwendung des magento-eigenen Flat-Table-Cache Zalando 6.4.2010 Folie 17 von 28
18. 2. Anbindung an PHP ● ● ● ● solr-php-client http://code.google.com/p/solr-php-client/ Eigener Service-Wrapper Alternative: PECL-Extension http://pecl.php.net/package/solr JSON als Austauschformat (nicht XML oder serialisierte PHP-Objekte) Zalando 6.4.2010 Folie 18 von 28
19. 3. Loadbalancing / Failover ● 2 Solr-Server (1x Master, 1x Slave) ● Replikation (20 sec) ● ● ● Failover und Loadbalancing übernimmt PHP- Client Tipp 1: Schema sollte von Anfang an mit repliziert werden Tipp 2: rand-Funktion durch mt_rand ersetzen im Balancer Zalando 6.4.2010 Folie 19 von 28
20. 4. Zeitnahe Updates ● Minütliche inkrementelle Updates ● Relevant für Warenbestand ● ● ● Events von Magento lösen Eintrag in Update- Queue aus Stündlicher Import der Gesamtdaten Solr schreibt beim Update den kompletten Eintrag für ein Produkt neu Zalando 6.4.2010 Folie 20 von 28
21. 5. Facetten ● ● ● Solr-Standard-Feature Super-performant … &facet=true&facet.field=color Zalando 6.4.2010 Folie 21 von 28
22. 6. Volltext-Suche ● ● Suggestions Gewichtung der einzelnen Felder zueinander (Farbe, Saison, Name, Beschreibung, …) ● Vertipper ( „Marc o'Polo“) ● Sortierung der Suchergebnisse Zalando 6.4.2010 Folie 22 von 28
23. Solr bei Zalando ● ca. 16 MB Indexgröße zu 15-16 GB Magento- Datenbank ● ca. 10.000 Produkte ● 17 Felder ● 8 Facetten ● 8 Felder für Freitext-Suche ● Index-Aufbau: < 4 sec ● Durchschnittliche Antwortzeit: 20 ms Zalando 6.4.2010 Folie 23 von 28
24. Performance: Grundlagen ● ● ● Durchführung verschiedenster Last-Tests ● Volltext-Suche ● Feld-Suche ● Mit / ohne Filter, Sortierung usw. Test-Tool: JMeter http://jakarta.apache.org/jmeter Setup: 1 DB-Server, 1 Web-Server, 1 Solr- Server, 1 Last-Test-Server Zalando 6.4.2010 Folie 24 von 28
25. Performance: Ergebnis ● Limitierender Faktor: Web-Server ● ca. 120 req/s ● Antwortzeiten unter 150 ms bei Feld-Suchen ● Unter 300 ms bei Volltext-Suchen ● ● Last auf dem Solr-Server: 1 CPU-Kern ausgelastet (von 16 Kernen) Ergebnis: Verhältnis Web-Server : Solr-Server in etwa 16:1 Zalando 6.4.2010 Folie 25 von 28
26. Performance Optimierungen ● ● Magento interner Cache (Konfguration, Layout, CMS-Blöcke usw.) MySQL Query Cache ================================== ● loadCached-Methode bei Produkten (relevant z.B. für Warenkorb, Checkout) ● Zalando Frontend Cache ● Zalando Booster Zalando 6.4.2010 Folie 26 von 28
27. Ergebnisse ● Reduzierung der Db-Server-Last auf ca. 5% ● Reduzierung der Webserver-Last um ca. 50% ● Lastspitzen können besser abgefangen werden ● Flexiblere Möglichkeiten bei Suche/Filterung ● Aber: höher Aufwand bei Layout-Änderungen, neuen Produkt-Attributen, Such-Filtern, neuen oder veränderten Kategorien usw. Zalando 6.4.2010 Folie 27 von 28
28. Danke Q & A Bei weiteren Fragen gerne per Mail an: volker.pilz@zalando.de oder daniel.nowak@rocket-internet.de Zalando 6.4.2010 Folie 28 von 28

首页 - Wiki
Copyright © 2011-2025 iteam. Current version is 2.142.1. UTC+08:00, 2025-04-03 04:49
浙ICP备14020137号-1 $访客地图$