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

Preview:

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

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

ARNE BLANKERTSTHEPHP.CC

http://thephp.cc

SEBASTIAN HEUERGLOBETROTTER AUSRÜSTUNG

http://sebastianheuer.de

ERSTER AKT

SHOP DB

BROWSER

SYSTEMARCHITEKTUR

ERP PIM

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)

FILTER-QUERIES

SHOP DB

BROWSER

SEARCH

FILTERN ÜBER SUCHMASCHINE

ERP PIM

IDEE: SEITEN CACHEN

ANTWORTEN CACHEN

SHOP DB

BROWSER

SEARCH

CACHE

ERP PIM

PROBLEM: ZU VIELE MÖGLICHE FILTERKONFIGURATIONEN FÜR

SINNVOLLES CACHING

<< REWIND

ZWEITER AKT

NEUER ANSATZ

WIE WIRD DIE SEITE SCHNELL?

KURZE ANTWORTZEITEN

ARBEIT VERMEIDEN

WIE WERDEN DIE ANTWORTZEITEN KURZ?

ERKENNTNIS:

ECHTE ARBEIT MUSS WOANDERS PASSIEREN

UND WAS IST MIT DEM REST?

WELCHE ARBEIT ERFOLGT IM REQUEST?

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

• ARTIKELSTAMMDATEN • ARTIKELBEWERTUNGEN • BESTÄNDE • PREISE

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

• HTML-AUSGABE

• ARTIKELSTAMMDATEN • ARTIKELBEWERTUNGEN • BESTÄNDE • PREISE

• HTML-AUSGABE!=

WER ERZEUGT DIE HTML-AUSGABE?

WILLKOMMEN BEIM REST

WENN SICH ARTIKELDATEN ÄNDERN

WANN ERZEUGEN WIR DIE HTML-AUSGABE?

WANN ÄNDERN SICH ARTIKELDATEN?

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

WIE ERZEUGEN WIR DIE HTML-AUSGABE?

Snippetlist_item_100561

Snippet

Snippet

Snippetlist_item_103541

Snippet

Snippet

Snippetlist_item_108112

Snippet

Snippet

Snippetlist_item_204936

Snippet

Snippet

Snippet Snippet Snippet Snippet

WAS HEIßT DAS FÜR UNSERE SYSTEMARCHITEKTUR?

ALTE, ZENTRALISTISCHE ARCHITEKTUR

SHOP DB

ERP PIM

BROWSER

SEARCH

NEUE ARTIKELDATEN

KEY/VALUE STORAGESEARCH

BACKEND

ERP PIM

EINGEHENDER REQUEST

FRONTEND

KEY/VALUE STORAGESEARCH

BROWSER

BACKEND

ERP PIM

FRONTEND

KEY/VALUE STORAGESEARCH

BACKEND

NEUE, VERTEILTE ARCHITEKTURBROWSER

ERP PIM

ZAHLEN AUS DER PRAXIS

• 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

ERGEBNIS: DIE SEITE IST OHNE CACHES SCHNELL

HAPPY END!

@GLOBETROTTERDEV @BELANUR

@THEPHPCC @ARNEBLANKERTS

Recommended