View
11
Download
0
Category
Preview:
Citation preview
PHP in the EnterpriseStories from the Front LinePaul Reinheimer
Wednesday, March 10, 2010
Paul Reinheimer @preinheimerfirstname@preinheimer.com
http://preinheimer.comhttp://wonderproxy.com
Wednesday, March 10, 2010
Mansef Group
Wednesday, March 10, 2010
"Enterprise" Stats
70 Million Uniques/Day
Four Major Properties from "tube" sites to dating
Wednesday, March 10, 2010
Topics
Memcached
Sphinx
GeoIP
Gomez vs Other
Frontend Performance
HipHop
MySQL
Circonus
Mobile Content Protection
Wednesday, March 10, 2010
Using PHP
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Memcached
Data Federation
Slabs, stores, promises
Serializer
Wednesday, March 10, 2010
Promises
Wednesday, March 10, 2010
Promises
memcached doesn't lie, it just doesn't make promises
Wednesday, March 10, 2010
Promises
it makes a promise
Wednesday, March 10, 2010
Promises
data will no longer be available after it expires
Wednesday, March 10, 2010
Promises
When memcached doesn't have the information you need, get it elsewhere.
Use a read-through caching callback or put it in your caching object.
memcached is allowed to lose data!
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Wednesday, March 10, 2010
48
60
75
96
120
150
187
234
292
366
460
0 25 50 75 100
Wednesday, March 10, 2010
48
60
75
96
120
150
187
234
292
366
460
0 25 50 75 100
Wednesday, March 10, 2010
Sphinx
There's another talk, it's good
Wednesday, March 10, 2010
GeoIP
Big Deal for us
Price selection
Billing Cascades
Internal and External systems
QA Nightmare
Wednesday, March 10, 2010
Challenge
Aid appropriate teams to make dealing with GeoIP as trivial as possible without
affecting workflow
Wednesday, March 10, 2010
Problem - Proxies Suck
Slow
Buy Now
Wednesday, March 10, 2010
Problem - Web Proxies Suck
Wednesday, March 10, 2010
Solution
Find a real Proxy Service
Wednesday, March 10, 2010
Solution
Create a real Proxy Service
Wednesday, March 10, 2010
Gomez vs Other?
Download performance from clients
Use google for real client data
Find bottlenecks
Wednesday, March 10, 2010
Methodology
Generate an exact 10KB file
Place it on all PH web servers
Place it on the CDN
Place it on all media servers (NY and NL)
Write a test script to runs on 0.1% of requests
Report the time it takes to load that image (in ms) from each server
Wednesday, March 10, 2010
Redacted
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Wednesday, March 10, 2010
Frontend Performance
YSlow
Website Optimizer
CSS Sprites
Request Minimization & Compression
Wednesday, March 10, 2010
Mandate
Increase sales
Decreasing page load time
Don't interfere with current work flow
Leave infrastructure behind for trivial future use
Wednesday, March 10, 2010
Read
Wednesday, March 10, 2010
Read Moar
Wednesday, March 10, 2010
Stats
Wednesday, March 10, 2010
Stats
Wednesday, March 10, 2010
Stats
47 48 49 50 51 52 1
Normal Optimized
10-20% Increase in Sales
40% Decrease in Bounce Rate
Wednesday, March 10, 2010
Wednesday, March 10, 2010
HipHop for PHP
Twice as fast
Not yet using it in production
Wednesday, March 10, 2010
MySQL
Wednesday, March 10, 2010
Data Federation
Wednesday, March 10, 2010
Data Federation - Functional Partitions
Users Website
Content
Wednesday, March 10, 2010
Data Federation - Functional Partitions
Users Website
Content
Wednesday, March 10, 2010
Circonus
Systems Monitoring Demo
Wednesday, March 10, 2010
Mobile Content Protection
Wednesday, March 10, 2010
Challenge
$key = magicSauce($ip);
Wednesday, March 10, 2010
Problem
Wednesday, March 10, 2010
Problem
Wednesday, March 10, 2010
Problem
Wednesday, March 10, 2010
Problem
Wednesday, March 10, 2010
Problem
Wednesday, March 10, 2010
Solution
$session['ip'] = $_SERVER['REMOTE_ADDR'];
Wednesday, March 10, 2010
if($SERVER['REMOTE_ADDR']) != $session['ip']){ $key = magicSauce(FALSE);}else{
$session['ip'] = $_SERVER['REMOTE_ADDR'];
}
Wednesday, March 10, 2010
Thank You
We're Hiring!
Intermediate & Senior front end integrators
Intermediate & Senior back end (PHP) developers
Wednesday, March 10, 2010
Recommended