What if I Tell You That Ruby on Rails Is Scalable
Ruby on Rails is a great framework for startups, but we often hear people talk about Rails scalability issues when a startup project grows too large (read: becomes very popular). One of the key events that triggered the discussion that Rails can’t scale was when Twitter switched to Scala in order to handle their growing number of user requests. But as counterexamples, we would like to mention that Shopify is an advanced Rails an https://easysuger.com/application that has scaled quite well many years in a row. So who’s right? Do you need to ditch Rails if your app goes big?
Let’s take a look at how to scale a Ruby on Rails application to find out.
What Is Rails Scalability?
A framework’s scalability is the potential for an application built with this framework to be able to grow and manage more user requests per minute (RPM) in the future. Actually, it’s incorrect to talk about framework scalability or Ruby on Rails scalability, because it’s not the framework that must, or can, scale, but rather the architecture of the entire server system. But we should acknowledge that, to a certain extent, Ruby on Rails application architecture does have an impact on scalability.
Let’s take a look at the example below. This is what the entire server architecture looks like at the very beginning of a Rails project.
What we usually have is a single server, on which we install the following software:
- Nginx server;
- Rack application server – Puma, Passenger, Unicorn;
- Single instance of your Ruby on Rails application;
- Single instance of your database; usually, a relational database similar to MySQL.
This server computer will be able to cope with, say, 1,000 or even up to 10,000 requests per hour easily. But let’s assume that your marketing is very successful, and your Rails application becomes much more popular; your server starts getting 10 or 100 times more requests. When the load increases to a high enough level, a single server architecture cracks under pressure