66
@bephpug 2012 Christoph Lühr @chluehr Brace for impact

Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

@bephpug 2012

Christoph Lühr@chluehr

Brace for impact

Page 2: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

basilicom

Page 3: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture
Page 4: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

High Load Scenarios(short term)

Page 5: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

§DISCLAIMER

PHP

Page 6: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

( if successful )

== TV

Page 7: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

/."Slashdot Effect"

( now: Facebook, Bild.de, ... )

Page 8: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Bäm!

Page 9: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Why care?

Page 10: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

$$$TV ads are expensive

downtime == wasted money

Page 11: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Why me?5 yrs++

Deutsche Bahn, Ferrero, PeugeotBMW, Sony, UMG, studiVZ, ...

Page 12: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Image source: http://www.flickr.com/photos/stinajonsson/3932774410 CC BY-NC 2.0

Page 13: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Flight Plan

1. MAKE A PLAN2. MAKE IT SCALE?3. MAKE IT FAST!4. [ TEST, SIZE ]5. WATCH IT!

6. BONUS: EXAMPLES

} Architecture

Page 14: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Brace for impact

Page 15: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Brace for impactPlan

Page 16: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Knowledge is PowerMedia plans

TV schedules

Page 17: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture
Page 18: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Planning

● just Peaks matter

● Media / marketing exposure?

● Target group? Click Rate?

● Max. daily visits? Top hour?

● Pages ^ visit, resources ^ page?

● Do not forget storage / traffic requirements.

Page 19: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Planning

Page 20: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Planning

Page 21: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Architecture( & Tool Time )

Page 22: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

E l a s t i c i t yScaling

Fancy Solution

Page 23: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

1 4 5

7 n

1 2 3

6

"just add more boxes.."

Page 24: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

really?

Page 25: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

System complexity ++

Page 26: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Database?

Page 27: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Time to spawn?.......

Page 28: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

TV-Ad

10 sec. later

10 min. later

Page 29: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Performance ++

Traditional Solution

Page 30: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Performance

SERVER BROWSER USER

Page 31: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Performance

SERVER BROWSER USER

FAST!

Page 32: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Performance Rules

Page 33: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #1

Don't get hit.● landing page on a different server.

Page 34: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #2

Let others do the work● use a Content Delivery Network

(CloudFlare is free).

Page 35: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #3

Serve static content

Page 36: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

SERVE

STATICCONTENT!

Page 37: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #3

Serve static content● use a caching reverse proxy:

Varnish● NGINX is fast, too● "static" can even mean only 5 mins.

Page 38: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #4

Serve static content once● use correct cache headers● leverage browser caches● allow external proxies to cache

your content.

Page 39: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #5

Minimize requests● compress HTML● combine / minify JS, CSS● inline images● == get a good SpeedRanking.

Page 40: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #6

Avoid dynamic requests● load data upfront● stay in browser, validate via JS first● collect data / batch requests● load only on action (captcha, ...).

Page 41: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #7

small is BIG● don't load a framework for an insert()● just write a logfile?● use nodeJS.

Page 42: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #8

De-couple / postpone● use queuing and finite # of workers● use external services

(transloadit, youtube, ...).

Page 43: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rule #9

Degrade gracefully● skip doing hard work (thumbnails,...)● hide expensive functionality (edit)● ... to keep the site online.

Page 44: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Secret Rule #10

Cheat● discard requests● stats & voting: sample only 10%● simulate server calls (spinner).

Page 45: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Final Rule #11

Don't go offline.● put campaign on different server● limit resources, don't kill your server● if all fails, be sure to display a notice.

Page 46: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture
Page 47: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Testing

● Goal: Determine app limits/threshold

● Testing is HARD● Test the production environment

● Monitor performance & resources● httperf, apache bench, siege, JMeter.

Page 48: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Sizing & Tuning

Page 49: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Sizing & Tuning

● RAM

● CPU cores / CPU speed

● IO: Storage Type / Storage Size

● Cache memory (Varnish)

● MySQL tuning (Caches, ...)

● System/Network tuning (max_open_files, ...)

● Apache (max. childs, ...)

Page 50: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Rinse, repeat.(building, testing, sizing)

Page 51: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Online:

Monitoring

Image source: http://www.officialpsds.com/Green-Radar-Screen-PSD61002.html Attribution

Page 52: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Monitoring

● Access (Google Analytics)

● External Availability (Pingdom, ...)

● Speed, Latency &Resources (New Relic, ...)

● Application (# participants, ... StatHat)

● OR homegrown (statsd, etc.).

Page 53: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Examples

Page 54: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Forms

Page 55: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Forms

1

2

3

Page 56: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Gallery detail pageshttp://foo.com/view/?key=3Jsk31KOsk2

IMAGE

Page 57: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Gallery detail pageshttp://foo.com/view/?key=3Jsk31KOsk2 ==> :-(

http://foo.com/view/ #3Jsk31KOsk2 ==> :-)

static!3Jsk31KOsk2.JPG

Page 58: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Simplified setup

Page 59: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Summary

Page 60: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

SERVE

STATICCONTENT!

Page 61: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

CRITICAL

LOAD FOLLOWS

Page 62: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Suggestions?

Questions?

Page 63: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

ContactChristoph LühreMail: [email protected], [email protected] Twitter: @chluehr

Slides licenseAttribution-NonCommercial-ShareAlike 3.0http://creativecommons.org/licenses/by-nc-sa/3.0/

Thanks... and always have a safe landing!

Page 64: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Links

● Google PageSpeed Insightshttps://developers.google.com/speed/pagespeed/insights

● Transloadit: Image / Video uploads / conversionhttps://transloadit.com/

● Pingdom Monitoring & Toolshttp://tools.pingdom.com/fpt/

● New Relic application & server monitoringhttp://newrelic.com/

● CloudFlare CDNhttps://www.cloudflare.com/

Page 65: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Links

● Continuous Performance Testinghttp://qafoo.

com/talks/12_05_ipc_se_continuous_performance_tests.pdf

● Varnishhttps://www.varnish-cache.org/

● Varnish Speedhttp://kly.

no/posts/2010_10_23__High_End_Varnish___275_thousand_request

s_per_second___.html

Page 66: Brace for impactFlight Plan 1. MAKE A PLAN 2. MAKE IT SCALE? 3. MAKE IT FAST! 4. [ TEST, SIZE ] 5. WATCH IT! 6. BONUS: EXAMPLES} Architecture

Links

● NGINXhttp://www.slideshare.net/Edorian/nginx-php-fpm-the-

webserver-you-might-actually-like-php-usergroup-berlin

● High Performance Web Sites - Steve Soudershttp://shop.oreilly.com/product/9780596529307.do

● Pound Load Balancer, Reverse Proxy & SSL Offloaderhttp://www.apsis.ch/pound