Image source: my 5 yo daughter
Software engineer at MediaSmart Mobile
alexfernandez, @pinchito, alejandrofer
Freelance scalability consultant
Serve mobile ads
Performance campaigns
70K+ requests / second
10M+ impressions / day
35+ servers
20+ countries
Image source: Stupid Zombies 2
We help pay for your entertainment
Serve an increasing numbers of requests
Learn how to use both, and when to use each
vs
Image source: Rama
Image source: ZDNet
Define ‘fast’
Source: GodTIC (Spanish)
Asynchronous, event-driven, non-blocking
Focus on concurrency, not performance
Node behaves very linearly:
Double the load, double the resources
Smooth learning curve
Few surprises
Plus, it's cool...
Source: modulecounts.com
~ 15 days away from 100K modules
Image source: Beao
Gather data instead of opinions
Two kind of tests:
Measure requests per second
and convert to visits per day
... with a safety factor
Image source: MythBusters
Do not be afraid to work on production if needed
Keep business happy
And we will all be happy!
Image source: BuffaloWorks Photography
Developments go slower
Your code runs slower
Business Goes First
Do not scale too soon
... and definitely not too late!
Keep lists of what you owe
and repay it as you go along
Don't let performance issues accumulate
DYOD: do your own deployments
Deploy as often as possible!
Monitor after deploying!
Monitor everything!
Send alerts
Image source: Laughing Squid
Send only necessary alerts
Humanity's best inventions
for scalability
Cache everything everywhere!
Locally and remotely
Messaging is ideal for async processing
Remove work from online processing
and aggregate it
Image source: CloudBees Blog
It's always about trade-offs
Keep your architecture fluid
Always
No exceptions
Search for lock-free solutions
Scalability is about removing bottlenecks
Is the sign of a bottleneck
... and beware the self-sustaining stampede!
Now try to find the real cause
Do root cause analysis immediately — and fully
The world doesn't care about your feelings
You cannot win an argument with reality
Unverified opinions are useless
(specially your own)
Accept facts and collect data
http://slid.es/alexfernandez/scalability-lessons-beyond-70krps