BETFAIRS SITE REBUILD:FAST - WE PROMISEMartin AndersonLJC Open Conference 2011
2
THE EXCHANGE 3
OUR PRODUCTS 4
INTERESTING STATS 3.7M+               140            17 registered                    locations    languages customers £30...
WHAT’S THE PROBLEM?              We lost focus on our website “during the world cup the  site has run like treacle”       ...
OUR CUSTOMER COMMITMENT         http://bit.ly/bf-cc 7
PERFORMANCE – 95 PECENTILE 8
OPTIONS?•  Fix•  Rebuild•  We chose to rebuild with a new   architecture•  Started earlier this year 9
HIERARCHY OF WEBSITE NEEDS                 It’s Cool                It’s Useful                 It’s Fast                I...
FIVE FUNDAMENTALSOF A WORLD CLASS WEB SITE •    Operational Monitoring •    Performance •    Customer Analytics •    SEO •...
DOT COM ERA ARCHITECTURE                        Single component                       responsible for data               ...
CURRENT ARCHITECTURE                       Heavy use of client-                       side rendering with                 ...
NEXT GENERATION ARCHITECTURE                         No client-side                     rendering only updates            ...
TECHNOLOGY STACK•  Java, JavaScript (YUI), FreeMarker, Spring   3.0, Tomcat 7•  TestNG, Mockito, Groovy, Selenium2,   Jasm...
WHY CHOOSE JAVA?•  Good knowledge already at Betfair•  Real concurrency – great for heavy server   workload•  Large Commun...
JAVA IN THE WEB TIER •  Java is obviously great at server tasks but    does it work well in the web tier? •  Can it be as ...
MODULE CONFIGURATION FRAMEWORK•  Deals with the impendence mismatch   between the web and statically typed   languages•  H...
MODULE CONFIGURATION FRAMEWORK•  All pages are an aggregation of modules in   a layout•  Modules are the smallest measure ...
MODULE CONFIGURATION FRAMEWORK 20
CONCURRENCY MODEL                     dispatch service                           calls       rendering     controller’s jo...
PERFORMANCE OPTIMIZATIONS      •  Reduce HTTP requests      •  Minify and compress assets (WRO4J)      •  Split requests a...
CUSTOMER ANALYTICS      •  Omniture Tagging      •  Server side clickstream      •  Able to generate heatmaps of site     ...
SEARCH ENGINE OPTIMISATION      •  Single HTML response      •  “Pretty” URLs      •  Tasty bot fodder      •  No redirect...
EXPERIMENTATION FRAMEWORK      •  An extension of the MCF      •  Allows A/B or Multivariate testing      •  Allows busine...
CONTINUOUS DELIVERY•  Its not about changing the product daily•  Its about confidence in the quality of your   product•  I...
CHALLENGES•  Automation is key•  Branch in code•  Feature Toggles•  Technology only takes you so far; it’s a   cultural sh...
28
OPERATIONAL MONITORING•     Analytics•     Trending•     Fault-detection / alerting•     Capacity planning 29
PERFORMANCE MEASUREMENT 30
LOG MININGAccess logs: User agents, response times,payload sizesPerformance logs: Timings of code paths anddependent servi...
GRAPHS 32
SERVER-SIDE WATERFALL GRAPH 33
FLUSHING THE BUFFER      Networking device thwarting flush() code      Magic setting:      httpcompressonpush=1 34
RESULT 35
SO WHAT CHANGED? 36
FEEDBACK      Customer: “Faster”                           Customer: “Seems faster                           and more user...
RESULTS  •  Sessions that bet:     up 2 percentage points      •  Bounce rate: improved 40%      •  Page views: 2x      • ...
WHAT HAVE WE LEARNED?•  Performance improvements are tangible•  Measurably improves the bottom line•  Operational Monitori...
THANK YOU     Email: martin.anderson@betfair.com     Twitter: @mdjanderson     Blog: http://bloodredsun.com/     Betfair B...
Upcoming SlideShare
Loading in...5
×

Martin Anderson - Fast We Promise

