jensravens.com / nerdgeschoss.de / RUG::B 2020
Turn it up to 11
Scaling Rails to 100k rps
Jens Ravens
jensravens.com / nerdgeschoss.de / RUG::B 2020
jensravens.com / nerdgeschoss.de / RUG::B 2020
😱
jensravens.com / nerdgeschoss.de / RUG::B 2020
😱
jensravens.com / nerdgeschoss.de / RUG::B 2020
😱
jensravens.com / nerdgeschoss.de / RUG::B 2020
Who is this guy?
jensravens.com / nerdgeschoss.de / RUG::B 2020
Who is this guy?
(aka the shameless self promotion part)
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
Developer at nerdgeschoss, a mobile first dev agency for sophisticated software.
We help startups and medium businesses to build awesome stuff.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
Developer at nerdgeschoss, a mobile first dev agency for sophisticated software.
We help startups and medium businesses to build awesome stuff.
And we can help you build your product, too.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
50% iOS / macOS using Swift
50% Web / API using Ruby on Rails and React / TypeScript
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
50% iOS / macOS using Swift
50% Web / API using Ruby on Rails and React / TypeScript
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
50% iOS / macOS using Swift
50% Web / API using Ruby on Rails and React / TypeScript
jensravens.com / nerdgeschoss.de / RUG::B 2020
Jens Ravens
Also I blog about Swift and Ruby stuff on jensravens.com.
jensravens.com / nerdgeschoss.de / RUG::B 2020
What I am going to talk about…
jensravens.com / nerdgeschoss.de / RUG::B 2020
What I am going to talk about…
…but Rails doesn’t scale!
jensravens.com / nerdgeschoss.de / RUG::B 2020
What I am going to talk about…
a case study about e-commerce
…but Rails doesn’t scale!
jensravens.com / nerdgeschoss.de / RUG::B 2020
What I am going to talk about…
a case study about e-commerce
sharpen your tools
…but Rails doesn’t scale!
jensravens.com / nerdgeschoss.de / RUG::B 2020
What I am going to talk about…
a case study about e-commerce
sharpen your tools
turn it up to eleven
…but Rails doesn’t scale!
jensravens.com / nerdgeschoss.de / RUG::B 2020
Why should you even go with Rails for a
performance intensive app?
jensravens.com / nerdgeschoss.de / RUG::B 2020
Why should you even go with Rails for a
performance intensive app?
🚀
speed
jensravens.com / nerdgeschoss.de / RUG::B 2020
Why should you even go with Rails for a
performance intensive app?
🚀
speed
(of development)
jensravens.com / nerdgeschoss.de / RUG::B 2020
Why should you even go with Rails for a
performance intensive app?
🚀 🤓
speed developer happiness
(of development)
jensravens.com / nerdgeschoss.de / RUG::B 2020
Why should you even go with Rails for a
performance intensive app?
🚀 🤓
speed developer happiness
(of development)
jensravens.com / nerdgeschoss.de / RUG::B 2020
Rack-Apps are blocking.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Rack-Apps are blocking.
Other languages/frameworks might give you more
rps per ram.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Rack-Apps are blocking.
Other languages/frameworks might give you more
rps per ram.
But here is a well kept secret…
jensravens.com / nerdgeschoss.de / RUG::B 2020
Rack-Apps are blocking.
Other languages/frameworks might give you more
rps per ram.
But here is a well kept secret…
I just don't care.
jensravens.com / nerdgeschoss.de / RUG::B 2020
A look at last month’s spendings.
Server Costs
3 %
Office
8 %
Salaries
89 %
jensravens.com / nerdgeschoss.de / RUG::B 2020
A look at last month’s spendings.
faster development = more revenue
jensravens.com / nerdgeschoss.de / RUG::B 2020
Rails is fast enough. We should focus on
developer productivity instead.
jensravens.com / nerdgeschoss.de / RUG::B 2020
krasserstoff.com - A Case Study
jensravens.com / nerdgeschoss.de / RUG::B 2020
krasserstoff.com - A Case Study
jensravens.com / nerdgeschoss.de / RUG::B 2020
krasserstoff.com - A Case Study
jensravens.com / nerdgeschoss.de / RUG::B 2020
krasserstoff.com - A Case Study
jensravens.com / nerdgeschoss.de / RUG::B 2020
measure, implement, repeat
jensravens.com / nerdgeschoss.de / RUG::B 2020
Tools that can help you
jensravens.com / nerdgeschoss.de / RUG::B 2020
Tools that can help you
jensravens.com / nerdgeschoss.de / RUG::B 2020
Tools that can help you
jensravens.com / nerdgeschoss.de / RUG::B 2020
Tools that can help you
jensravens.com / nerdgeschoss.de / RUG::B 2020
Because performance tuning means changing your
tires at 65 mph on the highway without
stopping.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Because performance tuning means changing your
tires at 65 mph on the highway without
stopping.
jensravens.com / nerdgeschoss.de / RUG::B 2020
Scaling with the Cloud
jensravens.com / nerdgeschoss.de / RUG::B 2020
Follower Databases
jensravens.com / nerdgeschoss.de / RUG::B 2020
HTTP Caching
jensravens.com / nerdgeschoss.de / RUG::B 2020
Application Cache
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hunting Down N+1 Queries
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hunting Down N+1 Queries
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hunting Down N+1 Queries
jensravens.com / nerdgeschoss.de / RUG::B 2020
Conservative Technologies
https://www.ably.io/blog/google-polling-like-its-the-90s/
jensravens.com / nerdgeschoss.de / RUG::B 2020
Small Responses and Batch Loading
https://dev.to/usamaashraf/n1-queries-batch-loading--active-model-serializers-in-rails--3hkf
jensravens.com / nerdgeschoss.de / RUG::B 2020
SQL is your Friend
jensravens.com / nerdgeschoss.de / RUG::B 2020
SQL is your Friend
jensravens.com / nerdgeschoss.de / RUG::B 2020
Embrace Eventual Consistency
jensravens.com / nerdgeschoss.de / RUG::B 2020
Embrace Eventual Consistency
jensravens.com / nerdgeschoss.de / RUG::B 2020
Avoiding Locks and Mutexes
jensravens.com / nerdgeschoss.de / RUG::B 2020
Avoiding Locks and Mutexes
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hold the Door!
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hold the Door!
1 2 3 4 5 6 7 8 9 10
jensravens.com / nerdgeschoss.de / RUG::B 2020
Hold the Door!
jensravens.com / nerdgeschoss.de / RUG::B 2020
jensravens.com / nerdgeschoss.de / RUG::B 2020
Keep it Simple!
jensravens.com / nerdgeschoss.de / RUG::B 2020
Keep it Simple!
79 Controllers
84 Models
79 471 Lines of Code
… and still MVC
jensravens.com / nerdgeschoss.de / RUG::B 2020
Thank you.
Jens Ravens / @jensravens

Turning it up to 11 - Scaling Ruby on Rails to 100k rps