49
ARNE BLANKERTS SEBASTIAN HEUER “Die Performance steigern wir dann später durch Caching?” BASED ON A TRUE STORY PRESENTED IN FULL HD BY THEPHP.CC AND GLOBETROTTER AUSRUESTUNG BASED ON THE EXPERIENCE OF ARNE BLANKERTS, STEFAN PRIEBSCH, SEBASTIAN BERGMANN AND SEBASTIAN HEUER PERFORMANCE DA TA TAKEN FROM GLOBETROTTER.DE GRAPHS PROVIDED BY METAWAYS INFOSYSTEMS PREMIERING AT CODE.TALKS 2014 IN HAMBURG

"Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

Embed Size (px)

DESCRIPTION

Webseiten müssen schnell sein, denn die Bereitschaft, auf das Laden einer Webseite zu warten, sinkt stetig. Folglich zählt jede Millisekunde, wenn es darum geht, Absprünge zu vermeiden. Egal ob reale Ladezeiten, gefühlte Dauer des Seitenaufbaus oder das Reaktionsverhalten im Browser – es gibt viele Stellen, an denen im Client gemessen und regelmäßig optimiert wird. Tauchen Engpässe hingegen im Backend auf, gilt scheinbar vor allem eine Parole: exzessives Caching! Blöd nur, wenn sich Inhalte so häufig ändern, dass diese Maßnahme praktisch wirkungslos ist. Könnte man doch nur eine Applikation so entwerfen, dass sie ohne Caching hochperformant arbeitet…

Citation preview

Page 1: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ARNE BLANKERTS

SEBASTIAN HEUER

“Die Performance steigern wir dann später durch

Caching?”

BASED ON A TRUE STORY

PRESENTED IN FULL HD BY THEPHP.CC AND GLOBETROTTER AUSRUESTUNG BASED ON THE EXPERIENCE OF ARNE BLANKERTS, STEFAN PRIEBSCH, SEBASTIAN BERGMANN AND SEBASTIAN HEUER PERFORMANCE DA TA TAKEN FROM GLOBETROTTER.DE GRAPHS PROVIDED BY METAWAYS INFOSYSTEMS PREMIERING AT CODE.TALKS 2014 IN HAMBURG

Page 2: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ARNE BLANKERTSTHEPHP.CC

http://thephp.cc

Page 3: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

SEBASTIAN HEUERGLOBETROTTER AUSRÜSTUNG

http://sebastianheuer.de

Page 4: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ERSTER AKT

Page 5: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 6: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

SHOP DB

BROWSER

SYSTEMARCHITEKTUR

ERP PIM

Page 7: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

SHOP

DB

ABFRAGE DER ARTIKELDATEN

Komplexe Queries, da normalisierte Datenhaltung. Furchtbar teuer. Wird immer

on Request gemacht.

SUCHE MIT FILTERN

Dynamisch generierte Query mit diversen Bedingungen für die Filter. Aus Entwicklersicht fehleranfällig. Teuer, schlecht

cachebar (Query Cache)

Page 8: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 9: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

FILTER-QUERIES

Page 10: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 11: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

SHOP DB

BROWSER

SEARCH

FILTERN ÜBER SUCHMASCHINE

ERP PIM

Page 12: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 13: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 14: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 15: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

IDEE: SEITEN CACHEN

Page 16: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ANTWORTEN CACHEN

SHOP DB

BROWSER

SEARCH

CACHE

ERP PIM

Page 17: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

PROBLEM: ZU VIELE MÖGLICHE FILTERKONFIGURATIONEN FÜR

SINNVOLLES CACHING

Page 18: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 19: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 20: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

<< REWIND

Page 21: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ZWEITER AKT

Page 22: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

NEUER ANSATZ

Page 23: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WIE WIRD DIE SEITE SCHNELL?

KURZE ANTWORTZEITEN

Page 24: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ARBEIT VERMEIDEN

WIE WERDEN DIE ANTWORTZEITEN KURZ?

Page 25: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 26: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ERKENNTNIS:

ECHTE ARBEIT MUSS WOANDERS PASSIEREN

Page 27: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

UND WAS IST MIT DEM REST?

WELCHE ARBEIT ERFOLGT IM REQUEST?

Page 28: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WAS BRAUCHEN WIR EIGENTLICH FÜR DIE BEANTWORTUNG EINES REQUESTS?

• ARTIKELSTAMMDATEN • ARTIKELBEWERTUNGEN • BESTÄNDE • PREISE

Page 29: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 30: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WAS BRAUCHEN WIR WIRKLICH FÜR DIE BEANTWORTUNG EINES REQUESTS?

• HTML-AUSGABE

Page 31: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

• ARTIKELSTAMMDATEN • ARTIKELBEWERTUNGEN • BESTÄNDE • PREISE

• HTML-AUSGABE!=

Page 32: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WER ERZEUGT DIE HTML-AUSGABE?

Page 33: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WILLKOMMEN BEIM REST

Page 34: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WENN SICH ARTIKELDATEN ÄNDERN

WANN ERZEUGEN WIR DIE HTML-AUSGABE?

Page 35: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WANN ÄNDERN SICH ARTIKELDATEN?

• NEUE PREISE / BESTÄNDE AUS DEM ERP • REDAKTEUR LÄDT NEUES ARTIKELBILD HOCH • SHOPMANAGER GIBT NEUE ARTIKELBEWERTUNG FREI

Page 36: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WIE ERZEUGEN WIR DIE HTML-AUSGABE?

Page 37: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

Snippetlist_item_100561

Snippet

Snippet

Snippetlist_item_103541

Snippet

Snippet

Snippetlist_item_108112

Snippet

Snippet

Snippetlist_item_204936

Snippet

Snippet

Snippet Snippet Snippet Snippet

Page 38: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

WAS HEIßT DAS FÜR UNSERE SYSTEMARCHITEKTUR?

Page 39: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ALTE, ZENTRALISTISCHE ARCHITEKTUR

SHOP DB

ERP PIM

BROWSER

SEARCH

Page 40: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

NEUE ARTIKELDATEN

KEY/VALUE STORAGESEARCH

BACKEND

ERP PIM

Page 41: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

EINGEHENDER REQUEST

FRONTEND

KEY/VALUE STORAGESEARCH

BROWSER

BACKEND

ERP PIM

Page 42: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

FRONTEND

KEY/VALUE STORAGESEARCH

BACKEND

NEUE, VERTEILTE ARCHITEKTURBROWSER

ERP PIM

Page 43: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ZAHLEN AUS DER PRAXIS

Page 44: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

• DURCHSCHNITTLICH: 32 PI/S (4 X 8 PI/S) • PEAK: 140 PI/S (4 X 35 PI/S) • KEINE AUSWIRKUNG AUF DIE LADEZEITEN • MAX. 5 AKTIVE PROZESSE JE MASCHINE

Page 45: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 46: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014
Page 47: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

ERGEBNIS: DIE SEITE IST OHNE CACHES SCHNELL

Page 48: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

HAPPY END!

Page 49: "Die Performance steigern wir dann später durch Caching?" @ code.talks 2014

@GLOBETROTTERDEV @BELANUR

@THEPHPCC @ARNEBLANKERTS