schaalbaarheid en optimalisatie

44
Schalen en Optimalisatie Frank Louwers Openminds bvba Help, mijn site wordt populair!

Upload: frank-louwers

Post on 22-Apr-2015

4.717 views

Category:

Documents


0 download

DESCRIPTION

My presentation (in Dutch!) for the Netlab workshop series. Talks about scalability, what do optimize in your code.

TRANSCRIPT

Page 1: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Schalen en Optimalisatie

Frank LouwersOpenminds bvba

Help, mijn site wordt populair!

Page 2: Schaalbaarheid En Optimalisatie

Oh hai!

Frank Louwers

co-founder & “Mr Operations” @ Openminds

Page 3: Schaalbaarheid En Optimalisatie

Openminds

Page 4: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Vanavond

• Schaalbaarheid• wat

• hoe

• => theoretisch

• Pauze

• Tips voor webbouwers• meten is weten

• eenvoudige technieken met snel resultaat

• hulp van uw hoster

Page 5: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Schaalbaarheid en mythes

Schaalbaarheid gaat niet over:• technologie Z

• ruwe performantie en snelheid

• veel enterprise level servers

• zeker niet over programmeertaal X of Y

Page 6: Schaalbaarheid En Optimalisatie

Languages don’t scale!

http://flickr.com/photos/lij/122525716

Page 8: Schaalbaarheid En Optimalisatie

Architectures Scale

http://flickr.com/photos/thomashawk/44667887/

Page 9: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Schaalbaarheid

Schaalbaarheid gaat over:• toename aantal bezoekers

• toename hoeveelheid data

• beheersbaarheid van dit alles

Page 10: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Schalen: H & VVertikaal schalen• “dikkere doos”

• op zich eenvoudig

• prijs: dubbel zo krachtige server kost meer dan dubbel zoveel

• maar wat kost software redesignen?

• biedt GEEN HA (high availability)

• soms juiste keuze

• complexe monolitische applicaties

• databases

Page 11: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Schalen: H & VHorizontaal schalen• meerdere servers

• gespecialiseerde servers

• database, loadbalancing, maar ook bv specifieke delen

• upload / authenticatie / video transcoding

• vereist soms applicatie aanpassingen (als niet voorzien)

• maar kan snel (als hoster capaciteit heeft)

• en tijdelijk (bv voor 2 dagen tot het “Digg/Techcrunch” effect over is)

Page 12: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Applicatie servers• eenvoudig te schalen als “Shared Nothing”

• schuift probleem “down the stack”

• belangrijkste: sessie-data

• niet elke request op zelfde server

• lokale sessies: slecht

• bv PHP: standaard naar disk

• gecentraliseerde sessies: beter

• centrale databank of speciale cache (memcache)

• nadeel: sessiestore moet schalen (“down the stack”)

• geen sessies: ideaal!

Page 13: Schaalbaarheid En Optimalisatie

Vergeet cookie store niet!http://flickr.com/photos/mr-outdoorguy/2100813932/

Page 14: Schaalbaarheid En Optimalisatie

Ah, the stack!http://flickr.com/photos/keitheddleman/2124245307

Page 15: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Queing systemen• “Wachtrijen”

• vaak onderschat, maar zeer handig

• voor alles wat parallelliseerbaar is

• image conversion, video transcoding, mail uitsturen, ...

• meestal eenvoudig op te zetten

• je stuurt er iets naar toe, je haalt er iets af

• helpen bij schalen, maar schalen zelf iets moeilijker

• ActiveMQ, startling (van Twitter), ...

Page 16: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Beste I/O

• Beste I/O: geen I/O

• Correctie: geen disk I/O

• Disks zijn inherent traag, zelfs snelle disks

Page 17: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Databanken• Moeilijkste component om te schalen (tenzij je heel veel files

servet)

• Te weinig Read performantie?

• Meeste webapps doen 80/20 of zelfs 90/10 read/write

• Splits read/writes in uw applicatie en gebruik master-slave

• denormalisatie

• als het echt niet anders kan

• Te weinig Write performantie?

• Lastig horizontaal te schalen!

• master/master, cluster: zeer complex en lost niet alles op

