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. 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
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. 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. 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. 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
21. CONCURRENCY MODEL
dispatch service
calls
rendering controller’s job
starts early done
21
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. CUSTOMER ANALYTICS
• Omniture Tagging
• Server side clickstream
• Able to generate heatmaps of site
usage
23
24. SEARCH ENGINE OPTIMISATION
• Single HTML response
• “Pretty” URLs
• Tasty bot fodder
• No redirects
• No duplications
• Crafted content
24
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. 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. 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
31. LOG MINING
Access logs: User agents, response times,
payload sizes
Performance logs: Timings of code paths and
dependent service calls
Correlation IDs to trace requests across tiers
31
37. FEEDBACK
Customer: “Faster”
Customer: “Seems faster
and more user friendly”
Customer: “page loaded
quicker”
Ops Guy: “Our current
down time is zero!”
37
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