Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress?...

34
WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener [email protected]

Transcript of Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress?...

Page 1: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

WooCommerce at scaleHur många produkter tål WordPress?

Daniel [email protected]

Page 2: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

WP + Woo

6Mkr / år

10 000 ordrar / år

5k => 660k Woo produkter på 2 år

WP - Full Cloud Hosting

Migration + Drift

Teknisk partner

Page 3: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Always be yourself, unless you can be Batman.

Then always be Batman

Page 4: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>
Page 5: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

MR Northero vs. Administo

Standard WP/Woo admin

Vanliga funktioner slutar att fungera / blir sega

Kan drabba sökningar, post listor, dashboard etc

> 10 000 produkter

Page 6: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

=>

Page 7: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>
Page 8: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>
Page 9: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Bra för lagom många produkter

Dålig för mer än 10 000 produkter

> 100 000 transients gör sidan betydlig långsammare

Page 10: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Måste raderas manuellt efter att de har skapats.

Page 11: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

/** * @todo * * * * * * * * */

Page 12: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

MR Northero vs. DR Dark

Användarna hittar inte vad de söker

Går inte att söka på ISBN

Sökresultat känns inte relevanta

Bästsäljare hamnar långt ner

> 50 000 produkter

Page 13: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Sök bara i post_title, post_content, post_excerpt

Bara på hela sök-termen

Beräkning av relevans för enkelt

Page 14: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Relevanssi, JetPack, Better Search etc.

49k produkter => 7M rader i sökindex tabellen

Komplexa sök crashar DB

Page 15: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Egen sök-server

Använder tekniker utanför WP-miljö

Avlastar DB och webb-server

Bättre, mer relevantaresultat

Page 16: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

ElasticSearch + ElasticPress

Svar på millisekunder

Komplexa Queries

Även snabbare Admin

Page 17: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Out-of-Sync problem

En till servermiljö att ha koll på

Extra krav på säkerhet !!!

Page 18: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

MR Northero vs. ScaleHammer

Begränsade möjligheter att reagera på tillfällig hög trafik

(Black Friday, biljettsläpp, terminstart)

Risk av downtime pga externa faktorer

(strömavbrott, kabelbrott)

> 90 000 produkter

Page 19: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Vertikal VS horisontal arkitektur

Större server VS skala efter behov

Större server VS skala vissa komponenter

Lokalt VS fördelad & redundant arkitektur

Page 20: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Vertikal skalbar arkitektur

Begränsad hårdvara

Server-migration tar tid och orsakar ev. downtime

Single point of failure

Page 21: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Horisontal skalbar arkitektur

Flera kopior av WordPress installationen

Virtuella servrar aktiveras/avaktiveras vid behov

Redundans (över flera regioner)

WP WP WP WP WP

Page 22: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Load Balancing fördelar trafik på alla (friska) webb-server

Registrering/avregistrering avnya resurser

Page 23: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Databas(-cluster) ligger på en eller flera DB-server

Databascluster är fullständig horisontal skalbar själv

DB

Page 24: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Filer sparas i obegränsad molndisk

Synkas från disken till CDN över hela världen

DB

Page 25: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

AWSarkitektur

Page 26: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

MR Northero vs. The BIG MetaMonster

Meta-Select-Queriesär långsamma

Import (Insert Queries) timar ut

Allmänt hög last på DB Servern

Uppdatera/skapa produkter timar ut

> 190 000 produkter

Page 27: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

13 meta-fält per Woo-produkt

2 meta-fält för varje ACF fält Woo-produkt 1 (13)ACF 11 (22) -----------------------------Meta-rader 35

Woo-produkt 3kACF 33k -----------------------------Meta-rader 105k

Woo-produkt 100kACF 1,1M -----------------------------Meta-rader 3,5M

Page 28: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

VarChar meta-value kan inte indexeras

DB query/join på meta-value kan blir riktigt långsamt

[...] Indexes are used to quickly locate data without having to search every row in a database table every time a database table is accessed [...]

Page 29: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Partiell meta-index

Titel, författare och ISBN oftast unik på första 20 tecken

Meta-queries mycket snabbare

INSERT och UPDATE snabbare

Page 30: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Analysera meta-values, längd, många lika värden?

Index skapas vid INSERT och UPDATE

Stor (lång) index => Diskutrymme och minne

Page 31: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Bloopers

Bots (även de goda) kan bli ett enormt problem!

Planering av meta-fält!!!

Analysera lång körande queries

Ta ovanliga händelser på allvar (100% cpu, memory … )

Page 32: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Bloopers 2

ALLA komponenter som man lägger till (caches, plugins) måste skala

Import plugins ... WP-API mer effektiv

add_image_size, register_sidebar etc

Page 33: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Contribution Day Challenge

Page 34: Hur många produkter tål WordPress? …...WooCommerce at scale Hur många produkter tål WordPress? Daniel Auener daniel@northosts.se WP + Woo 6Mkr / år 10 000 ordrar / år 5k =>

Tack!!

Alla WP hjältar & lyssnare

WordCamp Norrköping

William Rosso för MR Northero & Co

Inkubatorn på Kalmar Science Park