• partitioning / sharding

Page 18: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Help uw databank!• Juiste tabelformaat!

• InnoDB heeft row locking

• MyISAM heeft full text indexes

• Juiste queries en datastructuren

• niet ... and category like “%3” or like “%,3,%” or like “3,%”

• ken uw joins

• GEEN order by rand()

• Juiste Indexen

• vooral bij veel data, veel verschil!

• stijgt exponentieel met hoeveelheid data

• EXPLAIN is uw vriend!

Page 19: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Caching

• Caching zorgt dat je niet moet schalen

• of toch zo snel niet

• of maakt het goedkoper

• Algemene strategie: cache alles wat je kan!

• Cache op alle lagen

Page 20: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Caching op alle lagen• Templates naar applicatie-code

• bv Smarty templates naar PHP

• Output naar HTML

• hoeveel echt dynamische blokken zitten er op een page?

• meestal niet zo moeilijk (PHP: ob_ functies)

• nadenken over invalidatie

• Object en result caching

• bv lijst van alle categoriën van een shop, lijst 10 populairste

• memcache! (snel, eenvoudig, schaalt goed)

• externe API calls

Page 21: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Caches: bestaandeGebruik bestaande caching systemen!

• Browser cache (juiste parameters doorgeven)

• Database cache (MySQL Query cache)

• Query cache moest correct ingesteld staan

• Opgelet met “prepared statements”

Page 22: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Files serven• Files serven is eenvoudig voor een webserver.

• Is bovendien stateless, dus eenvoudig te loadbalancen

• Nadenken over:

• files in sync houden?

• versies van files?

• Zorg dat alle files rechtstreeks geservet worden, buiten uw applicatie om

• Zeker niet uit een database!

• Zelfs voor private images

• tijdelijke urls?

• cookie based regels?

Page 23: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Files opslaan

• In het begin eenvoudig: diskspace tot ongeveer 2TB per server

• tot op limiet waar niet meer kan

• of tot limiet waar disks te traag worden

• SAN = duur, maar noodzakelijk

• zelfs bij weinig data: opletten voor limieten

• filesystemen worden traag bij 10000 files

• meerdere directories, hashing

Page 24: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

HA (High Availability)• Vermijden van SPOFs - Single Point of Failure

• identificeren en elimineren

• sommige zeer lastig!

• database master

• datacenter?

• meerdere datacenters lost problemen op

• maar introduceert nieuwe (bv latency en replication)

Page 26: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Meten is weten

• Vragen beantwoorden als:• Hoe snel is mijn applicatie of site eigenlijk?

• Hoeveel hits kan ik aan?

• Als ik morgen in de Humo sta, lukt dat?

• Als ik straks vermeld wordt op Studio Brussel, kan ik dat aan?

• Wat als ik een nieuwsbrief stuur naar mijn 25000 klanten?

• Experts inhuren?

• Kan ik dit zelf?

Page 27: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Meten kan je zelf

