Scaling for the Expected and Unexpected Brian Moon Senior Web Engineer dealnews.com http://brian.moonspot.net/ twitter.com/brianlmoon Tuesday, June 23, 2009
Tuesday, June 23, 2009
Unexpected Likely one page.... at first Likely coming from a single source Tuesday, June 23, 2009
Planned degradation What can we take down? When should we take stuff down? What is acceptable service? Tuesday, June 23, 2009
Basic Caching Caching Database Queries Caching Content File based caching memcached, in process cache, etc. Tuesday, June 23, 2009
Make Content Static Copy pages to static files Do scheduled updates while under load Tuesday, June 23, 2009
Expected Jun 06 - May 09 Tuesday, June 23, 2009
Dec 26, 2006 Dec 1, 2008 Tuesday, June 23, 2009
Proxy Servers Reduce load on application servers Content caching Varnish, Squid, even home made Tuesday, June 23, 2009
Heavy Read Loads Replicate for heavy read load Denormalization Collapse data into fewer tables Duplicating data is OK. Cache as needed Tuesday, June 23, 2009
Heavy Write Loads Separate primary data storage (“write” servers) and read servers Write data out of band Tuesday, June 23, 2009
Testing Decide how big you want to scale Benchmark the actual application Test against production environment Determine acceptable load Use a service (Keynote, Gomez) Tuesday, June 23, 2009
3rd Party Content USE AN IFRAME! Bonus Coverage Piss off advertisers Tell them to get over it Tell sales “tough shit” Tuesday, June 23, 2009
Recommend
More recommend