6. Music
go-‐to-‐market
Urturn
turns
out
to
be
a
great
response
to
audience
engagement,
one
of
the
main
challenge
of
music
industry
-‐>
Hired
talent
from
that
industry
-‐>
Got
bands
on
urturn
-‐>
Brought
their
fan
base,
centered
on
UK
&
US
confiden6al
6
10. Traffic
Peaks
Max
Time to half: 5 min for Twitter, one hour for FB
Share on FB or Twitter
Time to max: 10 sec on Twitter, 1 min on FB
11. Urturn Web Back - AWSUrturn Front
Js client
Urturn reactive
Serving web pages
Rails
Storage
AWS S3
Master
Database
MySQL
Global
architecture
iPhone app
Expressions
Apps
Urturn tasks
Computing
activities, emails
Rails
Loadbalancers
AmazonWebServices
Medias
Logs, analytics,
datastores
MongoDB
Mobile site
CDN
CloudFront
Web
server
Ngnix
Web
server
Ngnix
Infrastructure @ Amazon Web Services
12. 1 Replica
1 Slave
Urturn Web BackUrturn Front
Js client
Urturn reactive
Serving web pages
Rails + Unicorn
Database
MySQL
Global
architecture
Google Analytics
GoSquared
Mixpannel
New Relic
iPhone app
Yahoo image,
Youtube,
SoundCloud,
Facebook, Twitter,
Instagram, ...
Mixpanel
Google
Analytics
Expressions
Apps
Urturn tasks
Computing
activities, emails
Rails + Unicorn
Loadbalancers
AmazonWebServices
Thumbs
Firefox-based
Caching
Memcached
Green=
Scales
horizontally
Internal
External
Front
Back
Medias
Facebook
Logs, counts,
analytics…
MongoDB
Twitter
Mobile site
CDN
CloudFront
Web
server
Ngnix
Scout
Web
server
Ngnix
1 Slave
Indexation
Solr
Messages
Resque
Mails
PostFix
Storage
AWS S3
13. MySQL DB
Urturn clients
Jsclient
Zoom
on
reacEve
requests
iPhone
Apps
Load
balancers
MongoDB
Mobilesite
CloudFront
Memcached
Ngnix
Queue
Rails
/public
Rails
Rails Rails
Caching
Browser
Manifest
Local
Storage
Urturn JS
cache
FAST SLOW -> $$$$ -> MAX USERS LIMITLOCAL
14. MySQL DB
Urturn clients
Jsclient
Keep
a
good
experience
during
Overload
iPhone
Apps
Load
balancers
MongoDB
Mobilesite
CloudFront
Memcached
Ngnix
Queue
Rails
/public
Rails
Rails Rails
Caching
Browser
Manifest
Local
Storage
Urturn JS
cache
Monitor
overload
here
• Serve
those
already
on
the
site
• Overload
page
to
others
FAST SLOW -> $$$$ -> MAX USERS LIMITLOCAL
15. MySQL
Urturn clients
Jsclient
A
good
request
is
a
non-‐existant
request
iPhone
Apps
Load
balancers
MongoDB
Mobilesite
CloudFront
Memcached
Ngnix
Queue
Rails
/public
Rails
Rails Rails
Caching
Browser
Manifest
Local
Storage
Urturn JS
cache
FAST SLOW -> $$$$ -> MAX USERS LIMITLOCAL
1
2
3
4
16. MySQL
Load testing
Load
tesEng
Load
balancers
MongoDB
Grinder in the
cloud
Load test scripts
Running on
multiple
instances
Memcached
Ngnix
Queue
Rails
/public
Rails
Rails Rails
FAST SLOW -> $$$$ -> MAX USERS LIMITLOCAL
Grinder
in
the
cloud
• Automa6cally
loads
the
system
to
capacity
• Make
sure
all
pages
are
in
the
scripts
19. Spot
instances
• AWS
offers
unused
capacity
@’spot’
price
• Choose
a
maximum
hourly
price,
get
it
at
the
market
price
• Loose
your
instance
without
warning
• Pinterest
massively
uses
spot
intances
On-‐demand
price
20. 1 Replica
1 Slave
Urturn Web BackUrturn Front
Js client
Urturn reactive
Serving web pages
Rails + Unicorn
Database
MySQL
Google Analytics
GoSquared
Mixpannel
New Relic
iPhone app
Yahoo image,
Youtube,
SoundCloud,
Facebook, Twitter,
Instagram, ...
Mixpanel
Google
Analytics
Expressions
Apps
Urturn tasks
Computing
activities, emails
Rails + Unicorn
Loadbalancers
AmazonWebServices
Thumbs
Firefox-based
Caching
Memcached
Green=
Scales
horizontally
Internal
External
Front
Back
Medias
Facebook
Logs, counts,
analytics…
MongoDB
Twitter
Mobile site
CDN
CloudFront
Web
server
Ngnix
Scout
Web
server
Ngnix
1 Slave
Indexation
Solr
Messages
Resque
Mails
PostFix
Storage
AWS S3
If
we
had
to
do
it
again…
21. 1 Replica
1 Slave
Urturn Web BackUrturn client
Js client
Urturn reactive
Serving web pages
Rails + Unicorn
Database
MySQL
Google Analytics
GoSquared
Mixpannel
New Relic
iPhone app
Yahoo image,
Youtube,
SoundCloud,
Facebook, Twitter,
Instagram, ...
Mixpanel
Google
Analytics
Expressions
Apps
Urturn tasks
Computing
activities, emails
Rails + Unicorn
Loadbalancers
AmazonWebServices
Thumbs
Firefox-based
Caching
Memcached
Green=
Scales
horizontally
Internal
External
Front
Back
Medias
Facebook
Logs, counts,
analytics…
MongoDB
Twitter
Mobile site
Amazon
CloudFront
Web
server
Ngnix
Scout
Web
server
Ngnix
1 Slave
Indexation
Solr
Messages
Resque
Mails
PostFix
Amazon
S3
DynamoDB
Amazon RDS
Amazon CloudSearch
Amazon
SQS
Amazon
SES
Amazon
ElastiCache
…
we’d
consider
this