• Eenvoudige tests, eenvoudige tools:• ab (uit de Apache toolkit: http://httpd.apache.org/)

• httperf (http://www.hpl.hp.com/research/linux/httperf/)

• testen 1 hit op 1 pagina• zonder css, js, ajax, images, enz

• vaak meer dan genoeg om een antwoord te krijgen

• Complexere tools• jmeter

• log replay tools

• kunnen een sessie simuleren, traject volgen

Page 28: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Wat moet je testen?

• Hoofdpagina. Altijd!• Zelfs als die link niet in de nieuwsbrief gaat staan

• Eerste indruk

• Meest ingewikkelde pagina• Hopelijk is dat een andere dan de hoofdpagina

• “Typische” pagina

• Landingspagina, actiepagina enz

Page 29: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Test juist

• In goede omstandigheden• test-pc snel genoeg?

• lokaal internet snel genoeg?

• Test met relevante dataset!• Vooral belangrijk voor database problemen

• Index problemen: exponentiëel trager

• Als je binnen 3 maand 10000 artikels verwacht

• Test dan ook met 10000 artikels

Page 30: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Opgepast!

• Je test altijd in development of acceptatie

• Verwittig je hoster voor je gaat testen

• Evil Sysadmin Day!

Page 31: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Metrics

• Hoeveel requests per seconde bij 1 gelijktijdige bezoeker

• Hoeveel requests per seconde bij veel gelijktijdige bezoekers

• In hoeveel tijd laadt de pagina voor 80% van de bezoekers

Page 32: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Meer resultaten nodig?• Wil je nog meer weten, vraag uw hoster!

• Vragen:

• CPU belasting tijdens testen?

• Memory gebruik?

• Waarom is het traag? Wat is de flessenhals?

• I/O (meestal)

• CPU (soms)

• Netwerk (zelden, tenzij je GarageTV bent)

Page 33: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Wat optimaliseren?

• “Dat wat voor vertraging zorgt”

• Kijk naar snelheidswinst in tijd

• niet in percenten

• niet in aantal function calls

• zelfs niet in aantal database queries

• beter 100 supersnelle queries dan 1 trage

Page 34: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Performantiekillers

• Geheugenintensieve operaties• Grote files inlezen?

• 24bit tiff aan 600dpi uploaden en converteren

• thumbnails “on the fly” aanmaken?

• Foto’s uit uw database halen en uw applicatie laten serven

• Database intensieve operaties• slechte indexen / queries

• geen gebruik van DB query cache

• order by RAND() op grote set

Page 35: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Performantiekillers

• CPU intensieve operaties• Loops in je code, templates verwerken

• Image verwerkingen

• Encryptie (extra md5() op sessies?)

• Externe factoren• Externe RSS

• Gravatars

• externe css/javascript

• flickr foto’s of lokaal?

Page 36: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Tips

• Plan! Meet! Analyseer! Gok niet

• Cache zoveel mogelijk

• Juiste indexen op uw database

• Denk na over URL structuur• bv upload.uwsite.tld of login.uwsite.tld

• asset hosts en pipelining

Page 37: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Tips

• Cache!

• Bouw met (uw eigen) API’s• maakt ook schalen van ontwikkeling makkelijker

• Huur experts in• om met uw ontwikkelaars te praten

• of te testen

• al is het maar voor 1/2 dag of 2 dagen

• Praat met uw hoster voor de piek

Page 38: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Je hoster wil dit weten ...

Page 39: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Waarom?

• Waarom wil je hoster dit weten voor het zich voordoet?

• Maximale ROI (beste hardware op juiste moment)

• Stabiele service bieden, aan alle klanten

• Zorgen dat andere sites vlot blijven werken

• ‘s Nachts slapen

Page 40: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

Waarom?

• Je hoster is de ideale partner hiervoor• Heeft toegang tot de fysieke hardware

• Kent die hardware het best

• Heeft DBA’s in dienst, jij waarschijnlijk niet

• Heeft Webserver specialisten in dienst, jij waarschijnlijk niet

• Je bent heus niet de eerste ...

Page 42: Schaalbaarheid En Optimalisatie

http://flickr.com/photos/mr_fabulous/2033276270

Het bos en de bomen

Page 43: Schaalbaarheid En Optimalisatie

Zilverenberg 39 - B-9000 Gent - Belgium Tel: +32 9 225 82 91 - Fax: +32 9 224 46 57

Extremely evolved solutionsLorem ipsum dolor sit amet, cons ectetuer adipiscing elit. Donec sagittis sagittis urna. Aliquam ipsum.

Nunc in leo sed ante lacinia volutpat.

Pellentesque urna diam, aliquet non, ullamcorper ut, volutpat lacinia, purus.

pub_openminds.indd 1 11/15/06 10:53:57 AM

Netlab - Schaalbaarheid en OptimalisatieFrank Louwers

One more thing ...• Shared Hosting en Rails hosting pakketten:

• tot eind deze maand kortingscode “NETLAB”

• geeft je 1 maand gratis hosting!

• Virtual Dedicated Servers:

• vermeld “Netlab korting” bij je kennismakingsgesprek

• en de setup kost valt helemaal weg

• Performantietests van uw applicatie: vanaf 200 eur

• http://www.openminds.be/

• Telefoon: 09 225 82 91