G
G
George2020-01-27 09:47:53
Node.js
George, 2020-01-27 09:47:53

What are the methods and tools for project scalability?

I have a front in React, a back in Express.

Now there are relatively few users, but we need to think about what will happen if there are more of them and the service cannot withstand the load.
In a word, you need to lay scalability in a project that does not yet require scalability, but if it does, you need to immediately increase the capabilities of the service.

I have several ideas:
1. Divide the back into components that will be located on different servers (something I don’t like)
2. Create several identical backs on different servers, and the load balancer will determine where to send. Automatically start a new server if necessary...

Maybe there are better ideas? I have no experience in this. Tell me please.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
R
Robur, 2020-01-27
@Robur

In a word, you need to put scalability into a project that does not yet require scalability, but if it does, you need to immediately increase the capabilities of the service

The first step is to clearly define what kind of load you expect and what type it will be.
For example - 10000 requests per second per server.
or 10,000 users per day uploading the front.
or 100 heavy requests to the database per minute.
Before that, the conversation will be unclear about what.
Then check how much the current architecture / hardware can pull out.
And it may turn out that if you add + $ 10 per month for a more powerful instance, then your current server will be enough for you for another 5 years

�
âš¡ Kotobotov âš¡, 2020-01-27
@angrySCV

scale components - it will be more efficient -> because the load on the components is always not uniform, some are more loaded, some are less.
> Create several identical backs on different servers
, both options work, but you need to remember that when separating components or separating backs, they should not depend on one data source (one database), otherwise everything will again rest on the performance of one database.
To do this, you can use databases that support separation through Key-> Value (such as Kasandra), and which, in turn, are also scaled across servers

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question