1,023

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,023
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Martin Anderson - Fast We Promise

  1. 1. BETFAIRS SITE REBUILD:FAST - WE PROMISEMartin AndersonLJC Open Conference 2011
  2. 2. 2
  3. 3. THE EXCHANGE 3
  4. 4. OUR PRODUCTS 4
  5. 5. INTERESTING STATS 3.7M+ 140 17 registered locations languages customers £300M 30,000 88,000 funds on bets placed http requests deposit one minute per second 5
  6. 6. WHAT’S THE PROBLEM? We lost focus on our website “during the world cup the site has run like treacle” “the site is frequently slow and freezes too often” “very slow and glitchy” “I find Betfair slow” 6
  7. 7. OUR CUSTOMER COMMITMENT http://bit.ly/bf-cc 7
  8. 8. PERFORMANCE – 95 PECENTILE 8
  9. 9. OPTIONS?•  Fix•  Rebuild•  We chose to rebuild with a new architecture•  Started earlier this year 9
  10. 10. HIERARCHY OF WEBSITE NEEDS It’s Cool It’s Useful It’s Fast It Works 10
  11. 11. FIVE FUNDAMENTALSOF A WORLD CLASS WEB SITE •  Operational Monitoring •  Performance •  Customer Analytics •  SEO •  Experimentation Framework 11
  12. 12. DOT COM ERA ARCHITECTURE Single component responsible for data access, business logic and presentation 12
  13. 13. CURRENT ARCHITECTURE Heavy use of client- side rendering with JavaScript Lightweight web servers for cached HTML and JS Data Services 13
  14. 14. NEXT GENERATION ARCHITECTURE No client-side rendering only updates via JavaScript Server-side rendering using Java Data Services 14
  15. 15. TECHNOLOGY STACK•  Java, JavaScript (YUI), FreeMarker, Spring 3.0, Tomcat 7•  TestNG, Mockito, Groovy, Selenium2, Jasmine, PhantomJS 15
  16. 16. WHY CHOOSE JAVA?•  Good knowledge already at Betfair•  Real concurrency – great for heavy server workload•  Large Community•  Great Toolset•  Operations Teams understand Java – stats, GC logs, deployment process 16
  17. 17. JAVA IN THE WEB TIER •  Java is obviously great at server tasks but does it work well in the web tier? •  Can it be as flexible as Ruby or Python? 17
  18. 18. MODULE CONFIGURATION FRAMEWORK•  Deals with the impendence mismatch between the web and statically typed languages•  Hugely flexible•  Easy to work with heterogeneous skillsets 18
  19. 19. MODULE CONFIGURATION FRAMEWORK•  All pages are an aggregation of modules in a layout•  Modules are the smallest measure of functionality on a page•  Modules can live within other modules•  Configuration controls the service calls and the rendered modules 19
  20. 20. MODULE CONFIGURATION FRAMEWORK 20
  21. 21. CONCURRENCY MODEL dispatch service calls rendering controller’s job starts early done 21
  22. 22. PERFORMANCE OPTIMIZATIONS •  Reduce HTTP requests •  Minify and compress assets (WRO4J) •  Split requests across domains •  Use cookie-free CDN hostnames •  Flush the buffer early •  Defer loading of content •  Etc… 22
  23. 23. CUSTOMER ANALYTICS •  Omniture Tagging •  Server side clickstream •  Able to generate heatmaps of site usage 23
  24. 24. SEARCH ENGINE OPTIMISATION •  Single HTML response •  “Pretty” URLs •  Tasty bot fodder •  No redirects •  No duplications •  Crafted content 24
  25. 25. EXPERIMENTATION FRAMEWORK •  An extension of the MCF •  Allows A/B or Multivariate testing •  Allows business to make decisions based on empirical data •  Winning experiments can be rolled out without a redeployment 25
  26. 26. CONTINUOUS DELIVERY•  Its not about changing the product daily•  Its about confidence in the quality of your product•  Its about eliminating waste from your development cycle 26
  27. 27. CHALLENGES•  Automation is key•  Branch in code•  Feature Toggles•  Technology only takes you so far; it’s a cultural shift•  “Developers aren’t done until the tests pass” 27
  28. 28. 28
  29. 29. OPERATIONAL MONITORING•  Analytics•  Trending•  Fault-detection / alerting•  Capacity planning 29
  30. 30. PERFORMANCE MEASUREMENT 30
  31. 31. LOG MININGAccess logs: User agents, response times,payload sizesPerformance logs: Timings of code paths anddependent service callsCorrelation IDs to trace requests across tiers 31
  32. 32. GRAPHS 32
  33. 33. SERVER-SIDE WATERFALL GRAPH 33
  34. 34. FLUSHING THE BUFFER Networking device thwarting flush() code Magic setting: httpcompressonpush=1 34
  35. 35. RESULT 35
  36. 36. SO WHAT CHANGED? 36
  37. 37. FEEDBACK Customer: “Faster” Customer: “Seems faster and more user friendly” Customer: “page loaded quicker” Ops Guy: “Our current down time is zero!” 37
  38. 38. RESULTS •  Sessions that bet: up 2 percentage points •  Bounce rate: improved 40% •  Page views: 2x •  1% opt-out rate 38
  39. 39. WHAT HAVE WE LEARNED?•  Performance improvements are tangible•  Measurably improves the bottom line•  Operational Monitoring and Customer Analytics provides essential visibility•  There’s lots more to do but we now have the platform to do this 39
  40. 40. THANK YOU Email: martin.anderson@betfair.com Twitter: @mdjanderson Blog: http://bloodredsun.com/ Betfair Blog: http://views.betfair.com/40
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×