• Like
  • Save
Architecting high traffic websites with rapid changes in data on AWS
Upcoming SlideShare
Loading in...5
×
 

Architecting high traffic websites with rapid changes in data on AWS

on

  • 238 views

Presented by CEO, Luc Pettett ...

Presented by CEO, Luc Pettett

Australia's largest horse racing website and social network for punters. PP runs over 110 websites from an agile and highly pragmatic architecture on AWS. Using solutions such as EC2, RDS, DynamoDB & CloudFormation, with up to 1 million unique visitors per month and 18 million odds fluctuations every day, dexterous and extremely durable architecture is key to the group's success.

Statistics

Views

Total Views
238
Views on SlideShare
238
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Architecting high traffic websites with rapid changes in data on AWS Architecting high traffic websites with rapid changes in data on AWS Presentation Transcript

    • Australia’s #1 horse racing website
    • Our Brands PuntersParadise.com.au BestOdds.com.au + over 110 individual content websites rleague.com
    • Stupid shit we do
    • More stupid shit we do
    • Why AWS?
    • Normal 30 days
    • 12 month traffic
    • PuntersParadise.com.au Melbourne Cup Day 2012 •  13,350  concurrent  users   peak  load     •  550,000  uniques  in  a  few   hours     •  Almost  3  x  more  visitors   than  Flemington   racecourse   •  Residents  of  Darwin  loose   internet    
    • PuntersParadise.com.au Our year on year growth Visits   2009   572,000   2010   796,000   2011   1,731,000   2012   3,008,000   2013   3M  +  so  far  
    • Melbourne Cup Uptime History 2008 2009 2010 2011 2012 Migrated to AWS about here
    • The early days.
    • Immediate wins We killed our pets and started producing cattle Automated builds Performance issues were obvious Tech was there Survived 1st Melbourne Cup!
    • Our Basic Stack ELB Cache Servers ELB Web Servers ElastiCache RDS
    • Odds Comparison
    • Our Basic Stack ELB Cache Servers ELB Web Servers ElastiCache RDS Feed Server
    • On any given day.. 8-10 races per meeting
    • On any given day.. Average of 12 race meetings per day
    • On any given day.. + 45 sporting games
    • On any given day.. + 8 greyhound meetings x 10 races
    • On any given day.. x2 bet types (win/place or sport margin/outrights)
    • On any given day.. x12 bookmakers!
    • On any given day.. Odds can change every few seconds
    • Two problems here. Processing Delivery
    • Our first attempt while(true) { //some magic in here $market = getMarketInQueue(); //web requests to XML/JSON feeds $market->hitUpBookmakers(); //save to DB $market->saveOddsToMySQL(); }
    • How it works //this sucks. Doesn’t feel right. $market->saveOddsToMySQL();
    • Push that puppy while(true) { //some magic in here $market = getMarketInQueue(); //web requests to XML/JSON feeds $market->hitUpBookmakers(); //ahhh. That feels better $market->saveOddsToDynamoDB(); //like a boss $market->pushOddsToPusher(); }
    • Push that puppy "2081715-Average-FixedWin": { "2081715-Average-FixedWin": { "sid": 2081715, "sid": 2081715, "bt": "2081715-Average-FixedWin": { "FixedWin", "bt": "FixedWin", "b": "Average", "sid": 2081715, "2081715-Average-FixedWin": { "f": [ "b": "Average", "FixedWin", "bt": "sid": 2081715, "f": [ [ "b": "Average","FixedWin", "bt": [ 1381882761, "f": [ "b": "Average", 1381882761, 1 [ "f": [ 1 ] 1381882761, [ ] ], 1 1381882761, ], "p": null, ] 1 "p": null, "ps": null ], ] "ps": null "p": null, ], "ps": null "p": null, "ps": null From DynamoDB Pushed Message Template language
    • Our Full Stack ELB Cache Servers ELB Web Servers DynamoDB Pusher.com ElastiCache RDS Feed Servers
    • Whats next? ELB Cache Servers ELB Autoscale! Web Servers DynamoDB Pusher.com ElastiCache Autoscale! RDS Feed Servers
    • AWS Reference Architecture Too easy. Let’s just do that..
    • Autoscaling the feedserver Controller Feed Server Feed Server
    • Autoscaling the feedserver Controller Feed Server Feed Server
    • Autoscaling the feedserver Feed Server Feed Server Feed Server
    • Autoscaling the feedserver Feed Server 1 Feed Server 2 Feed Server 3
    • Autoscaling the feedserver
    • Autoscaling the feedserver
    • Autoscaling the feedserver
    • Our advice Let everything get hit by a bus Empower the worker, not the boss Utilise the AWS API as much as possible It’s easy. We can all do it.
    • One last cool thing…